Compare commits
No commits in common. "ebb3a4bf13601c379f6a59f798c2583ea2815507" and "4142f36872f20d9dfafaec47474e5894528ec553" have entirely different histories.
ebb3a4bf13
...
4142f36872
4 changed files with 16 additions and 52 deletions
|
|
@ -21,13 +21,6 @@ export default defineConfig({
|
||||||
setupFiles: ['./tests/setup.ts'],
|
setupFiles: ['./tests/setup.ts'],
|
||||||
environment: 'node',
|
environment: 'node',
|
||||||
|
|
||||||
// The marker a test uses to tell it is running under this lane (see
|
|
||||||
// tests/integration/storage-batch-operations.test.ts's batch-vs-
|
|
||||||
// individual timing case) — a wall-clock RATIO assertion self-skips
|
|
||||||
// with a reason when this is absent, rather than flaking the
|
|
||||||
// correctness gate on whichever path happens to be faster this build.
|
|
||||||
env: { BRAINY_PERF_LANE: '1' },
|
|
||||||
|
|
||||||
// Sequential, single fork — same isolation the gate uses, so a perf
|
// Sequential, single fork — same isolation the gate uses, so a perf
|
||||||
// measurement isn't skewed by sibling test contention.
|
// measurement isn't skewed by sibling test contention.
|
||||||
pool: 'forks',
|
pool: 'forks',
|
||||||
|
|
@ -52,12 +45,7 @@ export default defineConfig({
|
||||||
'tests/critical-performance-benchmark.test.ts',
|
'tests/critical-performance-benchmark.test.ts',
|
||||||
'tests/api/performance-benchmarks.test.ts',
|
'tests/api/performance-benchmarks.test.ts',
|
||||||
'tests/package-size-limit.test.ts',
|
'tests/package-size-limit.test.ts',
|
||||||
'tests/model-loading.test.ts',
|
'tests/model-loading.test.ts'
|
||||||
// Not a whole perf file — one wall-clock-ratio case inside an
|
|
||||||
// otherwise-correctness integration suite (self-skipped everywhere
|
|
||||||
// else via BRAINY_PERF_LANE). Stays in the integration gate's
|
|
||||||
// include too, so every OTHER test in the file keeps running there.
|
|
||||||
'tests/integration/storage-batch-operations.test.ts'
|
|
||||||
],
|
],
|
||||||
|
|
||||||
reporters: process.env.CI ? ['dot'] : ['basic'],
|
reporters: process.env.CI ? ['dot'] : ['basic'],
|
||||||
|
|
|
||||||
|
|
@ -95,13 +95,7 @@ describe('Storage-Level Batch Operations v5.12.0', () => {
|
||||||
expect(entity?.vector?.length).toBeGreaterThan(0)
|
expect(entity?.vector?.length).toBeGreaterThan(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should be faster than individual gets for large batches', async (ctx) => {
|
it('should be faster than individual gets for large batches', async () => {
|
||||||
// Wall-clock RATIO assertion — belongs to the perf lane (npm run
|
|
||||||
// test:perf), not the correctness gate: under the exclusive release
|
|
||||||
// gate this flaked when individual gets got faster on their own
|
|
||||||
// (open-path/hydration changes), not because batchGet regressed.
|
|
||||||
ctx.skip(!process.env.BRAINY_PERF_LANE, 'timing-ratio assertion — runs only under the perf lane (npm run test:perf)')
|
|
||||||
|
|
||||||
// Create 100 entities
|
// Create 100 entities
|
||||||
const ids: string[] = []
|
const ids: string[] = []
|
||||||
for (let i = 0; i < 100; i++) {
|
for (let i = 0; i < 100; i++) {
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
* config (so it never runs and gives false coverage confidence — the exact drift
|
* config (so it never runs and gives false coverage confidence — the exact drift
|
||||||
* that left ~27 test files un-run before 8.0). Every `*.test.ts` must either match
|
* that left ~27 test files un-run before 8.0). Every `*.test.ts` must either match
|
||||||
* a gate config (`tests/unit/**`, `tests/integration/**`, `*.unit.test.ts`,
|
* a gate config (`tests/unit/**`, `tests/integration/**`, `*.unit.test.ts`,
|
||||||
* `*.integration.test.ts`, or the perf lane's `tests/configs/vitest.perf.config.ts`
|
* `*.integration.test.ts`) or be explicitly listed in MANUAL_ONLY below.
|
||||||
* — see PERF_LANE_FILES below) or be explicitly listed in MANUAL_ONLY below.
|
|
||||||
*/
|
*/
|
||||||
import { describe, it, expect } from 'vitest'
|
import { describe, it, expect } from 'vitest'
|
||||||
import { readdirSync } from 'node:fs'
|
import { readdirSync } from 'node:fs'
|
||||||
|
|
@ -25,12 +24,10 @@ function allTestFiles(dir: string, out: string[] = []): string[] {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test files INTENTIONALLY excluded from every automated gate — conformance
|
* Test files INTENTIONALLY excluded from the unit/integration gate: benchmarks,
|
||||||
* suites invoked directly, and checks that need real resources (network,
|
* scale/perf measurements, package-size checks, and real-model-load checks. They
|
||||||
* unusual scale) no CI lane provides. Wall-clock/scale benchmarks that DO
|
* are run manually (slow / need real resources), not in CI. Every entry is a
|
||||||
* run automatically belong to the perf lane (PERF_LANE_FILES / inGate
|
* conscious decision — a NEW orphan not listed here fails the guard below.
|
||||||
* below), not here. Every entry is a conscious decision — a NEW orphan not
|
|
||||||
* listed here fails the guard below.
|
|
||||||
*/
|
*/
|
||||||
const MANUAL_ONLY = new Set<string>([
|
const MANUAL_ONLY = new Set<string>([
|
||||||
// Conformance suites run as an explicit gate stage (both engines run them
|
// Conformance suites run as an explicit gate stage (both engines run them
|
||||||
|
|
@ -43,11 +40,15 @@ const MANUAL_ONLY = new Set<string>([
|
||||||
// The sparse-store cut's shared operator rows (both engines run these):
|
// The sparse-store cut's shared operator rows (both engines run these):
|
||||||
// explicit conformance-gate invocation, like its siblings.
|
// explicit conformance-gate invocation, like its siblings.
|
||||||
'tests/conformance/sparse-store-cut.test.ts',
|
'tests/conformance/sparse-store-cut.test.ts',
|
||||||
// NOT the perf lane: no wall-clock/scale assertion, so it does not belong
|
'tests/api/performance-benchmarks.test.ts',
|
||||||
// in tests/configs/vitest.perf.config.ts's include list — genuinely run
|
|
||||||
// by hand only.
|
|
||||||
'tests/critical-neural-validation.test.ts',
|
'tests/critical-neural-validation.test.ts',
|
||||||
|
'tests/critical-performance-benchmark.test.ts',
|
||||||
|
'tests/model-loading.test.ts',
|
||||||
'tests/package-size-breakdown.test.ts',
|
'tests/package-size-breakdown.test.ts',
|
||||||
|
'tests/package-size-limit.test.ts',
|
||||||
|
'tests/performance/graph-scale-performance.test.ts',
|
||||||
|
'tests/performance/triple-intelligence-scale.test.ts',
|
||||||
|
'tests/performance/typeAware.bench.test.ts',
|
||||||
// Cross-engine field-addressing conformance suite: pinned bit-for-bit against
|
// Cross-engine field-addressing conformance suite: pinned bit-for-bit against
|
||||||
// the native accelerator's implementation of the SAME contract, and invoked
|
// the native accelerator's implementation of the SAME contract, and invoked
|
||||||
// directly (`npx vitest run tests/conformance/namespace-law.test.ts`), never
|
// directly (`npx vitest run tests/conformance/namespace-law.test.ts`), never
|
||||||
|
|
@ -58,21 +59,6 @@ const MANUAL_ONLY = new Set<string>([
|
||||||
'tests/conformance/namespace-law.test.ts'
|
'tests/conformance/namespace-law.test.ts'
|
||||||
])
|
])
|
||||||
|
|
||||||
/**
|
|
||||||
* The perf lane's own gate: `tests/configs/vitest.perf.config.ts`, run by
|
|
||||||
* `npm run test:perf`. Mirrors that config's `include` list — kept in sync
|
|
||||||
* by inspection, the same convention that config uses against the root
|
|
||||||
* gate's exclude list (see its own header comment). A file that runs here
|
|
||||||
* is GATED, not manual: it belongs in this set (or the `tests/performance/`
|
|
||||||
* prefix below), never in MANUAL_ONLY.
|
|
||||||
*/
|
|
||||||
const PERF_LANE_FILES = new Set<string>([
|
|
||||||
'tests/critical-performance-benchmark.test.ts',
|
|
||||||
'tests/api/performance-benchmarks.test.ts',
|
|
||||||
'tests/package-size-limit.test.ts',
|
|
||||||
'tests/model-loading.test.ts'
|
|
||||||
])
|
|
||||||
|
|
||||||
function inGate(rel: string): boolean {
|
function inGate(rel: string): boolean {
|
||||||
return (
|
return (
|
||||||
rel.startsWith('tests/unit/') ||
|
rel.startsWith('tests/unit/') ||
|
||||||
|
|
@ -81,11 +67,7 @@ function inGate(rel: string): boolean {
|
||||||
// ('tests/lifecycle/**/*.test.ts'; see tests/lifecycle/README.md).
|
// ('tests/lifecycle/**/*.test.ts'; see tests/lifecycle/README.md).
|
||||||
rel.startsWith('tests/lifecycle/') ||
|
rel.startsWith('tests/lifecycle/') ||
|
||||||
rel.endsWith('.unit.test.ts') ||
|
rel.endsWith('.unit.test.ts') ||
|
||||||
rel.endsWith('.integration.test.ts') ||
|
rel.endsWith('.integration.test.ts')
|
||||||
// The perf lane (see PERF_LANE_FILES above) — mirrors
|
|
||||||
// tests/configs/vitest.perf.config.ts's `tests/performance/**` glob.
|
|
||||||
rel.startsWith('tests/performance/') ||
|
|
||||||
PERF_LANE_FILES.has(rel)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @module tests/vfs/vfs-search-path-scope.unit
|
* @module tests/vfs/vfs-search-path-scope
|
||||||
* @description `vfs.search({ path })` scopes with a SERVED filter.
|
* @description `vfs.search({ path })` scopes with a SERVED filter.
|
||||||
*
|
*
|
||||||
* The scope used to be emitted as `path: { $startsWith }` — an operator that is
|
* The scope used to be emitted as `path: { $startsWith }` — an operator that is
|
||||||
Reference in a new issue