summaryrefslogtreecommitdiffstats
path: root/tests/run-make/wasm-symbols-different-module/verify-imports.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/run-make/wasm-symbols-different-module/verify-imports.js
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/run-make/wasm-symbols-different-module/verify-imports.js')
-rw-r--r--tests/run-make/wasm-symbols-different-module/verify-imports.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/run-make/wasm-symbols-different-module/verify-imports.js b/tests/run-make/wasm-symbols-different-module/verify-imports.js
new file mode 100644
index 000000000..7e9f90cf8
--- /dev/null
+++ b/tests/run-make/wasm-symbols-different-module/verify-imports.js
@@ -0,0 +1,32 @@
+const fs = require('fs');
+const process = require('process');
+const assert = require('assert');
+const buffer = fs.readFileSync(process.argv[2]);
+
+let m = new WebAssembly.Module(buffer);
+let list = WebAssembly.Module.imports(m);
+console.log('imports', list);
+if (list.length !== process.argv.length - 3)
+ throw new Error("wrong number of imports")
+
+const imports = new Map();
+for (let i = 3; i < process.argv.length; i++) {
+ const [module, name] = process.argv[i].split('/');
+ if (!imports.has(module))
+ imports.set(module, new Map());
+ imports.get(module).set(name, true);
+}
+
+for (let i of list) {
+ if (imports.get(i.module) === undefined || imports.get(i.module).get(i.name) === undefined)
+ throw new Error(`didn't find import of ${i.module}::${i.name}`);
+ imports.get(i.module).delete(i.name);
+
+ if (imports.get(i.module).size === 0)
+ imports.delete(i.module);
+}
+
+console.log(imports);
+if (imports.size !== 0) {
+ throw new Error('extra imports');
+}