StarlingMonkey icon indicating copy to clipboard operation
StarlingMonkey copied to clipboard

ci: Weval on WPT matrix

Open guybedford opened this issue 1 year ago • 7 comments
trafficstars

This extends Weval into the WPT CI matrix, also adding it into a matrix for the main test run as well.

guybedford avatar Aug 16 '24 22:08 guybedford

@cfallin there seem to be 4 missing / failing tests here, which might be worth looking into as possible Weval bugs.

guybedford avatar Aug 19 '24 15:08 guybedford

Seems to be in fetch/api/headers/header-values.any.js.

guybedford avatar Aug 19 '24 15:08 guybedford

@guybedford I've been poking around the test failure and I'm a little lost -- I see

Error running file html/webappapis/timers/evil-spec-example.any.js: setTimeout: first argument must be a function

and indeed the argument to setTimeout (line 9 of that file) is not a function, so the error should be expected? Perhaps it's an issue with the expected error message but I'm not able to find where that is tested; any help appreciated!

cfallin avatar Aug 19 '24 20:08 cfallin

@cfallin that is an expected failure - the case here is specifically a panic for header-values.any.js resulting in the log MISSING TEST.... I can help dig into this further if you need.

guybedford avatar Aug 20 '24 01:08 guybedford

It appears to be an issue of memory size limits:

wasmtime stderr: Error: memory index 0 has a minimum page size of 165 which exceeds the limit of 160

Now working out exactly where the limit is set and how to update this for the wasmtime serve command we run for WPT.

cfallin avatar Aug 20 '24 18:08 cfallin

Actually, that appears to be an issue with an old Wasmtime (Zulip thread); upgrading my local Wasmtime and running locally, I am unable to reproduce when running just the one test:

% node tests/wpt-harness/run-wpt.mjs -vv header-values.any.js
Starting WPT server (cmd: /home/cfallin/work/starlingmonkey/tests/wpt-harness/wpt/wpt --no-h2 serve)...
Starting Wasmtime server (cmd: wasmtime serve -W max-memory-size=134217728 -S common --addr 127.0.0.1:7676 wpt-runtime.wasm)...
wasmtime stderr: Serving HTTP on http://127.0.0.1:7676/
[ ... ]
fetch/api/headers/header-values.any.js    3 /    4 (   +0,    -0,    ?0) passing in    0ms

Done. Stats:                              3 /    4 (   +0,    -0,    ?0) passing in    0ms

but I see the failure when running the whole suite. I'm not sure where to go from here -- "event loop error - both task and job queues are empty, but expected operations did not resolve" does not tell me much, and without a single testcase I can try to reduce further I'm not really able to deduce anything. @guybedford are you by chance able to help derive a smaller testcase or do you have any ideas here?

cfallin avatar Aug 20 '24 22:08 cfallin

@cfallin I updated Wasmtime but that doesn't seem to be the issue. I was able to verify again it is definitely the headers test though. Happy to run through it with you further when you have a moment.

guybedford avatar Aug 21 '24 01:08 guybedford