From 53c526f48cb3267c4854c9d7ea72e3b80cb346ed Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 18 Feb 2020 06:49:11 -0800 Subject: [PATCH 1/4] Improve Linux dependencies, enable WebKit --- azure-pipelines.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index adeecb88..67b6b006 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -82,8 +82,13 @@ jobs: vmImage: 'ubuntu-18.04' steps: - script: | + # source: https://github.com/microsoft/playwright/issues/1041 sudo apt update - sudo apt install libwoff1 libopus0 libwebp6 libwebpdemux2 libenchant1c2a libgudev-1.0-0 libsecret-1-0 libhyphen0 libgdk-pixbuf2.0-0 libegl1 libgles2 libevent-2.1-6 libnotify4 libxslt1.1 + sudo apt install libwoff1 libopus0 libwebp6 libwebpdemux2 libenchant1c2a libgudev-1.0-0 libsecret-1-0 libhyphen0 libgdk-pixbuf2.0-0 libegl1 libnotify4 libxslt1.1 libevent-2.1-6 libgles2 libgl1 libegl1 libvpx5 + # for chromium + sudo apt install libnss3 libxss1 libasound2 + # for firefox + sudo apt install libdbus-glib-1-2 libxt6 displayName: Install required packages - task: NodeTool@0 inputs: @@ -108,6 +113,8 @@ jobs: displayName: 'Integration tests (Chromium)' - script: xvfb-run --auto-servernum -- bash -c "yarn test-api-firefox --headless --forbid-only" displayName: 'Integration tests (Firefox)' + - script: xvfb-run --auto-servernum -- bash -c "yarn test-api-webkit --headless --forbid-only" + displayName: 'Integration tests (Webkit)' - job: macOS_IntegrationTests pool: From 9a1c7953e7dba3add9574fe7e3565837fd581c0e Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 18 Feb 2020 07:39:15 -0800 Subject: [PATCH 2/4] dumpio in browser launch --- addons/xterm-addon-attach/src/AttachAddon.api.ts | 2 +- addons/xterm-addon-fit/src/FitAddon.api.ts | 2 +- addons/xterm-addon-search/src/SearchAddon.api.ts | 2 +- addons/xterm-addon-serialize/src/SerializeAddon.api.ts | 2 +- addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts | 2 +- addons/xterm-addon-web-links/src/WebLinksAddon.api.ts | 2 +- addons/xterm-addon-webgl/src/WebglRenderer.api.ts | 2 +- test/api/CharWidth.api.ts | 2 +- test/api/InputHandler.api.ts | 2 +- test/api/MouseTracking.api.ts | 2 +- test/api/Parser.api.ts | 2 +- test/api/Terminal.api.ts | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/xterm-addon-attach/src/AttachAddon.api.ts b/addons/xterm-addon-attach/src/AttachAddon.api.ts index 625e1b4d..6727fb72 100644 --- a/addons/xterm-addon-attach/src/AttachAddon.api.ts +++ b/addons/xterm-addon-attach/src/AttachAddon.api.ts @@ -17,7 +17,7 @@ const height = 600; describe('AttachAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/addons/xterm-addon-fit/src/FitAddon.api.ts b/addons/xterm-addon-fit/src/FitAddon.api.ts index 798b2fc5..63c7f5a5 100644 --- a/addons/xterm-addon-fit/src/FitAddon.api.ts +++ b/addons/xterm-addon-fit/src/FitAddon.api.ts @@ -17,7 +17,7 @@ const height = 768; describe('FitAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/addons/xterm-addon-search/src/SearchAddon.api.ts b/addons/xterm-addon-search/src/SearchAddon.api.ts index 21238332..ea3cdfa0 100644 --- a/addons/xterm-addon-search/src/SearchAddon.api.ts +++ b/addons/xterm-addon-search/src/SearchAddon.api.ts @@ -19,7 +19,7 @@ const height = 600; describe('Search Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/addons/xterm-addon-serialize/src/SerializeAddon.api.ts b/addons/xterm-addon-serialize/src/SerializeAddon.api.ts index 824b4b89..4c830978 100644 --- a/addons/xterm-addon-serialize/src/SerializeAddon.api.ts +++ b/addons/xterm-addon-serialize/src/SerializeAddon.api.ts @@ -17,7 +17,7 @@ const height = 600; describe('SerializeAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`] }); diff --git a/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts b/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts index 983e795f..cf5331b0 100644 --- a/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts +++ b/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts @@ -17,7 +17,7 @@ const height = 600; describe('Unicode11Addon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts b/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts index b2516cdf..f35fc0e4 100644 --- a/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts +++ b/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts @@ -17,7 +17,7 @@ const height = 600; describe('WebLinksAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.api.ts b/addons/xterm-addon-webgl/src/WebglRenderer.api.ts index cd90ddd9..a38210e6 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.api.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.api.ts @@ -899,7 +899,7 @@ async function getCellColor(col: number, row: number): Promise { async function setupBrowser(options: ITerminalOptions = { rendererType: 'dom' }): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/test/api/CharWidth.api.ts b/test/api/CharWidth.api.ts index b5cb5838..9e484738 100644 --- a/test/api/CharWidth.api.ts +++ b/test/api/CharWidth.api.ts @@ -16,7 +16,7 @@ const height = 600; describe('CharWidth Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/test/api/InputHandler.api.ts b/test/api/InputHandler.api.ts index d4018d90..0070f1a4 100644 --- a/test/api/InputHandler.api.ts +++ b/test/api/InputHandler.api.ts @@ -21,7 +21,7 @@ describe('InputHandler Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); isChromium = browserType.name() === 'chromium'; - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/test/api/MouseTracking.api.ts b/test/api/MouseTracking.api.ts index 4d10a987..934a9ce5 100644 --- a/test/api/MouseTracking.api.ts +++ b/test/api/MouseTracking.api.ts @@ -213,7 +213,7 @@ describe('Mouse Tracking Tests', async () => { const itMouse = isChromium ? it : it.skip; before(async function(): Promise { - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/test/api/Parser.api.ts b/test/api/Parser.api.ts index 29dcbb0b..0ba3248b 100644 --- a/test/api/Parser.api.ts +++ b/test/api/Parser.api.ts @@ -17,7 +17,7 @@ const height = 600; describe('Parser Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); diff --git a/test/api/Terminal.api.ts b/test/api/Terminal.api.ts index fce17511..996e9ccd 100644 --- a/test/api/Terminal.api.ts +++ b/test/api/Terminal.api.ts @@ -17,7 +17,7 @@ const height = 600; describe('API Integration Tests', function(): void { before(async () => { const browserType = getBrowserType(); - browser = await browserType.launch({ + browser = await browserType.launch({ dumpio: true, headless: process.argv.indexOf('--headless') !== -1, args: [`--window-size=${width},${height}`, `--no-sandbox`] }); From a18bac7380d832d82aceabc63c47becee16fd9b0 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 18 Feb 2020 07:47:01 -0800 Subject: [PATCH 3/4] Remove browser args --- addons/xterm-addon-attach/src/AttachAddon.api.ts | 3 +-- addons/xterm-addon-fit/src/FitAddon.api.ts | 3 +-- addons/xterm-addon-search/src/SearchAddon.api.ts | 3 +-- addons/xterm-addon-serialize/src/SerializeAddon.api.ts | 3 +-- addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts | 3 +-- addons/xterm-addon-web-links/src/WebLinksAddon.api.ts | 3 +-- addons/xterm-addon-webgl/src/WebglRenderer.api.ts | 3 +-- test/api/CharWidth.api.ts | 3 +-- test/api/InputHandler.api.ts | 3 +-- test/api/MouseTracking.api.ts | 3 +-- test/api/Parser.api.ts | 3 +-- test/api/Terminal.api.ts | 3 +-- 12 files changed, 12 insertions(+), 24 deletions(-) diff --git a/addons/xterm-addon-attach/src/AttachAddon.api.ts b/addons/xterm-addon-attach/src/AttachAddon.api.ts index 6727fb72..6816a5f1 100644 --- a/addons/xterm-addon-attach/src/AttachAddon.api.ts +++ b/addons/xterm-addon-attach/src/AttachAddon.api.ts @@ -18,8 +18,7 @@ describe('AttachAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/addons/xterm-addon-fit/src/FitAddon.api.ts b/addons/xterm-addon-fit/src/FitAddon.api.ts index 63c7f5a5..5eae6b6d 100644 --- a/addons/xterm-addon-fit/src/FitAddon.api.ts +++ b/addons/xterm-addon-fit/src/FitAddon.api.ts @@ -18,8 +18,7 @@ describe('FitAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/addons/xterm-addon-search/src/SearchAddon.api.ts b/addons/xterm-addon-search/src/SearchAddon.api.ts index ea3cdfa0..125e3dcb 100644 --- a/addons/xterm-addon-search/src/SearchAddon.api.ts +++ b/addons/xterm-addon-search/src/SearchAddon.api.ts @@ -20,8 +20,7 @@ describe('Search Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/addons/xterm-addon-serialize/src/SerializeAddon.api.ts b/addons/xterm-addon-serialize/src/SerializeAddon.api.ts index 4c830978..9e79de3f 100644 --- a/addons/xterm-addon-serialize/src/SerializeAddon.api.ts +++ b/addons/xterm-addon-serialize/src/SerializeAddon.api.ts @@ -18,8 +18,7 @@ describe('SerializeAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts b/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts index cf5331b0..8d521b2e 100644 --- a/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts +++ b/addons/xterm-addon-unicode11/src/Unicode11Addon.api.ts @@ -18,8 +18,7 @@ describe('Unicode11Addon', () => { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts b/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts index f35fc0e4..dc7317f0 100644 --- a/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts +++ b/addons/xterm-addon-web-links/src/WebLinksAddon.api.ts @@ -18,8 +18,7 @@ describe('WebLinksAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.api.ts b/addons/xterm-addon-webgl/src/WebglRenderer.api.ts index a38210e6..591d7fff 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.api.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.api.ts @@ -900,8 +900,7 @@ async function getCellColor(col: number, row: number): Promise { async function setupBrowser(options: ITerminalOptions = { rendererType: 'dom' }): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/test/api/CharWidth.api.ts b/test/api/CharWidth.api.ts index 9e484738..705dde7c 100644 --- a/test/api/CharWidth.api.ts +++ b/test/api/CharWidth.api.ts @@ -17,8 +17,7 @@ describe('CharWidth Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/test/api/InputHandler.api.ts b/test/api/InputHandler.api.ts index 0070f1a4..45aa7075 100644 --- a/test/api/InputHandler.api.ts +++ b/test/api/InputHandler.api.ts @@ -22,8 +22,7 @@ describe('InputHandler Integration Tests', function(): void { const browserType = getBrowserType(); isChromium = browserType.name() === 'chromium'; browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/test/api/MouseTracking.api.ts b/test/api/MouseTracking.api.ts index 934a9ce5..3ddf3a05 100644 --- a/test/api/MouseTracking.api.ts +++ b/test/api/MouseTracking.api.ts @@ -214,8 +214,7 @@ describe('Mouse Tracking Tests', async () => { before(async function(): Promise { browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/test/api/Parser.api.ts b/test/api/Parser.api.ts index 0ba3248b..a40fd504 100644 --- a/test/api/Parser.api.ts +++ b/test/api/Parser.api.ts @@ -18,8 +18,7 @@ describe('Parser Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); diff --git a/test/api/Terminal.api.ts b/test/api/Terminal.api.ts index 996e9ccd..2c26bb08 100644 --- a/test/api/Terminal.api.ts +++ b/test/api/Terminal.api.ts @@ -18,8 +18,7 @@ describe('API Integration Tests', function(): void { before(async () => { const browserType = getBrowserType(); browser = await browserType.launch({ dumpio: true, - headless: process.argv.indexOf('--headless') !== -1, - args: [`--window-size=${width},${height}`, `--no-sandbox`] + headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); await page.setViewportSize({ width, height }); From 951d342ed743f13a2a9c00cb44bafcb499e4ed28 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 10 Apr 2020 06:38:54 -0700 Subject: [PATCH 4/4] Disable webkit --- azure-pipelines.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fa90af21..05c3b03d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -113,8 +113,6 @@ jobs: displayName: 'Integration tests (Chromium)' - script: xvfb-run --auto-servernum -- bash -c "yarn test-api-firefox --headless --forbid-only" displayName: 'Integration tests (Firefox)' - - script: xvfb-run --auto-servernum -- bash -c "yarn test-api-webkit --headless --forbid-only" - displayName: 'Integration tests (Webkit)' - job: macOS_IntegrationTests pool: