From ced7c2deac958391414d2bbf951f86e2fc904b05 Mon Sep 17 00:00:00 2001 From: Yulong Wang <7679871+fs-eire@users.noreply.github.com> Date: Mon, 18 Jul 2022 14:04:27 -0700 Subject: [PATCH] [js/web] use windowed Chrome for perf mode (#12157) --- js/web/karma.conf.js | 3 ++- js/web/script/test-runner-cli.ts | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/js/web/karma.conf.js b/js/web/karma.conf.js index faf9efe5bf..49553088bd 100644 --- a/js/web/karma.conf.js +++ b/js/web/karma.conf.js @@ -77,7 +77,8 @@ module.exports = function (config) { browserSocketTimeout: 60000, hostname: getMachineIpAddress(), customLaunchers: { - ChromeTest: { base: 'ChromeHeadless', flags: ['--window-size=1,1', '--enable-features=SharedArrayBuffer'] }, + ChromeTest: { base: 'ChromeHeadless', flags: ['--enable-features=SharedArrayBuffer'] }, + ChromePerf: { base: 'Chrome', flags: ['--window-size=1,1', '--enable-features=SharedArrayBuffer'] }, ChromeDebug: { debug: true, base: 'Chrome', flags: ['--remote-debugging-port=9333', '--enable-features=SharedArrayBuffer'] }, // diff --git a/js/web/script/test-runner-cli.ts b/js/web/script/test-runner-cli.ts index 43cad6cec3..3db6c104a6 100644 --- a/js/web/script/test-runner-cli.ts +++ b/js/web/script/test-runner-cli.ts @@ -451,7 +451,11 @@ function run(config: Test.Config) { // STEP 5. use Karma to run test npmlog.info('TestRunnerCli.Run', '(5/5) Running karma to start test runner...'); const karmaCommand = path.join(npmBin, 'karma'); - const browser = getBrowserNameFromEnv(args.env, args.debug); + const browser = getBrowserNameFromEnv( + args.env, + args.bundleMode === 'perf' ? 'perf' : + args.debug ? 'debug' : + 'test'); const karmaArgs = ['start', `--browsers ${browser}`]; if (args.debug) { karmaArgs.push('--log-level info --timeout-mocha 9999999'); @@ -552,10 +556,10 @@ function saveConfig(config: Test.Config) { fs.writeJSONSync(path.join(TEST_ROOT, './testdata-config.json'), config); } -function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], debug?: boolean) { +function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], mode: 'debug'|'perf'|'test') { switch (env) { case 'chrome': - return debug ? 'ChromeDebug' : 'ChromeTest'; + return selectChromeBrowser(mode); case 'edge': return 'Edge'; case 'firefox': @@ -570,3 +574,14 @@ function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], debug?: boolean) { throw new Error(`env "${env}" not supported.`); } } + +function selectChromeBrowser(mode: 'debug'|'perf'|'test') { + switch (mode) { + case 'debug': + return 'ChromeDebug'; + case 'perf': + return 'ChromePerf'; + default: + return 'ChromeTest'; + } +}