mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
[web] Remove HTML from bots, test suites and e2e tests (#161537)
- Stop running framework tests in HTML mode in CI. - Update some READMEs - Remove HTML-specific integration tests
This commit is contained in:
parent
74ab593738
commit
f2e6dbc567
192
.ci.yaml
192
.ci.yaml
@ -1723,198 +1723,6 @@ targets:
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_0
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "0"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_1
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "1"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_2
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "2"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_3
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "3"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_4
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "4"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_5
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "5"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_6
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "6"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_tests_7_last
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
properties:
|
||||
dependencies: >-
|
||||
[
|
||||
{"dependency": "android_sdk", "version": "version:35v1"},
|
||||
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
|
||||
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"}
|
||||
]
|
||||
shard: web_tests
|
||||
subshard: "7_last"
|
||||
tags: >
|
||||
["framework", "hostonly", "shard", "linux"]
|
||||
# Retry for flakes caused by https://github.com/flutter/flutter/issues/132654
|
||||
presubmit_max_attempts: "2"
|
||||
runIf:
|
||||
- dev/**
|
||||
- packages/**
|
||||
- bin/**
|
||||
- .ci.yaml
|
||||
- engine/**
|
||||
- DEPS
|
||||
|
||||
- name: Linux web_canvaskit_tests_0
|
||||
recipe: flutter/flutter_drone
|
||||
timeout: 60
|
||||
|
@ -345,6 +345,5 @@
|
||||
# web_canvaskit_tests @yjbanov @flutter/web
|
||||
# web_integration_tests @yjbanov @flutter/web
|
||||
# web_long_running_tests @yjbanov @flutter/web
|
||||
# web_tests @yjbanov @flutter/web
|
||||
# web_skwasm_tests @eyebrowsoffire @flutter/web
|
||||
# web_tool_tests @yjbanov @flutter/tool
|
||||
|
@ -121,8 +121,8 @@ Example:
|
||||
```sh
|
||||
cd dev/benchmarks/macrobenchmarks
|
||||
|
||||
# Runs in profile mode using the CanvasKit renderer
|
||||
flutter run --web-renderer=canvaskit --profile -d web-server lib/web_benchmarks.dart
|
||||
# Runs in profile mode
|
||||
flutter run --profile -d web-server lib/web_benchmarks.dart
|
||||
```
|
||||
|
||||
You can also run all benchmarks exactly as the devicelab runs them:
|
||||
|
@ -49,12 +49,6 @@ class WebTestsSuite {
|
||||
//
|
||||
// TODO(yjbanov): we're getting rid of this as part of https://github.com/flutter/flutter/projects/60
|
||||
static const Map<String, List<String>> kWebTestFileKnownFailures = <String, List<String>>{
|
||||
'html': <String>[
|
||||
// These tests are not compilable on the web due to dependencies on
|
||||
// VM-specific functionality.
|
||||
'test/services/message_codecs_vm_test.dart',
|
||||
'test/examples/sector_layout_test.dart',
|
||||
],
|
||||
'canvaskit': <String>[
|
||||
// These tests are not compilable on the web due to dependencies on
|
||||
// VM-specific functionality.
|
||||
@ -148,48 +142,58 @@ class WebTestsSuite {
|
||||
],
|
||||
|
||||
// This test doesn't do anything interesting w.r.t. rendering, so we don't run the full build mode x renderer matrix.
|
||||
() => _runWebE2eTest('profile_diagnostics_integration', buildMode: 'debug', renderer: 'html'),
|
||||
() => _runWebE2eTest(
|
||||
'profile_diagnostics_integration',
|
||||
buildMode: 'debug',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
() => _runWebE2eTest(
|
||||
'profile_diagnostics_integration',
|
||||
buildMode: 'profile',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
() =>
|
||||
_runWebE2eTest('profile_diagnostics_integration', buildMode: 'release', renderer: 'html'),
|
||||
() => _runWebE2eTest(
|
||||
'profile_diagnostics_integration',
|
||||
buildMode: 'release',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
|
||||
// This test is only known to work in debug mode.
|
||||
() => _runWebE2eTest('scroll_wheel_integration', buildMode: 'debug', renderer: 'html'),
|
||||
() => _runWebE2eTest('scroll_wheel_integration', buildMode: 'debug', renderer: 'canvaskit'),
|
||||
|
||||
// This test doesn't do anything interesting w.r.t. rendering, so we don't run the full build mode x renderer matrix.
|
||||
// These tests have been extremely flaky, so we are temporarily disabling them until we figure out how to make them more robust.
|
||||
() => _runWebE2eTest('text_editing_integration', buildMode: 'debug', renderer: 'canvaskit'),
|
||||
() => _runWebE2eTest('text_editing_integration', buildMode: 'profile', renderer: 'html'),
|
||||
() => _runWebE2eTest('text_editing_integration', buildMode: 'release', renderer: 'html'),
|
||||
() => _runWebE2eTest('text_editing_integration', buildMode: 'profile', renderer: 'canvaskit'),
|
||||
() => _runWebE2eTest('text_editing_integration', buildMode: 'release', renderer: 'canvaskit'),
|
||||
|
||||
// This test doesn't do anything interesting w.r.t. rendering, so we don't run the full build mode x renderer matrix.
|
||||
() => _runWebE2eTest('url_strategy_integration', buildMode: 'debug', renderer: 'html'),
|
||||
() => _runWebE2eTest('url_strategy_integration', buildMode: 'debug', renderer: 'canvaskit'),
|
||||
() => _runWebE2eTest('url_strategy_integration', buildMode: 'profile', renderer: 'canvaskit'),
|
||||
() => _runWebE2eTest('url_strategy_integration', buildMode: 'release', renderer: 'html'),
|
||||
() => _runWebE2eTest('url_strategy_integration', buildMode: 'release', renderer: 'canvaskit'),
|
||||
|
||||
// This test doesn't do anything interesting w.r.t. rendering, so we don't run the full build mode x renderer matrix.
|
||||
() => _runWebE2eTest(
|
||||
'capabilities_integration_canvaskit',
|
||||
buildMode: 'debug',
|
||||
renderer: 'auto',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
() => _runWebE2eTest(
|
||||
'capabilities_integration_canvaskit',
|
||||
buildMode: 'profile',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
() => _runWebE2eTest('capabilities_integration_html', buildMode: 'release', renderer: 'html'),
|
||||
() => _runWebE2eTest(
|
||||
'capabilities_integration_canvaskit',
|
||||
buildMode: 'release',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
|
||||
// This test doesn't do anything interesting w.r.t. rendering, so we don't run the full build mode x renderer matrix.
|
||||
// CacheWidth and CacheHeight are only currently supported in CanvasKit mode, so we don't run the test in HTML mode.
|
||||
() => _runWebE2eTest(
|
||||
'cache_width_cache_height_integration',
|
||||
buildMode: 'debug',
|
||||
renderer: 'auto',
|
||||
renderer: 'canvaskit',
|
||||
),
|
||||
() => _runWebE2eTest(
|
||||
'cache_width_cache_height_integration',
|
||||
@ -203,14 +207,11 @@ class WebTestsSuite {
|
||||
testAppDirectory: path.join(flutterRoot, 'examples', 'hello_world'),
|
||||
target: 'test_driver/smoke_web_engine.dart',
|
||||
buildMode: 'profile',
|
||||
webRenderer: 'auto',
|
||||
webRenderer: 'canvaskit',
|
||||
),
|
||||
() => _runGalleryE2eWebTest('debug'),
|
||||
() => _runGalleryE2eWebTest('debug', canvasKit: true),
|
||||
() => _runGalleryE2eWebTest('profile'),
|
||||
() => _runGalleryE2eWebTest('profile', canvasKit: true),
|
||||
() => _runGalleryE2eWebTest('release'),
|
||||
() => _runGalleryE2eWebTest('release', canvasKit: true),
|
||||
() =>
|
||||
runWebServiceWorkerTest(headless: true, testType: ServiceWorkerTestType.withoutFlutterJs),
|
||||
() => runWebServiceWorkerTest(headless: true, testType: ServiceWorkerTestType.withFlutterJs),
|
||||
@ -284,12 +285,6 @@ class WebTestsSuite {
|
||||
() => _runWebReleaseTest('lib/assertion_test.dart'),
|
||||
() => _runWebDebugTest('lib/sound_mode.dart'),
|
||||
() => _runWebReleaseTest('lib/sound_mode.dart'),
|
||||
() => _runFlutterWebTest(
|
||||
'html',
|
||||
path.join(flutterRoot, 'packages', 'integration_test'),
|
||||
<String>['test/web_extension_test.dart'],
|
||||
false,
|
||||
),
|
||||
() => _runFlutterWebTest(
|
||||
'canvaskit',
|
||||
path.join(flutterRoot, 'packages', 'integration_test'),
|
||||
@ -313,10 +308,6 @@ class WebTestsSuite {
|
||||
await _stopChromeDriver();
|
||||
}
|
||||
|
||||
Future<void> runWebHtmlUnitTests() {
|
||||
return _runWebUnitTests('html', false);
|
||||
}
|
||||
|
||||
Future<void> runWebCanvasKitUnitTests() {
|
||||
return _runWebUnitTests('canvaskit', false);
|
||||
}
|
||||
@ -370,7 +361,6 @@ class WebTestsSuite {
|
||||
'-d',
|
||||
'web-server',
|
||||
'--$buildMode',
|
||||
// '--web-renderer=$webRenderer',
|
||||
if (webRenderer == 'skwasm') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[skwasm]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
@ -381,11 +371,6 @@ class WebTestsSuite {
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=true',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
if (webRenderer == 'html') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[html]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
],
|
||||
expectNonZeroExit: expectFailure,
|
||||
workingDirectory: testAppDirectory,
|
||||
@ -478,20 +463,11 @@ class WebTestsSuite {
|
||||
///
|
||||
/// This is not a performance test.
|
||||
///
|
||||
/// If [canvasKit] is set to true, runs the test in CanvasKit mode.
|
||||
///
|
||||
/// The test is written using `package:integration_test` (despite the "e2e" in
|
||||
/// the name, which is there for historic reasons).
|
||||
Future<void> _runGalleryE2eWebTest(String buildMode, {bool canvasKit = false}) async {
|
||||
// TODO(yjbanov): this is temporarily disabled due to https://github.com/flutter/flutter/issues/147731
|
||||
if (buildMode == 'debug' && canvasKit) {
|
||||
print(
|
||||
'SKIPPED: Gallery e2e web test in debug CanvasKit mode due to https://github.com/flutter/flutter/issues/147731',
|
||||
);
|
||||
return;
|
||||
}
|
||||
Future<void> _runGalleryE2eWebTest(String buildMode) async {
|
||||
printProgress(
|
||||
'${green}Running flutter_gallery integration test in --$buildMode using ${canvasKit ? 'CanvasKit' : 'HTML'} renderer.$reset',
|
||||
'${green}Running flutter_gallery integration test in --$buildMode using CanvasKit renderer.$reset',
|
||||
);
|
||||
final String testAppDirectory = path.join(
|
||||
flutterRoot,
|
||||
@ -505,8 +481,7 @@ class WebTestsSuite {
|
||||
<String>[
|
||||
...flutterTestArgs,
|
||||
'drive',
|
||||
if (canvasKit) '--dart-define=FLUTTER_WEB_USE_SKIA=true',
|
||||
if (!canvasKit) '--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=true',
|
||||
'--driver=test_driver/transitions_perf_e2e_test.dart',
|
||||
'--target=test_driver/transitions_perf_e2e.dart',
|
||||
'--browser-name=chrome',
|
||||
@ -734,7 +709,6 @@ class WebTestsSuite {
|
||||
'-v',
|
||||
'--platform=chrome',
|
||||
if (useWasm) '--wasm',
|
||||
// '--web-renderer=$webRenderer',
|
||||
if (webRenderer == 'skwasm') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[skwasm]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
@ -745,11 +719,6 @@ class WebTestsSuite {
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=true',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
if (webRenderer == 'html') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[html]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
'--dart-define=DART_HHH_BOT=$runningInDartHHHBot',
|
||||
...flutterTestArgs,
|
||||
...tests,
|
||||
|
@ -131,11 +131,9 @@ Future<void> main(List<String> args) async {
|
||||
'android_preview_tool_integration_tests': androidPreviewIntegrationToolTestsRunner,
|
||||
'android_java11_tool_integration_tests': androidJava11IntegrationToolTestsRunner,
|
||||
'tool_host_cross_arch_tests': _runToolHostCrossArchTests,
|
||||
// All the unit/widget tests run using `flutter test --platform=chrome --web-renderer=html`
|
||||
'web_tests': webTestsSuite.runWebHtmlUnitTests,
|
||||
// All the unit/widget tests run using `flutter test --platform=chrome --web-renderer=canvaskit`
|
||||
// All the unit/widget tests run using `flutter test --platform=chrome`
|
||||
'web_canvaskit_tests': webTestsSuite.runWebCanvasKitUnitTests,
|
||||
// All the unit/widget tests run using `flutter test --platform=chrome --wasm --web-renderer=skwasm`
|
||||
// All the unit/widget tests run using `flutter test --platform=chrome --wasm`
|
||||
'web_skwasm_tests': webTestsSuite.runWebSkwasmUnitTests,
|
||||
// All web integration tests
|
||||
'web_long_running_tests': webTestsSuite.webLongRunningTestsRunner,
|
||||
|
@ -22,12 +22,10 @@ Here's an example of running an integration test:
|
||||
flutter drive --target=test_driver/text_editing_integration.dart \
|
||||
-d web-server \
|
||||
--browser-name=chrome \
|
||||
--profile \
|
||||
--web-renderer=html
|
||||
--profile
|
||||
```
|
||||
|
||||
This example runs the test in profile mode (`--profile`) using the HTML
|
||||
renderer (`--web-renderer=html`).
|
||||
This example runs the test in profile mode (`--profile`).
|
||||
|
||||
More resources:
|
||||
|
||||
|
@ -1,18 +0,0 @@
|
||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
|
||||
void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
testWidgets('capabilities are set properly in HTML mode', (WidgetTester tester) async {
|
||||
await tester.pumpAndSettle();
|
||||
expect(isCanvasKit, false);
|
||||
expect(isSkwasm, false);
|
||||
expect(isSkiaWeb, false);
|
||||
});
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'package:integration_test/integration_test_driver.dart' as test;
|
||||
|
||||
Future<void> main() async => test.integrationDriver();
|
Loading…
Reference in New Issue
Block a user