From 7489ddc4f76cd3cacd5695edb5d16394431263d2 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 3 Jul 2024 05:03:18 -0700 Subject: [PATCH 1/6] Run other integration tests in CI --- .github/workflows/ci.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc937f3cb9..5b97acbf70 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,8 +192,26 @@ jobs: run: yarn build-demo - name: Integration tests (core) # Tests use 50% workers to reduce flakiness run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=core + - name: Integration tests (addon-attach) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-attach - name: Integration tests (addon-canvas) run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-canvas + - name: Integration tests (addon-clipboard) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-clipboard + - name: Integration tests (addon-fit) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-fit + - name: Integration tests (addon-image) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-image + - name: Integration tests (addon-search) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-search + - name: Integration tests (addon-serialize) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-serialize + - name: Integration tests (addon-unicode-graphemes) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-unicode-graphemes + - name: Integration tests (addon-unicode11) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-unicode11 + - name: Integration tests (addon-web-links) + run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-web-links - name: Integration tests (addon-webgl) run: yarn test-integration-${{ matrix.browser }} --workers=50% --forbid-only --suite=addon-webgl From 135c038167e4d102afefcc00319a94a2ddd1d965 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 3 Jul 2024 05:07:09 -0700 Subject: [PATCH 2/6] Add server start script to all addons with integration tests --- addons/addon-attach/package.json | 3 ++- addons/addon-clipboard/package.json | 3 ++- addons/addon-fit/package.json | 3 ++- addons/addon-image/package.json | 3 ++- addons/addon-search/package.json | 3 ++- addons/addon-serialize/package.json | 1 + addons/addon-unicode-graphemes/package.json | 1 + addons/addon-unicode11/package.json | 3 ++- addons/addon-web-links/package.json | 3 ++- 9 files changed, 16 insertions(+), 7 deletions(-) diff --git a/addons/addon-attach/package.json b/addons/addon-attach/package.json index 71b1188dbe..3a73b3848b 100644 --- a/addons/addon-attach/package.json +++ b/addons/addon-attach/package.json @@ -18,7 +18,8 @@ "build": "../../node_modules/.bin/tsc -p .", "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.0.0" diff --git a/addons/addon-clipboard/package.json b/addons/addon-clipboard/package.json index af433f9368..ef6c46f619 100644 --- a/addons/addon-clipboard/package.json +++ b/addons/addon-clipboard/package.json @@ -18,7 +18,8 @@ "build": "../../node_modules/.bin/tsc -p .", "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.4.0" diff --git a/addons/addon-fit/package.json b/addons/addon-fit/package.json index cacf31ddcf..561283a228 100644 --- a/addons/addon-fit/package.json +++ b/addons/addon-fit/package.json @@ -18,7 +18,8 @@ "build": "../../node_modules/.bin/tsc -p .", "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.0.0" diff --git a/addons/addon-image/package.json b/addons/addon-image/package.json index ac4dc01841..19e56f9408 100644 --- a/addons/addon-image/package.json +++ b/addons/addon-image/package.json @@ -19,7 +19,8 @@ "scripts": { "prepackage": "../../node_modules/.bin/tsc -p .", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.2.0" diff --git a/addons/addon-search/package.json b/addons/addon-search/package.json index 9292a0c4f0..d43699aa71 100644 --- a/addons/addon-search/package.json +++ b/addons/addon-search/package.json @@ -17,7 +17,8 @@ "scripts": { "prepackage": "../../node_modules/.bin/tsc -p .", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.0.0" diff --git a/addons/addon-serialize/package.json b/addons/addon-serialize/package.json index 30dadbb61e..d07b898b45 100644 --- a/addons/addon-serialize/package.json +++ b/addons/addon-serialize/package.json @@ -19,6 +19,7 @@ "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only", "benchmark": "NODE_PATH=../../out:./out:./out-benchmark/ ../../node_modules/.bin/xterm-benchmark -r 5 -c benchmark/benchmark.json", "benchmark-baseline": "NODE_PATH=../../out:./out:./out-benchmark/ ../../node_modules/.bin/xterm-benchmark -r 5 -c benchmark/benchmark.json --baseline out-benchmark/benchmark/*benchmark.js", "benchmark-eval": "NODE_PATH=../../out:./out:./out-benchmark/ ../../node_modules/.bin/xterm-benchmark -r 5 -c benchmark/benchmark.json --eval out-benchmark/benchmark/*benchmark.js" diff --git a/addons/addon-unicode-graphemes/package.json b/addons/addon-unicode-graphemes/package.json index 3d846286c9..e883d86b62 100644 --- a/addons/addon-unicode-graphemes/package.json +++ b/addons/addon-unicode-graphemes/package.json @@ -19,6 +19,7 @@ "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only", "benchmark": "NODE_PATH=../../out:./out:./out-benchmark/ ../../node_modules/.bin/xterm-benchmark -r 5 -c benchmark/benchmark.json out-benchmark/benchmark/*benchmark.js", "benchmark-baseline": "NODE_PATH=../../out:./out:./out-benchmark/ ../../node_modules/.bin/xterm-benchmark -r 5 -c benchmark/benchmark.json --baseline out-benchmark/benchmark/*benchmark.js", "benchmark-eval": "NODE_PATH=../../out:./out:./out-benchmark/ ../../node_modules/.bin/xterm-benchmark -r 5 -c benchmark/benchmark.json --eval out-benchmark/benchmark/*benchmark.js" diff --git a/addons/addon-unicode11/package.json b/addons/addon-unicode11/package.json index 9f2c21b879..ce8c3e257e 100644 --- a/addons/addon-unicode11/package.json +++ b/addons/addon-unicode11/package.json @@ -18,7 +18,8 @@ "build": "../../node_modules/.bin/tsc -p .", "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.0.0" diff --git a/addons/addon-web-links/package.json b/addons/addon-web-links/package.json index da888716bc..148047ecb3 100644 --- a/addons/addon-web-links/package.json +++ b/addons/addon-web-links/package.json @@ -18,7 +18,8 @@ "build": "../../node_modules/.bin/tsc -p .", "prepackage": "npm run build", "package": "../../node_modules/.bin/webpack", - "prepublishOnly": "npm run package" + "prepublishOnly": "npm run package", + "start-server-only": "node ../../demo/start-server-only" }, "peerDependencies": { "@xterm/xterm": "^5.0.0" From 2b735a0159354bb7675afd7c7c97b96d2745e972 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 3 Jul 2024 05:15:41 -0700 Subject: [PATCH 3/6] Remove space from project names --- addons/addon-image/test/playwright.config.ts | 4 ++-- addons/addon-search/test/playwright.config.ts | 4 ++-- addons/addon-serialize/test/playwright.config.ts | 4 ++-- addons/addon-unicode-graphemes/test/playwright.config.ts | 4 ++-- addons/addon-unicode11/test/playwright.config.ts | 4 ++-- addons/addon-web-links/test/playwright.config.ts | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/addon-image/test/playwright.config.ts b/addons/addon-image/test/playwright.config.ts index b0e565c546..79cf9f0290 100644 --- a/addons/addon-image/test/playwright.config.ts +++ b/addons/addon-image/test/playwright.config.ts @@ -5,14 +5,14 @@ const config: PlaywrightTestConfig = { timeout: 10000, projects: [ { - name: 'Chrome Stable', + name: 'ChromeStable', use: { browserName: 'chromium', channel: 'chrome' } }, { - name: 'Firefox Stable', + name: 'FirefoxStable', use: { browserName: 'firefox' } diff --git a/addons/addon-search/test/playwright.config.ts b/addons/addon-search/test/playwright.config.ts index b0e565c546..79cf9f0290 100644 --- a/addons/addon-search/test/playwright.config.ts +++ b/addons/addon-search/test/playwright.config.ts @@ -5,14 +5,14 @@ const config: PlaywrightTestConfig = { timeout: 10000, projects: [ { - name: 'Chrome Stable', + name: 'ChromeStable', use: { browserName: 'chromium', channel: 'chrome' } }, { - name: 'Firefox Stable', + name: 'FirefoxStable', use: { browserName: 'firefox' } diff --git a/addons/addon-serialize/test/playwright.config.ts b/addons/addon-serialize/test/playwright.config.ts index b0e565c546..79cf9f0290 100644 --- a/addons/addon-serialize/test/playwright.config.ts +++ b/addons/addon-serialize/test/playwright.config.ts @@ -5,14 +5,14 @@ const config: PlaywrightTestConfig = { timeout: 10000, projects: [ { - name: 'Chrome Stable', + name: 'ChromeStable', use: { browserName: 'chromium', channel: 'chrome' } }, { - name: 'Firefox Stable', + name: 'FirefoxStable', use: { browserName: 'firefox' } diff --git a/addons/addon-unicode-graphemes/test/playwright.config.ts b/addons/addon-unicode-graphemes/test/playwright.config.ts index b0e565c546..79cf9f0290 100644 --- a/addons/addon-unicode-graphemes/test/playwright.config.ts +++ b/addons/addon-unicode-graphemes/test/playwright.config.ts @@ -5,14 +5,14 @@ const config: PlaywrightTestConfig = { timeout: 10000, projects: [ { - name: 'Chrome Stable', + name: 'ChromeStable', use: { browserName: 'chromium', channel: 'chrome' } }, { - name: 'Firefox Stable', + name: 'FirefoxStable', use: { browserName: 'firefox' } diff --git a/addons/addon-unicode11/test/playwright.config.ts b/addons/addon-unicode11/test/playwright.config.ts index b0e565c546..79cf9f0290 100644 --- a/addons/addon-unicode11/test/playwright.config.ts +++ b/addons/addon-unicode11/test/playwright.config.ts @@ -5,14 +5,14 @@ const config: PlaywrightTestConfig = { timeout: 10000, projects: [ { - name: 'Chrome Stable', + name: 'ChromeStable', use: { browserName: 'chromium', channel: 'chrome' } }, { - name: 'Firefox Stable', + name: 'FirefoxStable', use: { browserName: 'firefox' } diff --git a/addons/addon-web-links/test/playwright.config.ts b/addons/addon-web-links/test/playwright.config.ts index b0e565c546..79cf9f0290 100644 --- a/addons/addon-web-links/test/playwright.config.ts +++ b/addons/addon-web-links/test/playwright.config.ts @@ -5,14 +5,14 @@ const config: PlaywrightTestConfig = { timeout: 10000, projects: [ { - name: 'Chrome Stable', + name: 'ChromeStable', use: { browserName: 'chromium', channel: 'chrome' } }, { - name: 'Firefox Stable', + name: 'FirefoxStable', use: { browserName: 'firefox' } From 11b9eb4a1c9faa6e9830a497d1ab8c587ba37299 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 3 Jul 2024 08:09:15 -0700 Subject: [PATCH 4/6] Use fixed dimensions on search test --- addons/addon-search/test/SearchAddon.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/addon-search/test/SearchAddon.test.ts b/addons/addon-search/test/SearchAddon.test.ts index 80b0a120da..64379d9f18 100644 --- a/addons/addon-search/test/SearchAddon.test.ts +++ b/addons/addon-search/test/SearchAddon.test.ts @@ -12,7 +12,7 @@ import { ITestContext, createTestContext, openTerminal, timeout } from '../../.. let ctx: ITestContext; test.beforeAll(async ({ browser }) => { ctx = await createTestContext(browser); - await openTerminal(ctx); + await openTerminal(ctx, { cols: 80, rows: 24 }); }); test.afterAll(async () => await ctx.page.close()); From 224409d7d654c849d4d6dd1958413096c19fb021 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 3 Jul 2024 08:17:19 -0700 Subject: [PATCH 5/6] Use fixed dimensions on image test --- addons/addon-image/test/ImageAddon.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/addon-image/test/ImageAddon.test.ts b/addons/addon-image/test/ImageAddon.test.ts index abd1295c22..64d4fa22fd 100644 --- a/addons/addon-image/test/ImageAddon.test.ts +++ b/addons/addon-image/test/ImageAddon.test.ts @@ -61,7 +61,7 @@ const TESTDATA_IIP: [string, [number, number]][] = [ let ctx: ITestContext; test.beforeAll(async ({ browser }) => { ctx = await createTestContext(browser); - await openTerminal(ctx); + await openTerminal(ctx, { cols: 80, rows: 24 }); }); test.afterAll(async () => await ctx.page.close()); From a1b2a1c5eee51ced00f9dd2e1cf41d48b3c234b7 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 3 Jul 2024 08:44:49 -0700 Subject: [PATCH 6/6] \n -> \r\n on non-Windows --- addons/addon-search/test/SearchAddon.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/addon-search/test/SearchAddon.test.ts b/addons/addon-search/test/SearchAddon.test.ts index 64379d9f18..dbcb073806 100644 --- a/addons/addon-search/test/SearchAddon.test.ts +++ b/addons/addon-search/test/SearchAddon.test.ts @@ -390,6 +390,9 @@ test.describe('Search Tests', () => { let fixture: string; test.beforeAll(async () => { fixture = (await new Promise(r => readFile(resolve(__dirname, '../fixtures/issue-2444'), (err, data) => r(data)))).toString(); + if (process.platform !== 'win32') { + fixture = fixture.replace(/\n/g, '\n\r'); + } }); test('should find all occurrences using findNext', async () => { await ctx.proxy.write(fixture);