Skip to content

Comments

test: add test262 integration tests#7196

Merged
sapphi-red merged 1 commit intomainfrom
11-20-test_add_test262_integration_tests
Dec 1, 2025
Merged

test: add test262 integration tests#7196
sapphi-red merged 1 commit intomainfrom
11-20-test_add_test262_integration_tests

Conversation

@sapphi-red
Copy link
Member

@sapphi-red sapphi-red commented Nov 22, 2025

Added integration tests that runs some of the test262 tests (only the ones related to modules).

Copy link
Member Author


How to use the Graphite Merge Queue

Add the label graphite: merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@netlify
Copy link

netlify bot commented Nov 22, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 2d2a7ab
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/692d30aaa37fd40008d2abd7

@github-actions
Copy link
Contributor

github-actions bot commented Nov 22, 2025

Benchmarks Rust

  • target: main(2d72d92)
  • pr: 11-20-test_add_test262_integration_tests(2d2a7ab)
group                                                        pr                                     target
-----                                                        --                                     ------
bundle/bundle@multi-duplicated-top-level-symbol              1.00     71.0±3.01ms        ? ?/sec    1.08     76.9±3.22ms        ? ?/sec
bundle/bundle@multi-duplicated-top-level-symbol-sourcemap    1.04     82.2±3.12ms        ? ?/sec    1.00     79.4±4.15ms        ? ?/sec
bundle/bundle@rome_ts                                        1.00    114.8±4.02ms        ? ?/sec    1.02    117.1±3.56ms        ? ?/sec
bundle/bundle@rome_ts-sourcemap                              1.00    128.4±3.22ms        ? ?/sec    1.00    128.3±4.08ms        ? ?/sec
bundle/bundle@threejs                                        1.00     41.4±1.43ms        ? ?/sec    1.00     41.5±0.98ms        ? ?/sec
bundle/bundle@threejs-sourcemap                              1.01     45.3±1.50ms        ? ?/sec    1.00     44.9±1.12ms        ? ?/sec
bundle/bundle@threejs10x                                     1.00   413.0±11.12ms        ? ?/sec    1.00   412.4±10.09ms        ? ?/sec
bundle/bundle@threejs10x-sourcemap                           1.01   468.8±10.44ms        ? ?/sec    1.00    466.2±9.31ms        ? ?/sec
scan/scan@rome_ts                                            1.05     89.2±2.33ms        ? ?/sec    1.00     84.9±1.81ms        ? ?/sec
scan/scan@threejs                                            1.04     30.2±1.62ms        ? ?/sec    1.00     29.0±1.45ms        ? ?/sec
scan/scan@threejs10x                                         1.00    304.8±6.12ms        ? ?/sec    1.00    305.2±7.94ms        ? ?/sec

@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch from f5ef040 to c0af019 Compare November 22, 2025 12:09
@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch 2 times, most recently from abbc478 to 000c505 Compare November 22, 2025 13:19
@IWANABETHATGUY
Copy link
Member

Great! May I ask how long running the test262 tests will take?

@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch from 000c505 to 592d63f Compare November 23, 2025 15:00
@sapphi-red
Copy link
Member Author

sapphi-red commented Nov 23, 2025

Great! May I ask how long running the test262 tests will take?

It takes around 5-6 seconds on my machine. On CI, it seems it takes 13-14 seconds.

@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch 2 times, most recently from c8f4c5b to b0a5a90 Compare November 23, 2025 16:19
@sapphi-red sapphi-red marked this pull request as ready for review November 23, 2025 16:28
Copilot AI review requested due to automatic review settings November 23, 2025 16:28
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds integration tests for test262, the official ECMAScript Test Suite, specifically focusing on module-related tests. The implementation includes a comprehensive test runner that executes test262 tests through Rolldown, validates results, and tracks known failures with documented reasons.

Key changes:

  • Integration of test262 as a git submodule for standardized ECMAScript conformance testing
  • Implementation of a test262 runner that handles both synchronous and asynchronous tests
  • Addition of failure tracking system to document known Rolldown limitations

Reviewed changes

