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 6 commits into
base: kriskowal-ses-xs-shim
Choose a base branch
from

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.

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