From 6c805b44c2b902bdb2b5041c7c9d761733e83deb Mon Sep 17 00:00:00 2001 From: pshu Date: Thu, 27 Mar 2025 17:44:24 +0800 Subject: [PATCH 1/3] test: add edge case: file name contains `?` --- .../enhanced_resolve/test/fixtures/export-query/package.json | 3 ++- .../test/fixtures/export-query/with-?-file.js | 1 + src/tests/exports_field.rs | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js diff --git a/fixtures/enhanced_resolve/test/fixtures/export-query/package.json b/fixtures/enhanced_resolve/test/fixtures/export-query/package.json index 2c08de3f..b7d95325 100644 --- a/fixtures/enhanced_resolve/test/fixtures/export-query/package.json +++ b/fixtures/enhanced_resolve/test/fixtures/export-query/package.json @@ -3,6 +3,7 @@ "exports": { "./add": "./add.js?query1?query2", "./minus": "./minus.js?query?extra", - "./equal": "./equal.js?query" + "./equal": "./equal.js?query", + "./with-question-mark": "./with-?-file.js" } } diff --git a/fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js b/fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js new file mode 100644 index 00000000..ae304da9 --- /dev/null +++ b/fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js @@ -0,0 +1 @@ +export const mark = ()=> "-?-" diff --git a/src/tests/exports_field.rs b/src/tests/exports_field.rs index 78e770c4..267781cc 100644 --- a/src/tests/exports_field.rs +++ b/src/tests/exports_field.rs @@ -46,8 +46,9 @@ fn test_simple() { ("should resolve with wildcard pattern #9", f5.clone(), "m/middle-5/f$/$", f5.join("node_modules/m/src/middle-5/f$/$.js")), ("should resolve with query string #10", f6.clone(), "export-query/add", f6.join("add.js?query1?query2")), // Sadly we can not use real `minus.js?query` and `equal.js?query` file due to Windows: invalid path - ("should resolve with query string #10", f6.clone(), "export-query/minus", f6.join("minus.js?query?extra")), - ("should resolve with query string #10", f6.clone(), "export-query/equal", f6.join("equal.js?query")), + ("should resolve with query string #11", f6.clone(), "export-query/minus", f6.join("minus.js?query?extra")), + ("should resolve with query string #12", f6.clone(), "export-query/equal", f6.join("equal.js?query")), + ("should resolve with query string #13", f6.clone(), "export-query/with-question-mark", f6.join("with-?-file.js")), ]; // Not needed or snapshot: From 57bd916159ab4085070df11f90316c0e9f8ef1a1 Mon Sep 17 00:00:00 2001 From: pshu Date: Mon, 31 Mar 2025 12:58:14 +0800 Subject: [PATCH 2/3] chore: add walltime benchmark --- .github/workflows/benchmark.yml | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 3b004780..565e76d8 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -26,6 +26,41 @@ jobs: - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: .node-version + cache: pnpm + + - name: Setup benchmark data + run: cd benches && pnpm install --ignore-workspace + + - uses: Boshen/setup-rust@main + with: + cache-key: benchmark + save-cache: ${{ github.ref_name == 'main' }} + tools: cargo-codspeed + + - uses: ./.github/actions/pnpm + - name: Build Benchmark + env: + RUSTFLAGS: "-C debuginfo=1 -C strip=none -g" + run: cargo codspeed build + + - name: Run benchmark + uses: CodSpeedHQ/action@v3 + timeout-minutes: 30 + with: + run: cargo codspeed run + token: ${{ secrets.CODSPEED_TOKEN }} + walltime: + name: Wall-time + runs-on: codspeed-macro + steps: + - name: Checkout Branch + uses: taiki-e/checkout-action@v1 + + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 with: node-version-file: .node-version From 485b00ba29016cf503e07bb7077d4abfc3ffa19d Mon Sep 17 00:00:00 2001 From: pshu Date: Mon, 31 Mar 2025 13:00:22 +0800 Subject: [PATCH 3/3] Revert "test: add edge case: file name contains `?`" This reverts commit 6c805b44c2b902bdb2b5041c7c9d761733e83deb. --- .../enhanced_resolve/test/fixtures/export-query/package.json | 3 +-- .../test/fixtures/export-query/with-?-file.js | 1 - src/tests/exports_field.rs | 5 ++--- 3 files changed, 3 insertions(+), 6 deletions(-) delete mode 100644 fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js diff --git a/fixtures/enhanced_resolve/test/fixtures/export-query/package.json b/fixtures/enhanced_resolve/test/fixtures/export-query/package.json index b7d95325..2c08de3f 100644 --- a/fixtures/enhanced_resolve/test/fixtures/export-query/package.json +++ b/fixtures/enhanced_resolve/test/fixtures/export-query/package.json @@ -3,7 +3,6 @@ "exports": { "./add": "./add.js?query1?query2", "./minus": "./minus.js?query?extra", - "./equal": "./equal.js?query", - "./with-question-mark": "./with-?-file.js" + "./equal": "./equal.js?query" } } diff --git a/fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js b/fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js deleted file mode 100644 index ae304da9..00000000 --- a/fixtures/enhanced_resolve/test/fixtures/export-query/with-?-file.js +++ /dev/null @@ -1 +0,0 @@ -export const mark = ()=> "-?-" diff --git a/src/tests/exports_field.rs b/src/tests/exports_field.rs index 267781cc..78e770c4 100644 --- a/src/tests/exports_field.rs +++ b/src/tests/exports_field.rs @@ -46,9 +46,8 @@ fn test_simple() { ("should resolve with wildcard pattern #9", f5.clone(), "m/middle-5/f$/$", f5.join("node_modules/m/src/middle-5/f$/$.js")), ("should resolve with query string #10", f6.clone(), "export-query/add", f6.join("add.js?query1?query2")), // Sadly we can not use real `minus.js?query` and `equal.js?query` file due to Windows: invalid path - ("should resolve with query string #11", f6.clone(), "export-query/minus", f6.join("minus.js?query?extra")), - ("should resolve with query string #12", f6.clone(), "export-query/equal", f6.join("equal.js?query")), - ("should resolve with query string #13", f6.clone(), "export-query/with-question-mark", f6.join("with-?-file.js")), + ("should resolve with query string #10", f6.clone(), "export-query/minus", f6.join("minus.js?query?extra")), + ("should resolve with query string #10", f6.clone(), "export-query/equal", f6.join("equal.js?query")), ]; // Not needed or snapshot: