From 93026bcae0e8fa020e5c9ba2ee6d5582fb0a7585 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 15 Feb 2020 04:23:31 -0800 Subject: [PATCH] Only enable webgl tests on chromium and non-headless firefox See microsoft/playwright#1032 --- addons/xterm-addon-webgl/src/WebglRenderer.api.ts | 15 +++++++++++++-- addons/xterm-addon-webgl/src/WebglRenderer.ts | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.api.ts b/addons/xterm-addon-webgl/src/WebglRenderer.api.ts index 03127eb0..611c0055 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.api.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.api.ts @@ -7,7 +7,7 @@ import { ITerminalOptions } from '../../../src/Types'; import { ITheme } from 'xterm'; import { assert } from 'chai'; import { openTerminal, pollFor, writeSync, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright'; +import { Browser, Page, BrowserType } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,18 @@ const width = 800; const height = 600; describe('WebGL Renderer Integration Tests', function(): void { - it('dispose removes renderer canvases', async () => { + this.timeout(20000); + + const browserType = getBrowserType(); + const isHeadless = process.argv.indexOf('--headless') !== -1; + const areTestsEnabled = browserType.name() === 'chromium' || (browserType.name() === 'firefox' && !isHeadless); + if (!areTestsEnabled) { + // Firefox work only in non-headless mode https://github.com/microsoft/playwright/issues/1032 + console.log(`WebGL Renderer tests are disabled browser "${browserType.name()}" and headless mode "${isHeadless}"`); + return; + } + + it('dispose removes renderer canvases', async function(): Promise { await setupBrowser(); assert.equal(await page.evaluate(`document.querySelectorAll('.xterm canvas').length`), 3); await page.evaluate(`addon.dispose()`); diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.ts b/addons/xterm-addon-webgl/src/WebglRenderer.ts index ae85d9a0..aba9c456 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.ts @@ -81,7 +81,7 @@ export class WebglRenderer extends Disposable implements IRenderer { }; this._gl = this._canvas.getContext('webgl2', contextAttributes) as IWebGL2RenderingContext; if (!this._gl) { - throw new Error('WebGL2 not supported'); + throw new Error('WebGL2 not supported ' + this._gl); } this._core.screenElement.appendChild(this._canvas);