oxc/tasks/transform_conformance
Boshen aa7718ab7b feat(transform_conformance): show printed output alongside with errors (#5105)
closes #5098

```
cargo run -p oxc_transform_conformance -- --filter logical-assignment/arrow-functions-transform/input.js

Input:

var a;
a ||= () => {};
a &&= () => {};
a ??= () => {};

Expected:

var a;
a || (a = () => {});
a && (a = () => {});
a ?? (a = () => {});

Transformed:

var a;
a || (a = () => {});
a && (a = () => {});
a ?? (a = () => {});

Errors:

  x Symbol reference IDs mismatch:
  | after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1),
  | ReferenceId(2), ReferenceId(3), ReferenceId(4), ReferenceId(5),
  | ReferenceId(6), ReferenceId(7), ReferenceId(8)]
  | rebuilt        : SymbolId(0): [ReferenceId(0), ReferenceId(1),
  | ReferenceId(2), ReferenceId(3), ReferenceId(4), ReferenceId(5)]

  x Reference flags mismatch:
  | after transform: ReferenceId(4): ReferenceFlags(Write)
  | rebuilt        : ReferenceId(1): ReferenceFlags(Read | Write)

  x Reference flags mismatch:
  | after transform: ReferenceId(6): ReferenceFlags(Write)
  | rebuilt        : ReferenceId(3): ReferenceFlags(Read | Write)

  x Reference flags mismatch:
  | after transform: ReferenceId(8): ReferenceFlags(Write)
  | rebuilt        : ReferenceId(5): ReferenceFlags(Read | Write)

Passed: true
```
2024-08-23 04:00:45 +00:00
..
src feat(transform_conformance): show printed output alongside with errors (#5105) 2024-08-23 04:00:45 +00:00
tests feat(transformer): support react fast refresh (#4587) 2024-08-15 16:41:30 +00:00
babel.snap.md feat(transform_conformance): show printed output alongside with errors (#5105) 2024-08-23 04:00:45 +00:00
babel_exec.snap.md feat(transform_conformance): show printed output alongside with errors (#5105) 2024-08-23 04:00:45 +00:00
Cargo.toml refactor(transform_conformance): add driver (#4969) 2024-08-19 07:27:39 +00:00
oxc.snap.md fix(semantic): transform checker check reference flags (#5092) 2024-08-23 00:21:21 +00:00
oxc_exec.snap.md chore: bump test262, babel and TypeScript submodules (#3644) 2024-06-12 18:42:32 +08:00
README.md
typescript.snap.md chore: remove trailing whitespaces for all files; add .editorconfig (#3639) 2024-06-12 15:47:26 +08:00

Transformation Conformance Test Runner

Execution

This test runner uses the transformation plugin test suite from the babel repository.

The failing test cases are listed in ./babel.snap.md

To get started, run

cargo run -p oxc_transform_conformance

or watch for changes

just watch 'run -p oxc_transform_conformance'

Options

--filter

To filter for a specific test case, apply the --filter path option, e.g.

cargo run -p oxc_transform_conformance -- --filter react/arrow-functions

--exec

The babel test suite contains many exec.js files, they need to be executed by a runtime.

Bun is the preferred way to execute these tests, which you may install them via https://bun.sh/docs/installation.

Once bun is installed, apply the --exec flag:

cargo run -p oxc_transform_conformance -- --exec

The failing test cases are listed in ./babel_exec.snap.md.