From 7c3b9b4f4f2f4ec8fdeb0e77bb853fd22ffaa476 Mon Sep 17 00:00:00 2001 From: Andy Finch Date: Thu, 5 Dec 2019 15:30:20 -0500 Subject: feat: first pass at native plugins (#3372) --- test_plugin/tests/test.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test_plugin/tests/test.js (limited to 'test_plugin/tests/test.js') diff --git a/test_plugin/tests/test.js b/test_plugin/tests/test.js new file mode 100644 index 000000000..5a127d328 --- /dev/null +++ b/test_plugin/tests/test.js @@ -0,0 +1,47 @@ +const filenameBase = "test_plugin"; + +let filenameSuffix = ".so"; +let filenamePrefix = "lib"; + +if (Deno.build.os === "win") { + filenameSuffix = ".dll"; + filenamePrefix = ""; +} +if (Deno.build.os === "mac") { + filenameSuffix = ".dylib"; +} + +const filename = `../target/${Deno.args[1]}/${filenamePrefix}${filenameBase}${filenameSuffix}`; + +const plugin = Deno.openPlugin(filename); + +const { testSync, testAsync } = plugin.ops; + +const textDecoder = new TextDecoder(); + +function runTestSync() { + const response = testSync.dispatch( + new Uint8Array([116, 101, 115, 116]), + new Uint8Array([116, 101, 115, 116]) + ); + + console.log(`Plugin Sync Response: ${textDecoder.decode(response)}`); +} + +testAsync.setAsyncHandler(response => { + console.log(`Plugin Async Response: ${textDecoder.decode(response)}`); +}); + +function runTestAsync() { + const response = testAsync.dispatch( + new Uint8Array([116, 101, 115, 116]), + new Uint8Array([116, 101, 115, 116]) + ); + + if (response != null || response != undefined) { + throw new Error("Expected null response!"); + } +} + +runTestSync(); +runTestAsync(); -- cgit v1.2.3