Title: [289889] trunk/JSTests
Revision
289889
Author
commit-qu...@webkit.org
Date
2022-02-16 06:45:33 -0800 (Wed, 16 Feb 2022)

Log Message

[JSC][32-bit] Fix and re-enable flaky test
https://bugs.webkit.org/show_bug.cgi?id=181227

Patch by Geza Lore <gl...@igalia.com> on 2022-02-16
Reviewed by Adrian Perez de Castro.

* stress/new-largeish-contiguous-array-with-size.js:
Re-enable on ARMv7, re-enable and increase leniency on MIPS.

Modified Paths

Diff

Modified: trunk/JSTests/ChangeLog (289888 => 289889)


--- trunk/JSTests/ChangeLog	2022-02-16 14:41:35 UTC (rev 289888)
+++ trunk/JSTests/ChangeLog	2022-02-16 14:45:33 UTC (rev 289889)
@@ -1,3 +1,13 @@
+2022-02-16  Geza Lore  <gl...@igalia.com>
+
+        [JSC][32-bit] Fix and re-enable flaky test
+        https://bugs.webkit.org/show_bug.cgi?id=181227
+
+        Reviewed by Adrian Perez de Castro.
+
+        * stress/new-largeish-contiguous-array-with-size.js:
+        Re-enable on ARMv7, re-enable and increase leniency on MIPS.
+
 2022-02-15  Mark Lam  <mark....@apple.com>
 
         Defer TerminationsExceptions while in operationMaterializeObjectInOSR.

Modified: trunk/JSTests/stress/new-largeish-contiguous-array-with-size.js (289888 => 289889)


--- trunk/JSTests/stress/new-largeish-contiguous-array-with-size.js	2022-02-16 14:41:35 UTC (rev 289888)
+++ trunk/JSTests/stress/new-largeish-contiguous-array-with-size.js	2022-02-16 14:45:33 UTC (rev 289889)
@@ -1,8 +1,20 @@
 // We only need one run of this with any GC or JIT strategy. This test is not particularly fast.
 // Unfortunately, it needs to run for a while to test the thing it's testing.
-//@ if $architecture =~ /(^arm$)|mips/ then skip else runWithRAMSize(10000000) end
+//@ runWithRAMSize(10000000)
+//@ requireOptions("-e", "let leakFactor=3") if $architecture == "mips"
 //@ slow!
 
+// Note: Due to the conservative stack scanning, it is possible that arbitrary
+// values on a thread stack allocated between thread startup and entering the
+// user defined thread entry point alias heap cells (objects), which can
+// therefore never be collected. Currently this manifests on some of the MIPS
+// test targets, with the main thread, where cruft on the main thread stack
+// allocated by the OS and crt0 during process startup aliases some of the
+// Arrays allocated in the loop. This would then cause the final check on the
+// post GC heap size to fail, as some of the arrays cannot be collected, so ...
+// increasing leniency on platforms where this manifests.
+var leakFactor = typeof(leakFactor) === 'undefined' ? 1 : leakFactor;
+
 function foo(x) {
     return new Array(x);
 }
@@ -43,5 +55,5 @@
 // Do a final check after GC, just for sanity.
 gc();
 result = gcHeapSize();
-if (result > 1000000)
+if (result > 1000000*leakFactor)
     throw "Error: heap too big after forced GC: " + result;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to