WebKit Bugzilla
Attachment 356737 Details for
Bug 192020
: stress/big-wasm-memory tests failing on 32-bit JSC bot
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192020-20181206105737.patch (text/plain), 7.39 KB, created by
Keith Miller
on 2018-12-06 10:57:38 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Keith Miller
Created:
2018-12-06 10:57:38 PST
Size:
7.39 KB
patch
obsolete
>Subversion Revision: 238933 >diff --git a/JSTests/ChangeLog b/JSTests/ChangeLog >index a40c5dd332da7096896fdc6c7384535ebeb67f41..4ae82a9bc69fe76a3b808cf90ed48e71e82fbb5c 100644 >--- a/JSTests/ChangeLog >+++ b/JSTests/ChangeLog >@@ -1,3 +1,29 @@ >+2018-12-06 Keith Miller <keith_miller@apple.com> >+ >+ stress/big-wasm-memory tests failing on 32-bit JSC bot >+ https://bugs.webkit.org/show_bug.cgi?id=192020 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Not every platform has WebAssembly, e.g. 32-bit, so we should exit >+ the wasm stress tests if the WebAssembly object does not exist. >+ >+ * stress/big-wasm-memory-grow-no-max.js: >+ (test.foo): >+ (test): >+ (foo): Deleted. >+ (catch): Deleted. >+ * stress/big-wasm-memory-grow.js: >+ (test.foo): >+ (test): >+ (foo): Deleted. >+ (catch): Deleted. >+ * stress/big-wasm-memory.js: >+ (test.foo): >+ (test): >+ (foo): Deleted. >+ (catch): Deleted. >+ > 2018-12-05 Mark Lam <mark.lam@apple.com> > > speculationFromCell() should speculate non-Identifier strings as SpecString instead of SpecStringVar. >diff --git a/JSTests/stress/big-wasm-memory-grow-no-max.js b/JSTests/stress/big-wasm-memory-grow-no-max.js >index 66d12c8c2ea6ae53eafdfd43be7ad64dc5196e8a..5b80dca1822ec2c14da4de44621dc20ce5d46ddd 100644 >--- a/JSTests/stress/big-wasm-memory-grow-no-max.js >+++ b/JSTests/stress/big-wasm-memory-grow-no-max.js >@@ -1,34 +1,45 @@ > //@ skip if $memoryLimited >-let bigArray = new Array(0x7000000); >-bigArray[0] = 1.1; >-bigArray[1] = 1.2; > >-function foo(array) { >- var index = array.length; >- if (index >= bigArray.length || (index - 0x1ffdc01) < 0) >+function test() { >+ >+ // We don't support WebAssembly everywhere, so check for its existance before doing anything else. >+ if (!this.WebAssembly) > return; >- return bigArray[index - 0x1ffdc01]; >-} > >-noInline(foo); >+ let bigArray = new Array(0x7000000); >+ bigArray[0] = 1.1; >+ bigArray[1] = 1.2; >+ >+ function foo(array) { >+ var index = array.length; >+ if (index >= bigArray.length || (index - 0x1ffdc01) < 0) >+ return; >+ return bigArray[index - 0x1ffdc01]; >+ } >+ >+ noInline(foo); >+ >+ var okArray = new Uint8Array(0x1ffdc02); >+ >+ for (var i = 0; i < 10000; ++i) >+ foo(okArray); > >-var okArray = new Uint8Array(0x1ffdc02); >+ var ok = false; >+ try { >+ var memory = new WebAssembly.Memory({ initial: 0x1000 }); >+ memory.grow(0x7000); >+ var result = foo(new Uint8Array(memory.buffer)); >+ if (result !== void 0) >+ throw "Error: bad result at end: " + result; >+ ok = true; >+ } catch (e) { >+ if (e.toString() != "Error: Out of memory") >+ throw e; >+ } > >-for (var i = 0; i < 10000; ++i) >- foo(okArray); >+ if (ok) >+ throw "Error: did not throw error"; > >-var ok = false; >-try { >- var memory = new WebAssembly.Memory({ initial: 0x1000 }); >- memory.grow(0x7000); >- var result = foo(new Uint8Array(memory.buffer)); >- if (result !== void 0) >- throw "Error: bad result at end: " + result; >- ok = true; >-} catch (e) { >- if (e.toString() != "Error: Out of memory") >- throw e; > } > >-if (ok) >- throw "Error: did not throw error"; >+test(); >diff --git a/JSTests/stress/big-wasm-memory-grow.js b/JSTests/stress/big-wasm-memory-grow.js >index 418557a47a0ba8a9565da59160203fbe7ccb9dab..0e43577332e68887b94caed3c2db36e52876324e 100644 >--- a/JSTests/stress/big-wasm-memory-grow.js >+++ b/JSTests/stress/big-wasm-memory-grow.js >@@ -1,34 +1,45 @@ > //@ skip if $memoryLimited >-let bigArray = new Array(0x7000000); >-bigArray[0] = 1.1; >-bigArray[1] = 1.2; > >-function foo(array) { >- var index = array.length; >- if (index >= bigArray.length || (index - 0x1ffdc01) < 0) >+function test() { >+ >+ // We don't support WebAssembly everywhere, so check for its existance before doing anything else. >+ if (!this.WebAssembly) > return; >- return bigArray[index - 0x1ffdc01]; >-} > >-noInline(foo); >+ let bigArray = new Array(0x7000000); >+ bigArray[0] = 1.1; >+ bigArray[1] = 1.2; >+ >+ function foo(array) { >+ var index = array.length; >+ if (index >= bigArray.length || (index - 0x1ffdc01) < 0) >+ return; >+ return bigArray[index - 0x1ffdc01]; >+ } >+ >+ noInline(foo); >+ >+ var okArray = new Uint8Array(0x1ffdc02); >+ >+ for (var i = 0; i < 10000; ++i) >+ foo(okArray); > >-var okArray = new Uint8Array(0x1ffdc02); >+ var ok = false; >+ try { >+ var memory = new WebAssembly.Memory({ initial: 0x1000, maximum: 0x8000 }); >+ memory.grow(0x7000); >+ var result = foo(new Uint8Array(memory.buffer)); >+ if (result !== void 0) >+ throw "Error: bad result at end: " + result; >+ ok = true; >+ } catch (e) { >+ if (e.toString() != "Error: Out of memory") >+ throw e; >+ } > >-for (var i = 0; i < 10000; ++i) >- foo(okArray); >+ if (ok) >+ throw "Error: did not throw error"; > >-var ok = false; >-try { >- var memory = new WebAssembly.Memory({ initial: 0x1000, maximum: 0x8000 }); >- memory.grow(0x7000); >- var result = foo(new Uint8Array(memory.buffer)); >- if (result !== void 0) >- throw "Error: bad result at end: " + result; >- ok = true; >-} catch (e) { >- if (e.toString() != "Error: Out of memory") >- throw e; > } > >-if (ok) >- throw "Error: did not throw error"; >+test(); >diff --git a/JSTests/stress/big-wasm-memory.js b/JSTests/stress/big-wasm-memory.js >index d4deda4d38e0b7e32c72afdc24f5a1cd0ea42622..1afad7aedc6b8d0516852063ad9cb4bd4e442caf 100644 >--- a/JSTests/stress/big-wasm-memory.js >+++ b/JSTests/stress/big-wasm-memory.js >@@ -1,32 +1,43 @@ > //@ skip if $memoryLimited >-let bigArray = new Array(0x7000000); >-bigArray[0] = 1.1; >-bigArray[1] = 1.2; > >-function foo(array) { >- var index = array.length; >- if (index >= bigArray.length || (index - 0x1ffdc01) < 0) >+function test() { >+ >+ // We don't support WebAssembly everywhere, so check for its existance before doing anything else. >+ if (!this.WebAssembly) > return; >- return bigArray[index - 0x1ffdc01]; >-} > >-noInline(foo); >+ let bigArray = new Array(0x7000000); >+ bigArray[0] = 1.1; >+ bigArray[1] = 1.2; >+ >+ function foo(array) { >+ var index = array.length; >+ if (index >= bigArray.length || (index - 0x1ffdc01) < 0) >+ return; >+ return bigArray[index - 0x1ffdc01]; >+ } >+ >+ noInline(foo); >+ >+ var okArray = new Uint8Array(0x1ffdc02); >+ >+ for (var i = 0; i < 10000; ++i) >+ foo(okArray); > >-var okArray = new Uint8Array(0x1ffdc02); >+ var ok = false; >+ try { >+ var result = foo(new Uint8Array(new WebAssembly.Memory({ initial: 0x8000, maximum: 0x8000 }).buffer)); >+ if (result !== void 0) >+ throw "Error: bad result at end: " + result; >+ ok = true; >+ } catch (e) { >+ if (e.toString() != "Error: Out of memory") >+ throw e; >+ } > >-for (var i = 0; i < 10000; ++i) >- foo(okArray); >+ if (ok) >+ throw "Error: did not throw error"; > >-var ok = false; >-try { >- var result = foo(new Uint8Array(new WebAssembly.Memory({ initial: 0x8000, maximum: 0x8000 }).buffer)); >- if (result !== void 0) >- throw "Error: bad result at end: " + result; >- ok = true; >-} catch (e) { >- if (e.toString() != "Error: Out of memory") >- throw e; > } > >-if (ok) >- throw "Error: did not throw error"; >+test();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
saam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192020
: 356737