mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
67 lines
3.6 KiB
TypeScript
67 lines
3.6 KiB
TypeScript
/**
|
||
* Heavy suites the coverage aggregate runs uninstrumented in a parallel gate.
|
||
* Membership rule: a suite qualifies only when every coverage-measured
|
||
* file it executes in-process (`coverage.include` spans package src trees;
|
||
* typert generator src is threshold-excluded in vitest.config.ts) is already
|
||
* fully covered by other suites, so removing it from the instrumented run
|
||
* changes no threshold outcome. The aggregate still runs every listed suite
|
||
* plain beside the instrumented gate, so correctness signal is unchanged —
|
||
* only the v8 instrumentation tax on compiler- and subprocess-heavy fixtures
|
||
* is dropped.
|
||
*/
|
||
|
||
/** One coverage-exempt suite: a Vitest CLI filter and its exclude glob. */
|
||
export interface CoverageExemptSuite {
|
||
/** Positional file filter selecting the suite in the uninstrumented gate. */
|
||
readonly filter: string
|
||
/** Exclude glob removing the suite from the instrumented gate. */
|
||
readonly exclude: string
|
||
}
|
||
|
||
/**
|
||
* Set to `1` by the instrumented coverage gate; vitest.config.ts then drops
|
||
* the exempt suites from every project. CLI `--exclude` cannot express this:
|
||
* it does not reach per-project include resolution.
|
||
*/
|
||
export const COVERAGE_EXEMPT_ENV = 'DSH_COVERAGE_EXEMPT_HEAVY'
|
||
|
||
/** Coverage-exempt heavy suites; keep filter and exclude selecting the same files. */
|
||
export const coverageExemptHeavySuites: readonly CoverageExemptSuite[] = [
|
||
// Whole-workspace compiler analysis per case — the lane's longest tail.
|
||
// Generator src is threshold-excluded; tools-catalog's registry and
|
||
// tool-cordis imports are fully covered by those packages' own tests.
|
||
{
|
||
filter: 'packages/typert/generator/tests/',
|
||
exclude: 'packages/typert/generator/tests/**',
|
||
},
|
||
// Spawns the full-corpus transform gate in a child process (Node's ESM
|
||
// loader is its oracle), so no measured file executes in-process; the
|
||
// sibling in-process suites carry the package's src coverage. As a single
|
||
// 499–513 s case it dominated one native Windows coverage partition.
|
||
{
|
||
filter: 'packages/experimental/webworker-runtime/tests/compile/transform-corpus.spec.ts',
|
||
exclude: 'packages/experimental/webworker-runtime/tests/compile/transform-corpus.spec.ts',
|
||
},
|
||
// Real child-process fixtures over scripts/ sources, which coverage never measures.
|
||
{ filter: 'scripts/install-lefthook.spec.ts', exclude: 'scripts/install-lefthook.spec.ts' },
|
||
{ filter: 'scripts/oxlint-contract.spec.ts', exclude: 'scripts/oxlint-contract.spec.ts' },
|
||
{ filter: 'scripts/change-scope.spec.ts', exclude: 'scripts/change-scope.spec.ts' },
|
||
{ filter: 'scripts/translation-pairing-merge.spec.ts', exclude: 'scripts/translation-pairing-merge.spec.ts' },
|
||
// Spawns the full-corpus transform gate in a child process (Node's ESM
|
||
// loader is its oracle), so no measured file executes in-process; the
|
||
// package src is threshold-excluded in vitest.config.ts. A single
|
||
// 900s-budget case; running it inside an instrumented partition exceeds
|
||
// the Windows partition budget under load.
|
||
{
|
||
filter: 'packages/experimental/webworker-runtime/tests/compile/transform-corpus.spec.ts',
|
||
exclude: 'packages/experimental/webworker-runtime/tests/compile/transform-corpus.spec.ts',
|
||
},
|
||
// Built-artifact proof. Packer/runtime src is threshold-excluded, and the
|
||
// native Windows aggregate makes this uninstrumented gate wait for build so
|
||
// the suite never observes a partially emitted workspace closure.
|
||
{
|
||
filter: 'packages/experimental/webworker-packer/tests/image-loadable.spec.ts',
|
||
exclude: 'packages/experimental/webworker-packer/tests/image-loadable.spec.ts',
|
||
},
|
||
]
|