From 1f054097f3968e38db34ba0ba03906c79108c9fd Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Mon, 1 Jun 2026 19:43:47 -0700 Subject: [PATCH] Fix benchmarks with NODE_PATH and common/browser imports (#5985) PR #5966 switched benchmark imports to ../../src/ paths that do not resolve at runtime. Restore common/* and browser/* imports (with benchmark-only tsconfig paths for typechecking) and NODE_PATH=./out on benchmark npm scripts so emitted requires resolve against out/. Fixes #5970 Co-authored-by: Cursor Agent Co-authored-by: Daniel Imms --- package.json | 6 +++--- test/benchmark/DecorationService.benchmark.ts | 4 ++-- test/benchmark/EscapeSequenceParser.benchmark.ts | 12 ++++++------ test/benchmark/Event.benchmark.ts | 2 +- test/benchmark/Terminal.benchmark.ts | 4 ++-- test/benchmark/tsconfig.json | 6 +++++- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 43e569d02..d3da864b6 100644 --- a/package.json +++ b/package.json @@ -61,9 +61,9 @@ "test-integration-firefox": "node ./bin/test_integration.js --workers=75% \"--project=FirefoxStable\"", "test-integration-webkit": "node ./bin/test_integration.js --workers=75% \"--project=WebKit\"", "test-integration-debug": "node ./bin/test_integration.js --workers=1 --headed --timeout=30000", - "benchmark": "xterm-benchmark -r 5 -c test/benchmark/benchmark.json", - "benchmark-baseline": "xterm-benchmark -r 5 -c test/benchmark/benchmark.json --baseline out-test/benchmark/*benchmark.js", - "benchmark-eval": "xterm-benchmark -r 5 -c test/benchmark/benchmark.json --eval out-test/benchmark/*benchmark.js", + "benchmark": "NODE_PATH=./out xterm-benchmark -r 5 -c test/benchmark/benchmark.json", + "benchmark-baseline": "NODE_PATH=./out xterm-benchmark -r 5 -c test/benchmark/benchmark.json --baseline out-test/benchmark/*benchmark.js", + "benchmark-eval": "NODE_PATH=./out xterm-benchmark -r 5 -c test/benchmark/benchmark.json --eval out-test/benchmark/*benchmark.js", "clean": "rm -rf lib out addons/*/lib addons/*/out", "vtfeatures": "node bin/extract_vtfeatures.js src/*/*.ts src/*/*/*.ts src/*.ts addons/**/src/*.ts", "prepackage": "npm run build", diff --git a/test/benchmark/DecorationService.benchmark.ts b/test/benchmark/DecorationService.benchmark.ts index 534a1fa30..1a2033de1 100644 --- a/test/benchmark/DecorationService.benchmark.ts +++ b/test/benchmark/DecorationService.benchmark.ts @@ -4,8 +4,8 @@ */ import { perfContext, before, RuntimeCase } from 'xterm-benchmark'; -import { DecorationService } from '../../src/common/services/DecorationService'; -import { MockLogService, MockBufferService, MockOptionsService } from '../../src/common/TestUtils.test'; +import { DecorationService } from 'common/services/DecorationService'; +import { MockLogService, MockBufferService, MockOptionsService } from 'common/TestUtils.test'; const enum Constants { COLS = 80, ROWS = 30, diff --git a/test/benchmark/EscapeSequenceParser.benchmark.ts b/test/benchmark/EscapeSequenceParser.benchmark.ts index c2cecfdbb..5c9f372fb 100644 --- a/test/benchmark/EscapeSequenceParser.benchmark.ts +++ b/test/benchmark/EscapeSequenceParser.benchmark.ts @@ -4,12 +4,12 @@ */ import { perfContext, before, beforeEach, ThroughputRuntimeCase } from 'xterm-benchmark'; -import { EscapeSequenceParser } from '../../src/common/parser/EscapeSequenceParser'; -import { C0, C1 } from '../../src/common/data/EscapeSequences'; -import { IDcsHandler, IOscHandler, IApcHandler, IParams } from '../../src/common/parser/Types'; -import { OscHandler } from '../../src/common/parser/OscParser'; -import { DcsHandler } from '../../src/common/parser/DcsParser'; -import { ApcHandler } from '../../src/common/parser/ApcParser'; +import { EscapeSequenceParser } from 'common/parser/EscapeSequenceParser'; +import { C0, C1 } from 'common/data/EscapeSequences'; +import { IDcsHandler, IOscHandler, IApcHandler, IParams } from 'common/parser/Types'; +import { OscHandler } from 'common/parser/OscParser'; +import { DcsHandler } from 'common/parser/DcsParser'; +import { ApcHandler } from 'common/parser/ApcParser'; const SIZE = 5000000; diff --git a/test/benchmark/Event.benchmark.ts b/test/benchmark/Event.benchmark.ts index ba3f8de9c..9cd8216dc 100644 --- a/test/benchmark/Event.benchmark.ts +++ b/test/benchmark/Event.benchmark.ts @@ -4,7 +4,7 @@ */ import { perfContext, before, RuntimeCase } from 'xterm-benchmark'; -import { Emitter } from '../../src/common/Event'; +import { Emitter } from 'common/Event'; const ITERATIONS = 1_000_000; diff --git a/test/benchmark/Terminal.benchmark.ts b/test/benchmark/Terminal.benchmark.ts index 97579cb30..fb06b429e 100644 --- a/test/benchmark/Terminal.benchmark.ts +++ b/test/benchmark/Terminal.benchmark.ts @@ -6,8 +6,8 @@ import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark'; import { spawn } from 'node-pty'; -import { Utf8ToUtf32, stringFromCodePoint } from '../../src/common/input/TextDecoder'; -import { CoreBrowserTerminal } from '../../src/browser/CoreBrowserTerminal'; +import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder'; +import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal'; perfContext('Terminal: ls -lR /usr/lib', () => { let content = ''; diff --git a/test/benchmark/tsconfig.json b/test/benchmark/tsconfig.json index fe2af282c..c8e17ee61 100644 --- a/test/benchmark/tsconfig.json +++ b/test/benchmark/tsconfig.json @@ -11,7 +11,11 @@ "moduleResolution": "nodenext", "strict": false, "target": "es2021", - "module": "nodenext" + "module": "nodenext", + "paths": { + "common/*": ["../../src/common/*"], + "browser/*": ["../../src/browser/*"] + } }, "include": [ "./**/*",