]> git.lizzy.rs Git - rust.git/blob - src/test/run-make/wasm-symbols-different-module/verify-imports.js
Rollup merge of #67430 - tspiteri:minus-inf, r=Dylan-DPC
[rust.git] / src / test / run-make / wasm-symbols-different-module / verify-imports.js
1 const fs = require('fs');
2 const process = require('process');
3 const assert = require('assert');
4 const buffer = fs.readFileSync(process.argv[2]);
5
6 let m = new WebAssembly.Module(buffer);
7 let list = WebAssembly.Module.imports(m);
8 console.log('imports', list);
9 if (list.length !== process.argv.length - 3)
10   throw new Error("wrong number of imports")
11
12 const imports = new Map();
13 for (let i = 3; i < process.argv.length; i++) {
14   const [module, name] = process.argv[i].split('/');
15   if (!imports.has(module))
16     imports.set(module, new Map());
17   imports.get(module).set(name, true);
18 }
19
20 for (let i of list) {
21   if (imports.get(i.module) === undefined || imports.get(i.module).get(i.name) === undefined)
22     throw new Error(`didn't find import of ${i.module}::${i.name}`);
23   imports.get(i.module).delete(i.name);
24
25   if (imports.get(i.module).size === 0)
26     imports.delete(i.module);
27 }
28
29 console.log(imports);
30 if (imports.size !== 0) {
31   throw new Error('extra imports');
32 }