mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-15 13:46:16 -08:00
test(performance): add end-to-end Xtream benchmark harness (#1300)
* docs(performance): plan Xtream benchmark * feat(xtream-mock-server): add deterministic 100k fixture * style(xtream-mock-server): apply repository formatting * fix(xtream-mock-server): harden performance fixture data * feat(xtream-mock-server): add performance control plane * docs(performance): correct Xtream capture plan * fix(xtream-mock-server): harden performance controls * fix(xtream-mock-server): harden control lifecycle * feat(performance): add Xtream preload markers * feat(performance): trace Xtream main phases * feat(performance): mark Xtream store publications * feat(performance): trace Xtream database phases * feat(performance): trace Xtream delete cancellation * feat(performance): capture Xtream phase attribution * feat(performance): mark Sources Xtream refresh * test(performance): define Xtream benchmark evidence contracts * test(performance): add Xtream benchmark runner * test(performance): surface failure evidence writes * test(performance): align database read clock * test(performance): preserve capture failure contracts
This commit is contained in:
1 parent
5e725a06f3
commit
a2fafcfc08
256 files changed
+43760
-883
No files matched your search
@@ -0,0 +1,43 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { describe, it } from 'node:test';
|
||||
|
||||
import { XTREAM_SCENARIO_ID } from './xtream-benchmark-contract';
|
||||
import {
|
||||
invalidateWorkerRequestMetrics,
|
||||
workerRequestEvidence,
|
||||
} from './xtream-worker-request-evidence.fixtures';
|
||||
import { deriveXtreamWorkerRequestWindowProxy } from './xtream-worker-request-proxy';
|
||||
|
||||
describe('Xtream request-window proxy', () => {
|
||||
it('uses the worst valid request window and excludes only overlap-invalid samples', () => {
|
||||
const evidence = workerRequestEvidence(
|
||||
XTREAM_SCENARIO_ID.INITIAL_IMPORT_LARGE
|
||||
).map((request, index) =>
|
||||
index === 1
|
||||
? {
|
||||
...request,
|
||||
eventLoopDelay: {
|
||||
maxMs: 12,
|
||||
p95Ms: 4,
|
||||
p99Ms: 7,
|
||||
},
|
||||
eventLoopUtilization: 0.75,
|
||||
}
|
||||
: request
|
||||
);
|
||||
const withOverlap = invalidateWorkerRequestMetrics(evidence, 1);
|
||||
|
||||
assert.deepEqual(deriveXtreamWorkerRequestWindowProxy(withOverlap), {
|
||||
eventLoopDelayMaxMs: 12,
|
||||
eventLoopDelayP95Ms: 4,
|
||||
eventLoopDelayP99Ms: 7,
|
||||
eventLoopUtilization: 0.75,
|
||||
});
|
||||
assert.equal(
|
||||
deriveXtreamWorkerRequestWindowProxy(
|
||||
invalidateWorkerRequestMetrics(evidence, evidence.length)
|
||||
),
|
||||
null
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user