mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-24 19:28:48 +00:00
Tests/LibWeb: Import tests for incorrect Wasm instantiations
This commit is contained in:
parent
f468f702d5
commit
7b14da14d8
Notes:
github-actions[bot]
2025-07-19 20:49:27 +00:00
Author: https://github.com/trflynn89
Commit: 7b14da14d8
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5519
Reviewed-by: https://github.com/alimpfard ✅
4 changed files with 442 additions and 0 deletions
|
@ -0,0 +1,218 @@
|
||||||
|
Harness status: OK
|
||||||
|
|
||||||
|
Found 212 tests
|
||||||
|
|
||||||
|
6 Pass
|
||||||
|
206 Fail
|
||||||
|
Pass WebAssembly.instantiate(module): Non-object imports argument: null
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object imports argument: true
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object imports argument: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object imports argument: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object imports argument: 1
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object imports argument: 0.1
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object imports argument: NaN
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: null
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: true
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: 1
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: 0.1
|
||||||
|
Fail WebAssembly.instantiate(module): Non-object module: NaN
|
||||||
|
Pass WebAssembly.instantiate(module): Missing imports argument
|
||||||
|
Pass WebAssembly.instantiate(module): Imports argument with missing property: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Imports argument with missing property: empty object
|
||||||
|
Fail WebAssembly.instantiate(module): Imports argument with missing property: wrong property
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: 1
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: 0.1
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: NaN
|
||||||
|
Fail WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: object "[object Object]"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: BigInt
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: Number
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: BigInt
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: BigInt
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i32 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an i64 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f32 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(module): Importing an f64 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: 1
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: 0.1
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: NaN
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: WebAssembly.Memory
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: WebAssembly.Memory.prototype
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: Object.create(WebAssembly.Memory.prototype)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing memory with an incorrectly-typed value: WebAssembly.Memory object (too large)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: 1
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: 0.1
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: NaN
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: WebAssembly.Table
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: WebAssembly.Table.prototype
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: Object.create(WebAssembly.Table.prototype)
|
||||||
|
Fail WebAssembly.instantiate(module): Importing table with an incorrectly-typed value: WebAssembly.Table object (too large)
|
||||||
|
Pass WebAssembly.instantiate(buffer): Non-object imports argument: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object imports argument: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object imports argument: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object imports argument: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object imports argument: 1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object imports argument: 0.1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object imports argument: NaN
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: 1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: 0.1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Non-object module: NaN
|
||||||
|
Pass WebAssembly.instantiate(buffer): Missing imports argument
|
||||||
|
Pass WebAssembly.instantiate(buffer): Imports argument with missing property: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Imports argument with missing property: empty object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Imports argument with missing property: wrong property
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: 1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: 0.1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: NaN
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: object "[object Object]"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: BigInt
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: Number
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: BigInt
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: WebAssembly.Global
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: WebAssembly.Global.prototype
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: BigInt
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 global with an incorrectly-typed value: WebAssembly.Global object (wrong value type)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i32 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an i64 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f32 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 mutable global with a primitive value
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing an f64 mutable global with an immutable Global object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: 1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: 0.1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: NaN
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: WebAssembly.Memory
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: WebAssembly.Memory.prototype
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: Object.create(WebAssembly.Memory.prototype)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: WebAssembly.Memory object (too large)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: undefined
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: null
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: true
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: ""
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: symbol "Symbol()"
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: 1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: 0.1
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: NaN
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: plain object
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: WebAssembly.Table
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: WebAssembly.Table.prototype
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: Object.create(WebAssembly.Table.prototype)
|
||||||
|
Fail WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: WebAssembly.Table object (too large)
|
186
Tests/LibWeb/Text/input/wpt-import/wasm/jsapi/bad-imports.js
Normal file
186
Tests/LibWeb/Text/input/wpt-import/wasm/jsapi/bad-imports.js
Normal file
|
@ -0,0 +1,186 @@
|
||||||
|
/**
|
||||||
|
* `t` should be a function that takes at least three arguments:
|
||||||
|
*
|
||||||
|
* - the name of the test;
|
||||||
|
* - the expected error (to be passed to `assert_throws_js`);
|
||||||
|
* - a function that takes a `WasmModuleBuilder` and initializes it;
|
||||||
|
* - (optionally) an options object.
|
||||||
|
*
|
||||||
|
* The function is expected to create a test that checks if instantiating a
|
||||||
|
* module with the result of the `WasmModuleBuilder` and the options object
|
||||||
|
* (if any) yields the correct error.
|
||||||
|
*/
|
||||||
|
function test_bad_imports(t) {
|
||||||
|
function value_type(type) {
|
||||||
|
switch (type) {
|
||||||
|
case "i32": return kWasmI32;
|
||||||
|
case "i64": return kWasmI64;
|
||||||
|
case "f32": return kWasmF32;
|
||||||
|
case "f64": return kWasmF64;
|
||||||
|
default: throw new TypeError(`Unexpected type ${type}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const value of [null, true, "", Symbol(), 1, 0.1, NaN]) {
|
||||||
|
t(`Non-object imports argument: ${format_value(value)}`,
|
||||||
|
TypeError,
|
||||||
|
builder => {},
|
||||||
|
value);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const value of [undefined, null, true, "", Symbol(), 1, 0.1, NaN]) {
|
||||||
|
const imports = {
|
||||||
|
"module": value,
|
||||||
|
};
|
||||||
|
t(`Non-object module: ${format_value(value)}`,
|
||||||
|
TypeError,
|
||||||
|
builder => {
|
||||||
|
builder.addImport("module", "fn", kSig_v_v);
|
||||||
|
},
|
||||||
|
imports);
|
||||||
|
}
|
||||||
|
|
||||||
|
t(`Missing imports argument`,
|
||||||
|
TypeError,
|
||||||
|
builder => {
|
||||||
|
builder.addImport("module", "fn", kSig_v_v);
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const [value, name] of [[undefined, "undefined"], [{}, "empty object"], [{ "module\0": null }, "wrong property"]]) {
|
||||||
|
t(`Imports argument with missing property: ${name}`,
|
||||||
|
TypeError,
|
||||||
|
builder => {
|
||||||
|
builder.addImport("module", "fn", kSig_v_v);
|
||||||
|
},
|
||||||
|
value);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const value of [undefined, null, true, "", Symbol(), 1, 0.1, NaN, {}]) {
|
||||||
|
t(`Importing a function with an incorrectly-typed value: ${format_value(value)}`,
|
||||||
|
WebAssembly.LinkError,
|
||||||
|
builder => {
|
||||||
|
builder.addImport("module", "fn", kSig_v_v);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"module": {
|
||||||
|
"fn": value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const nonGlobals = [
|
||||||
|
[undefined],
|
||||||
|
[null],
|
||||||
|
[true],
|
||||||
|
[""],
|
||||||
|
[Symbol()],
|
||||||
|
[{}, "plain object"],
|
||||||
|
[WebAssembly.Global, "WebAssembly.Global"],
|
||||||
|
[WebAssembly.Global.prototype, "WebAssembly.Global.prototype"],
|
||||||
|
[Object.create(WebAssembly.Global.prototype), "Object.create(WebAssembly.Global.prototype)"],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const type of ["i32", "i64", "f32", "f64"]) {
|
||||||
|
const extendedNonGlobals = nonGlobals.concat([
|
||||||
|
type === "i64" ? [0, "Number"] : [0n, "BigInt"],
|
||||||
|
[new WebAssembly.Global({value: type === "f32" ? "f64" : "f32"}), "WebAssembly.Global object (wrong value type)"],
|
||||||
|
]);
|
||||||
|
for (const [value, name = format_value(value)] of extendedNonGlobals) {
|
||||||
|
t(`Importing an ${type} global with an incorrectly-typed value: ${name}`,
|
||||||
|
WebAssembly.LinkError,
|
||||||
|
builder => {
|
||||||
|
builder.addImportedGlobal("module", "global", value_type(type));
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"module": {
|
||||||
|
"global": value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const type of ["i32", "i64", "f32", "f64"]) {
|
||||||
|
const value = type === "i64" ? 0n : 0;
|
||||||
|
t(`Importing an ${type} mutable global with a primitive value`,
|
||||||
|
WebAssembly.LinkError,
|
||||||
|
builder => {
|
||||||
|
builder.addImportedGlobal("module", "global", value_type(type), true);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"module": {
|
||||||
|
"global": value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const global = new WebAssembly.Global({ "value": type }, value);
|
||||||
|
t(`Importing an ${type} mutable global with an immutable Global object`,
|
||||||
|
WebAssembly.LinkError,
|
||||||
|
builder => {
|
||||||
|
builder.addImportedGlobal("module", "global", value_type(type), true);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"module": {
|
||||||
|
"global": global,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const nonMemories = [
|
||||||
|
[undefined],
|
||||||
|
[null],
|
||||||
|
[true],
|
||||||
|
[""],
|
||||||
|
[Symbol()],
|
||||||
|
[1],
|
||||||
|
[0.1],
|
||||||
|
[NaN],
|
||||||
|
[{}, "plain object"],
|
||||||
|
[WebAssembly.Memory, "WebAssembly.Memory"],
|
||||||
|
[WebAssembly.Memory.prototype, "WebAssembly.Memory.prototype"],
|
||||||
|
[Object.create(WebAssembly.Memory.prototype), "Object.create(WebAssembly.Memory.prototype)"],
|
||||||
|
[new WebAssembly.Memory({"initial": 256}), "WebAssembly.Memory object (too large)"],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const [value, name = format_value(value)] of nonMemories) {
|
||||||
|
t(`Importing memory with an incorrectly-typed value: ${name}`,
|
||||||
|
WebAssembly.LinkError,
|
||||||
|
builder => {
|
||||||
|
builder.addImportedMemory("module", "memory", 0, 128);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"module": {
|
||||||
|
"memory": value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const nonTables = [
|
||||||
|
[undefined],
|
||||||
|
[null],
|
||||||
|
[true],
|
||||||
|
[""],
|
||||||
|
[Symbol()],
|
||||||
|
[1],
|
||||||
|
[0.1],
|
||||||
|
[NaN],
|
||||||
|
[{}, "plain object"],
|
||||||
|
[WebAssembly.Table, "WebAssembly.Table"],
|
||||||
|
[WebAssembly.Table.prototype, "WebAssembly.Table.prototype"],
|
||||||
|
[Object.create(WebAssembly.Table.prototype), "Object.create(WebAssembly.Table.prototype)"],
|
||||||
|
[new WebAssembly.Table({"element": "anyfunc", "initial": 256}), "WebAssembly.Table object (too large)"],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const [value, name = format_value(value)] of nonTables) {
|
||||||
|
t(`Importing table with an incorrectly-typed value: ${name}`,
|
||||||
|
WebAssembly.LinkError,
|
||||||
|
builder => {
|
||||||
|
builder.addImportedTable("module", "table", 0, 128);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"module": {
|
||||||
|
"table": value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
globalThis.test_bad_imports = test_bad_imports;
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
self.GLOBAL = {
|
||||||
|
isWindow: function() { return true; },
|
||||||
|
isWorker: function() { return false; },
|
||||||
|
isShadowRealm: function() { return false; },
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script src="../../../resources/testharness.js"></script>
|
||||||
|
<script src="../../../resources/testharnessreport.js"></script>
|
||||||
|
<script src="../../../wasm/jsapi/wasm-module-builder.js"></script>
|
||||||
|
<script src="../../../wasm/jsapi/bad-imports.js"></script>
|
||||||
|
<div id=log></div>
|
||||||
|
<script src="../../../wasm/jsapi/constructor/instantiate-bad-imports.any.js"></script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
// META: global=window,dedicatedworker,jsshell,shadowrealm
|
||||||
|
// META: script=/wasm/jsapi/wasm-module-builder.js
|
||||||
|
// META: script=/wasm/jsapi/bad-imports.js
|
||||||
|
|
||||||
|
test_bad_imports((name, error, build, ...arguments) => {
|
||||||
|
promise_test(t => {
|
||||||
|
const builder = new WasmModuleBuilder();
|
||||||
|
build(builder);
|
||||||
|
const buffer = builder.toBuffer();
|
||||||
|
const module = new WebAssembly.Module(buffer);
|
||||||
|
return promise_rejects_js(t, error, WebAssembly.instantiate(module, ...arguments));
|
||||||
|
}, `WebAssembly.instantiate(module): ${name}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
test_bad_imports((name, error, build, ...arguments) => {
|
||||||
|
promise_test(t => {
|
||||||
|
const builder = new WasmModuleBuilder();
|
||||||
|
build(builder);
|
||||||
|
const buffer = builder.toBuffer();
|
||||||
|
return promise_rejects_js(t, error, WebAssembly.instantiate(buffer, ...arguments));
|
||||||
|
}, `WebAssembly.instantiate(buffer): ${name}`);
|
||||||
|
});
|
Loading…
Add table
Add a link
Reference in a new issue