Unverified Commit 87fe3fe0 authored by Christopher Fujino's avatar Christopher Fujino Committed by GitHub

rename two unit tests that were not actually being run on CI (#98299)

parent 1ae5dd19
...@@ -88,6 +88,9 @@ Future<void> run(List<String> arguments) async { ...@@ -88,6 +88,9 @@ Future<void> run(List<String> arguments) async {
exitWithError(<String>['The analyze.dart script must be run with --enable-asserts.']); exitWithError(<String>['The analyze.dart script must be run with --enable-asserts.']);
} }
print('$clock All tool test files end in _test.dart...');
await verifyToolTestsEndInTestDart(flutterRoot);
print('$clock No sync*/async*'); print('$clock No sync*/async*');
await verifyNoSyncAsyncStar(flutterPackages); await verifyNoSyncAsyncStar(flutterPackages);
await verifyNoSyncAsyncStar(flutterExamples, minimumMatches: 200); await verifyNoSyncAsyncStar(flutterExamples, minimumMatches: 200);
...@@ -197,6 +200,53 @@ Future<void> run(List<String> arguments) async { ...@@ -197,6 +200,53 @@ Future<void> run(List<String> arguments) async {
// TESTS // TESTS
/// Verify tool test files end in `_test.dart`.
///
/// The test runner will only recognize files ending in `_test.dart` as tests to
/// be run: https://github.com/dart-lang/test/tree/master/pkgs/test#running-tests
Future<void> verifyToolTestsEndInTestDart(String workingDirectory) async {
final String toolsTestPath = path.join(
workingDirectory,
'packages',
'flutter_tools',
'test',
);
final List<String> violations = <String>[];
// detect files that contains calls to test(), testUsingContext(), and testWithoutContext()
final RegExp callsTestFunctionPattern = RegExp(r'(test\(.*\)|testUsingContext\(.*\)|testWithoutContext\(.*\))');
await for (final File file in _allFiles(toolsTestPath, 'dart', minimumMatches: 300)) {
final bool isValidTestFile = file.path.endsWith('_test.dart');
if (isValidTestFile) {
continue;
}
final bool isTestData = file.path.contains(r'test_data');
if (isTestData) {
continue;
}
final bool isInTestShard = file.path.contains(r'.shard/');
if (!isInTestShard) {
continue;
}
final bool callsTestFunction = file.readAsStringSync().contains(callsTestFunctionPattern);
if (!callsTestFunction) {
continue;
}
violations.add(file.path);
}
if (violations.isNotEmpty) {
exitWithError(<String>[
'${bold}Found flutter_tools tests that do not end in `_test.dart`; these will not be run by the test runner$reset',
...violations,
]);
}
}
Future<void> verifyNoSyncAsyncStar(String workingDirectory, {int minimumMatches = 2000 }) async { Future<void> verifyNoSyncAsyncStar(String workingDirectory, {int minimumMatches = 2000 }) async {
final RegExp syncPattern = RegExp(r'\s*?a?sync\*\s*?{'); final RegExp syncPattern = RegExp(r'\s*?a?sync\*\s*?{');
final RegExp ignorePattern = RegExp(r'^\s*?// The following uses a?sync\* because:? '); final RegExp ignorePattern = RegExp(r'^\s*?// The following uses a?sync\* because:? ');
......
// 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.
// @dart = 2.8
import 'package:flutter_tools/src/doctor.dart';
import 'package:flutter_tools/src/features.dart';
import 'package:flutter_tools/src/linux/linux_doctor.dart';
import 'package:flutter_tools/src/web/web_validator.dart';
import 'package:flutter_tools/src/windows/visual_studio_validator.dart';
import '../src/common.dart';
import '../src/fakes.dart';
import '../src/testbed.dart';
void main() {
Testbed testbed;
setUp(() {
testbed = Testbed();
});
test('doctor validators includes desktop when features are enabled', () => testbed.run(() {
expect(DoctorValidatorsProvider.defaultInstance.validators,
contains(isA<LinuxDoctorValidator>()));
expect(DoctorValidatorsProvider.defaultInstance.validators,
contains(isA<VisualStudioValidator>()));
}, overrides: <Type, Generator>{
FeatureFlags: () => TestFeatureFlags(
isLinuxEnabled: true,
isWindowsEnabled: true,
),
}));
test('doctor validators does not include desktop when features are enabled', () => testbed.run(() {
expect(DoctorValidatorsProvider.defaultInstance.validators,
isNot(contains(isA<LinuxDoctorValidator>())));
expect(DoctorValidatorsProvider.defaultInstance.validators,
isNot(contains(isA<VisualStudioValidator>())));
}, overrides: <Type, Generator>{
FeatureFlags: () => TestFeatureFlags(),
}));
test('doctor validators includes web when feature is enabled', () => testbed.run(() {
expect(DoctorValidatorsProvider.defaultInstance.validators,
contains(isA<ChromiumValidator>()));
}, overrides: <Type, Generator>{
FeatureFlags: () => TestFeatureFlags(
isWebEnabled: true,
),
}));
test('doctor validators does not include web when feature is disabled', () => testbed.run(() {
expect(DoctorValidatorsProvider.defaultInstance.validators,
isNot(contains(isA<ChromiumValidator>())));
}, overrides: <Type, Generator>{
FeatureFlags: () => TestFeatureFlags(),
}));
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment