diff options
Diffstat (limited to 'test_plugin/tests/test.js')
-rw-r--r-- | test_plugin/tests/test.js | 47 |
1 files changed, 47 insertions, 0 deletions
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(); |