#!/bin/bash

cat > test.js << EOF
var task = new Task();
task.onExit = function() {
	print("child exited");
};
task.activate();
task.execute({name: "child.js", source: File.readFile("child.js")}).then(async function() {
	print("child started");
	var input = new ArrayBuffer(10);
	for (var i = 0; i < 10; i++) {
		input[i] = i;
	}
	var test = (await task.getExports()).test;
	var output = await test(input);
	print("input", input);
	print("output", output);
	for (var i = 0; i < 10; i++) {
		print(output[i]);
		if (output[i] != i) {
			print("output[" + i + "] == " + output[i]);
			exit(1);
		}
	}
	exit(0);
});
EOF

cat > child.js << EOF
exports = {
	test: function(data) {
		return data;
	}
}
EOF

$TILDEFRIENDS test.js