From 99861b0b98ca48de2ec5ed647971ceaebfa05923 Mon Sep 17 00:00:00 2001 From: Yegor Date: Wed, 6 Nov 2024 10:07:17 -0800 Subject: [PATCH] [web] fix --ab option for web benchmarks (#154574) Fix the `--ab` option in the benchmark harness: - Make `--local-engine-host` optional. The web engine doesn't need it, so it doesn't build it. But the tool crashes by failing to find it. - Disable icon tree shaking because `--ab` runs against local engine build, whose Dart kernel version is out of sync with the framework, which crashes the const finder. --- dev/devicelab/bin/run.dart | 6 +++--- dev/devicelab/lib/framework/ab.dart | 7 ++++--- dev/devicelab/lib/tasks/web_benchmarks.dart | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dev/devicelab/bin/run.dart b/dev/devicelab/bin/run.dart index af5268d1fe5..a8f23469b39 100644 --- a/dev/devicelab/bin/run.dart +++ b/dev/devicelab/bin/run.dart @@ -99,8 +99,8 @@ Future main(List rawArgs) async { stderr.writeln(argParser.usage); exit(1); } - if (localEngineHost == null) { - stderr.writeln('When running in A/B test mode --local-engine-host is required.\n'); + if (localWebSdk == null && localEngineHost == null) { + stderr.writeln('When running in A/B test mode for mobile --local-engine-host is required.\n'); stderr.writeln(argParser.usage); exit(1); } @@ -137,7 +137,7 @@ Future _runABTest({ required int runsPerTest, required bool silent, required String? localEngine, - required String localEngineHost, + required String? localEngineHost, required String? localWebSdk, required String? localEngineSrcPath, required String? deviceId, diff --git a/dev/devicelab/lib/framework/ab.dart b/dev/devicelab/lib/framework/ab.dart index 3c38d557c30..579233a885b 100644 --- a/dev/devicelab/lib/framework/ab.dart +++ b/dev/devicelab/lib/framework/ab.dart @@ -32,7 +32,7 @@ class ABTest { ABTest.fromJsonMap(Map jsonResults) : localEngine = jsonResults[kLocalEngineKeyName] as String, - localEngineHost = jsonResults[kLocalEngineHostKeyName] as String, + localEngineHost = jsonResults[kLocalEngineHostKeyName] as String?, taskName = jsonResults[kTaskNameKeyName] as String, runStart = DateTime.parse(jsonResults[kRunStartKeyName] as String), _runEnd = DateTime.parse(jsonResults[kRunEndKeyName] as String), @@ -40,7 +40,7 @@ class ABTest { _bResults = _convertFrom(jsonResults[kBResultsKeyName] as Map); final String localEngine; - final String localEngineHost; + final String? localEngineHost; final String taskName; final DateTime runStart; DateTime? _runEnd; @@ -89,7 +89,8 @@ class ABTest { kBenchmarkTypeKeyName: kBenchmarkResultsType, kBenchmarkVersionKeyName: kBenchmarkABVersion, kLocalEngineKeyName: localEngine, - kLocalEngineHostKeyName: localEngineHost, + if (localEngineHost != null) + kLocalEngineHostKeyName: localEngineHost, kTaskNameKeyName: taskName, kRunStartKeyName: runStart.toIso8601String(), kRunEndKeyName: runEnd!.toIso8601String(), diff --git a/dev/devicelab/lib/tasks/web_benchmarks.dart b/dev/devicelab/lib/tasks/web_benchmarks.dart index 575461cc863..2368a38720b 100644 --- a/dev/devicelab/lib/tasks/web_benchmarks.dart +++ b/dev/devicelab/lib/tasks/web_benchmarks.dart @@ -34,6 +34,7 @@ Future runWebBenchmark(WebBenchmarkOptions benchmarkOptions) async { await flutter('clean'); await evalFlutter('build', options: [ 'web', + '--no-tree-shake-icons', // local engine builds are frequently out of sync with the Dart Kernel version if (benchmarkOptions.useWasm) ...[ '-O4', '--wasm',