Copilot reviewed 7 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test262 Added test262 submodule at specific commit
crates/rolldown/tests/integration_test262.rs Core test runner implementation with bundling, evaluation, and result validation
crates/rolldown/tests/test262_failures.json Documented known failures with reasons and issue links
crates/rolldown/tests/snapshots/integration_test262__test262_module_code.snap Snapshot of all test results (530 passed, 58 failed)
crates/rolldown/Cargo.toml Added dev dependencies for YAML parsing, regex, and file walking
Cargo.toml Added serde_yaml workspace dependency
.gitmodules Registered test262 as a submodule
.github/workflows/reusable-cargo-test.yml Updated checkout action to pull submodules

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch from b0a5a90 to aac9ca5 Compare November 23, 2025 16:59
Copilot AI review requested due to automatic review settings November 26, 2025 05:50
@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch from aac9ca5 to 0022560 Compare November 26, 2025 05:50
@sapphi-red sapphi-red self-assigned this Nov 26, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 9 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@hyf0 hyf0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM @IWANABETHATGUY cc

@graphite-app
Copy link
Contributor

graphite-app bot commented Nov 29, 2025

Merge activity

  • Nov 29, 6:13 AM UTC: This pull request can not be added to the Graphite merge queue. Please try rebasing and resubmitting to merge when ready.
  • Nov 29, 6:13 AM UTC: Graphite disabled "merge when ready" on this PR due to: a merge conflict with the target branch; resolve the conflict and try again..

@sapphi-red sapphi-red force-pushed the 11-20-test_add_test262_integration_tests branch from 0022560 to 2d2a7ab Compare December 1, 2025 06:07
@sapphi-red sapphi-red merged commit 4c29202 into main Dec 1, 2025
31 checks passed
@sapphi-red sapphi-red deleted the 11-20-test_add_test262_integration_tests branch December 1, 2025 06:32
This was referenced Dec 3, 2025
shulaoda added a commit that referenced this pull request Dec 3, 2025
## [1.0.0-beta.53] - 2025-12-03

💥 Breaking Changes
- Drop `i686-pc-windows-msvc` target support

🚀 Chunk Merging Optimization
- Rolldown now automatically merges shared chunks when entries import each other (when `preserveEntrySignature` is not `strict`)
```shell
Before:
entry.js   → imports → shared.js (common chunk)
entry2.js  → imports → shared.js
Output: 3 chunks (entry.js, entry2.js, shared.js)

After:
entry.js   → contains shared code
entry2.js  → imports → entry.js
Output: 2 chunks (entry.js, entry2.js)
```

### 💥 BREAKING CHANGES

