mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-29 20:14:01 +00:00
[js/webgpu] use Headless for webgpu test by default (#19702)
### Description use Chromium Headless for webgpu test by default. Still use normal Chromium with window when debug=true or perfMode=true. Use the [`--headless=new`](https://developer.chrome.com/docs/chromium/new-headless) mode. ### Motivation and Context try to use a more stable way to launch npm tests to avoid a "chrome not found" issue in pipeline, which may potentially caused by windowed application.
This commit is contained in:
parent
a93c31e3c9
commit
e30618d055
2 changed files with 9 additions and 24 deletions
|
|
@ -86,11 +86,11 @@ module.exports = function(config) {
|
||||||
hostname,
|
hostname,
|
||||||
listenAddress,
|
listenAddress,
|
||||||
customLaunchers: {
|
customLaunchers: {
|
||||||
// the following flags are used to make sure Edge on CI agents to initialize WebGPU correctly.
|
// Chromium-based browsers
|
||||||
EdgeTest: {base: 'Edge', flags: chromiumFlags},
|
EdgeTest: {base: 'Edge', flags: chromiumFlags},
|
||||||
ChromeTest: {base: 'Chrome', flags: chromiumFlags},
|
ChromeTest: {base: 'Chrome', flags: chromiumFlags},
|
||||||
ChromeTestHeadless: {base: 'ChromeHeadless', flags: chromiumFlags},
|
|
||||||
ChromeCanaryTest: {base: 'ChromeCanary', flags: chromiumFlags},
|
ChromeCanaryTest: {base: 'ChromeCanary', flags: chromiumFlags},
|
||||||
|
|
||||||
//
|
//
|
||||||
// ==== BrowserStack browsers ====
|
// ==== BrowserStack browsers ====
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -542,14 +542,13 @@ async function main() {
|
||||||
npmlog.info('TestRunnerCli.Run', '(4/4) Running karma to start test runner...');
|
npmlog.info('TestRunnerCli.Run', '(4/4) Running karma to start test runner...');
|
||||||
const webgpu = args.backends.indexOf('webgpu') > -1;
|
const webgpu = args.backends.indexOf('webgpu') > -1;
|
||||||
const webnn = args.backends.indexOf('webnn') > -1;
|
const webnn = args.backends.indexOf('webnn') > -1;
|
||||||
const browser = getBrowserNameFromEnv(
|
const browser = getBrowserNameFromEnv(args.env);
|
||||||
args.env,
|
|
||||||
args.bundleMode === 'perf' ? 'perf' :
|
|
||||||
args.debug ? 'debug' :
|
|
||||||
'test',
|
|
||||||
webgpu);
|
|
||||||
const karmaArgs = ['karma', 'start', `--browsers ${browser}`];
|
const karmaArgs = ['karma', 'start', `--browsers ${browser}`];
|
||||||
const chromiumFlags = ['--enable-features=SharedArrayBuffer', ...args.chromiumFlags];
|
const chromiumFlags = ['--enable-features=SharedArrayBuffer', ...args.chromiumFlags];
|
||||||
|
if (args.bundleMode === 'dev' && !args.debug) {
|
||||||
|
// use headless for 'test' mode (when 'perf' and 'debug' are OFF)
|
||||||
|
chromiumFlags.push('--headless=new');
|
||||||
|
}
|
||||||
if (args.debug) {
|
if (args.debug) {
|
||||||
karmaArgs.push('--log-level info --timeout-mocha 9999999');
|
karmaArgs.push('--log-level info --timeout-mocha 9999999');
|
||||||
chromiumFlags.push('--remote-debugging-port=9333');
|
chromiumFlags.push('--remote-debugging-port=9333');
|
||||||
|
|
@ -662,10 +661,10 @@ async function main() {
|
||||||
fs.writeJSONSync(path.join(TEST_ROOT, './testdata-config.json'), config);
|
fs.writeJSONSync(path.join(TEST_ROOT, './testdata-config.json'), config);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], mode: 'debug'|'perf'|'test', webgpu: boolean) {
|
function getBrowserNameFromEnv(env: TestRunnerCliArgs['env']) {
|
||||||
switch (env) {
|
switch (env) {
|
||||||
case 'chrome':
|
case 'chrome':
|
||||||
return selectChromeBrowser(mode, webgpu);
|
return 'ChromeTest';
|
||||||
case 'edge':
|
case 'edge':
|
||||||
return 'EdgeTest';
|
return 'EdgeTest';
|
||||||
case 'firefox':
|
case 'firefox':
|
||||||
|
|
@ -680,20 +679,6 @@ async function main() {
|
||||||
throw new Error(`env "${env}" not supported.`);
|
throw new Error(`env "${env}" not supported.`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectChromeBrowser(mode: 'debug'|'perf'|'test', webgpu: boolean) {
|
|
||||||
if (webgpu) {
|
|
||||||
return 'ChromeTest';
|
|
||||||
} else {
|
|
||||||
switch (mode) {
|
|
||||||
case 'debug':
|
|
||||||
case 'perf':
|
|
||||||
return 'ChromeTest';
|
|
||||||
default:
|
|
||||||
return 'ChromeTestHeadless';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void main();
|
void main();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue