Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(hardened262): Preliminary harness #2593

Draft
wants to merge 15 commits into
base: master
Choose a base branch
from
Draft

Conversation

kriskowal
Copy link
Member

Refs: #400, #2259

Individually reviewable commits, mostly large and mechanical.

Description

Introduces a harness for test262 style tests for Hardened JavaScript, toward verifying parity between SES and SES specialized for native Hardened JavaScript on XS.

The harness relies on test262-stream to discover test files but parts ways with test262-harness so that it can:

  • generate a cross product of tests with more dimensions (not all combinations are implemented in this introductory version)
    • agent: SES on Node.js, SES on XS, SES on XS specialized with -C xs, bare XS
    • compartment or not
    • lockdown or not
  • filter cases on arbitrary no* or only* flags
  • generate baseline reports so we can observe what we’re fixing and avoid regressions

The chief difficulty that motivates going our own way with this harness is that we need the Node.js agent to shim ModuleSource through an ordinary Node.js import, which is difficult to force into the shape of a test preamble that gets injected into each case. Similarly, we must generate a shim for XS, using our own Endo tooling that recognizes package conditions. And we need our own agents for Lockdown and Compartment variations and test262-harness does not support agent plugins.

For this preliminary PR, I’ve subsumed Moddable’s test262 tests only. Subsequent changes will introduce more tests SES parity.

@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch from 0bc22aa to 7780d08 Compare October 29, 2024 21:12
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from ad97c34 to f610e34 Compare October 29, 2024 21:48
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch from 7780d08 to ffe0174 Compare October 29, 2024 21:48
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch 2 times, most recently from eb25995 to 9db3161 Compare October 30, 2024 19:50
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from f610e34 to 315c521 Compare October 30, 2024 21:09
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch 2 times, most recently from 2e28e44 to 00b60a3 Compare October 30, 2024 22:07
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from 315c521 to 3417669 Compare October 30, 2024 22:07
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch from 00b60a3 to fda6c75 Compare October 30, 2024 22:55
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from 3417669 to 6d709e7 Compare October 30, 2024 22:55
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from 6d709e7 to f388ca5 Compare November 14, 2024 21:02
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch from fda6c75 to e454344 Compare November 14, 2024 21:02
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from f388ca5 to 89fae49 Compare November 15, 2024 01:12
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch 2 times, most recently from 52b9f46 to db5bd80 Compare November 15, 2024 01:20
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch from b8149b7 to 52598c1 Compare November 15, 2024 01:23
@kriskowal kriskowal force-pushed the kriskowal-hardened262 branch from db5bd80 to 1750673 Compare November 15, 2024 01:23
@kriskowal kriskowal force-pushed the kriskowal-ses-xs-shim branch 4 times, most recently from da44206 to bd79347 Compare December 6, 2024 22:54
Base automatically changed from kriskowal-ses-xs-shim to master December 6, 2024 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant