ci(test): perf and scale benchmarks leave the correctness gate
Some checks failed
CI / Node 22 (push) Successful in 12m28s
CI / Node 24 (push) Successful in 12m15s
CI / Bun (latest) (push) Successful in 12m33s
CI / Integration + conformance (Node 22) (push) Failing after 17m25s
Delta Gate / Delta gate — candidate vs control (push) Has been cancelled
Some checks failed
CI / Node 22 (push) Successful in 12m28s
CI / Node 24 (push) Successful in 12m15s
CI / Bun (latest) (push) Successful in 12m33s
CI / Integration + conformance (Node 22) (push) Failing after 17m25s
Delta Gate / Delta gate — candidate vs control (push) Has been cancelled
This commit is contained in:
parent
1fb5109351
commit
dee46b35c8
4 changed files with 102 additions and 3 deletions
56
tests/configs/vitest.perf.config.ts
Normal file
56
tests/configs/vitest.perf.config.ts
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
import { defineConfig } from 'vitest/config'
|
||||
|
||||
/**
|
||||
* Perf/scale + environment-dependent test configuration.
|
||||
*
|
||||
* The exclusive on-demand slot for everything the correctness gate
|
||||
* (`vitest.config.ts`, the config a bare `vitest run` picks up) excludes:
|
||||
* wall-clock/scale benchmarks and the two tests whose outcome depends on
|
||||
* the host machine or network rather than the code. See CONTRIBUTING.md's
|
||||
* "Test gate" section and the exclude list in `vitest.config.ts` (root) for
|
||||
* why each file lives here instead of the gate.
|
||||
*
|
||||
* `include` names this set explicitly — it is the mirror image of the
|
||||
* root config's exclude list, not an independent glob, so the two stay in
|
||||
* sync by inspection. Longer timeouts than the gate's 120s/60s: one case in
|
||||
* tests/critical-performance-benchmark.test.ts measures ~128s of real work.
|
||||
*/
|
||||
export default defineConfig({
|
||||
test: {
|
||||
globals: true,
|
||||
setupFiles: ['./tests/setup.ts'],
|
||||
environment: 'node',
|
||||
|
||||
// Sequential, single fork — same isolation the gate uses, so a perf
|
||||
// measurement isn't skewed by sibling test contention.
|
||||
pool: 'forks',
|
||||
poolOptions: {
|
||||
forks: {
|
||||
maxForks: 1,
|
||||
minForks: 1,
|
||||
singleFork: true,
|
||||
isolate: true
|
||||
}
|
||||
},
|
||||
|
||||
testTimeout: 300000, // 5 minutes per test (the 128s case plus headroom)
|
||||
hookTimeout: 120000,
|
||||
teardownTimeout: 10000,
|
||||
|
||||
maxConcurrency: 1,
|
||||
fileParallelism: false,
|
||||
|
||||
include: [
|
||||
'tests/performance/**/*.{test,spec}.{js,ts}',
|
||||
'tests/critical-performance-benchmark.test.ts',
|
||||
'tests/api/performance-benchmarks.test.ts',
|
||||
'tests/package-size-limit.test.ts',
|
||||
'tests/model-loading.test.ts'
|
||||
],
|
||||
|
||||
reporters: process.env.CI ? ['dot'] : ['basic'],
|
||||
|
||||
retry: process.env.CI ? 1 : 0,
|
||||
shard: process.env.VITEST_SHARD
|
||||
}
|
||||
})
|
||||
Reference in a new issue