- drop `i686-pc-windows-msvc` target support (#7230) by @sapphi-red

### 🚀 Features

- rolldown_plugin_vite_manifest: pass normalized options to `isLegacy` callback (#7321) by @shulaoda
- plugin/vite-resolve: add `disableCache` option (#6763) by @sapphi-red
- rolldown: export `createTokioRuntime` for tsdown (#7264) by @shulaoda
- rolldown_plugin_vite_html: sync `moduleSideEffects` for already loaded modules (#7254) by @shulaoda
- rolldown_plugin_vite_html: load module scripts with side effects to prevent tree-shaking (#7244) by @shulaoda
- rolldown_plugin_vite_css_post: implement `cssScopeTo` for scoped CSS tree-shaking (#7240) by @shulaoda

### 🐛 Bug Fixes

- export default class decl __name runtime insertion (#7316) by @IWANABETHATGUY
- chunk side effects calculation (#7273) by @IWANABETHATGUY
- node: `output.generateCode.preset: 'es2015'` should set `output.generateCode.symbols: true` by default (#7314) by @sapphi-red
- skip name helper for classes with static name property (#7312) by @IWANABETHATGUY
- preserve chunk imports relationship after chunk merging (#7303) by @shulaoda
- dev: make `register_modules` async (#7289) by @hyf0
- preserve computed property in object destructuring (#7288) by @IWANABETHATGUY
- support dynamic imports with shared dependencies (#7261) by @IWANABETHATGUY
- call `defer_sync_scan_data` in non-incremental build mode (#7255) by @shulaoda
- optimize chunk merging for shared entry points (#7194) by @IWANABETHATGUY
- add indentation for UMD format output (#7263) by @IWANABETHATGUY
- rolldown_plugin_vite_css_post: pass options to `isLegacy` callback for proper legacy detection (#7260) by @shulaoda
- rolldown_plugin_vite_css_post: also detect `?inline=true` query for inlined CSS (#7245) by @shulaoda
- rolldown_plugin_vite_css_post: distinguish empty CSS from no CSS (#7241) by @shulaoda
- add Windows support for t-run command (#7242) by @IWANABETHATGUY
- cjs: prevent duplicate require declarations for external modules with preserveModules (#7234) by @logaretm
- rolldown_plugin_vite_resolve: resolve from root for virtual modules (#7236) by @sapphi-red
- include entry level external modules in chunk exports (#7218) by @IWANABETHATGUY

### 🚜 Refactor

- dev: make `removeClient` async (#7313) by @hyf0
- move chunk merging code out of code_splitting.rs (#7285) by @IWANABETHATGUY
- extract common function util for chunk merging (#7271) by @IWANABETHATGUY
- use iterative method to merge chunks (#7256) by @IWANABETHATGUY
- use concat_string! instead of string replace for generating chunk level exports (#7247) by @IWANABETHATGUY

### 📚 Documentation

- add warning to experimental.resolveNewUrlToAsset about JS/TS files (#7300) by @Copilot
- add sequential hook execution difference in plugin-api.md (#7308) by @Copilot
- add migration example from onwarn to onLog (#7299) by @Copilot
- add migration example for manualChunks to advancedChunks (#7298) by @Copilot
- deps: bump vitepress to fix build (#7307) by @sapphi-red
- examples & text for experimental.resolveNewUrlToAsset (#7259) by @TheAlexLichter

### ⚡ Performance

- rolldown_plugin_vite_css_post: lazily load `cssScopeTo` from JS module options (#7253) by @shulaoda
- rolldown_plugin_vite_css_post: avoid unnecessary string clones in `resolve_asset_urls_in_css` (#7250) by @shulaoda

### 🧪 Testing

- generate relative path like name in advanced chunks (#7267) by @IWANABETHATGUY
- add test case for preserveEntrySignatures with re-exports (#7279) by @IWANABETHATGUY
- add test262 integration tests (#7196) by @sapphi-red

### ⚙️ Miscellaneous Tasks

- deps: update dependency rolldown-plugin-dts to v0.18.1 (#7304) by @renovate[bot]
- enable tracing feature for napi (#7322) by @sapphi-red
- deps: update napi (#7320) by @renovate[bot]
- deps: update oxc (#7318) by @renovate[bot]
- deps: update napi (#7317) by @renovate[bot]
- deps: update oxc to v0.100.0 (#7301) by @renovate[bot]
- deps: downgrade pnpm to 10.23.0 to fix Netlify build (#7306) by @shulaoda
- add `trustPolicyExclude` for chokidar and semver (#7302) by @sapphi-red
- update pnpm lockfile (#7291) by @IWANABETHATGUY
- deps: update npm packages (#7272) by @renovate[bot]
- deps: update rust crates (#7270) by @renovate[bot]
- deps: update oxc (#7262) by @renovate[bot]
- deps: update github-actions (#7269) by @renovate[bot]
- deps: update dependency dprint-typescript to v0.95.13 (#7268) by @renovate[bot]
- deps: update `html5gum` to 0.8.1 (#7265) by @shulaoda
- rolldown: remove unused `getModuleOptions` from `PluginContext` (#7266) by @shulaoda
- remove unnecessary justfile ignore (#7243) by @IWANABETHATGUY
- deps: update oxc apps (#7238) by @renovate[bot]
- add `nul` to workaround https://github.com/anthropics/claude-c… (#7237) by @IWANABETHATGUY
- deps: update dependency valibot to v1.2.0 [security] (#7231) by @renovate[bot]
- deps: update crate-ci/typos action to v1.40.0 (#7232) by @renovate[bot]

### ❤️ New Contributors

* @logaretm made their first contribution in [#7234](#7234)

Co-authored-by: shulaoda <[email protected]>
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.

3 participants