Skip to content

Commit 1b70bb8

Browse files
pqCommit Queue
authored andcommitted
[CQ] [linter] unify test package dependency creation
As previously implemented, we were creating a new package config builder if we wanted a dependency on `package:reflective_test_loader` which would clobber any previously contributed dependencies. Beside being confusing, this means that you can't have tests that require `package:reflective_test_loader` and any other dependency (such as, for example, `package:meta`). This fixes that. Change-Id: Ia16b6c66f6a93a01f8dfa67c871877692414e03b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/412801 Auto-Submit: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Phil Quitslund <[email protected]>
1 parent b3ca203 commit 1b70bb8

File tree

3 files changed

+25
-23
lines changed

3 files changed

+25
-23
lines changed

pkg/linter/test/rule_test_support.dart

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,8 @@ class PubPackageResolutionTest extends _ContextResolutionTest {
177177

178178
bool get addMetaPackageDep => false;
179179

180+
bool get addReflectiveTestLoaderPackageDep => false;
181+
180182
bool get dumpAstOnFailures => true;
181183

182184
List<String> get experiments => experimentsForTests;
@@ -199,25 +201,6 @@ class PubPackageResolutionTest extends _ContextResolutionTest {
199201
@override
200202
List<String> get _collectionIncludedPaths => [workspaceRootPath];
201203

202-
void addReflectiveTestLoaderDep() {
203-
// TODO(pq): consider mopcing this into `writeTestPackageConfig`
204-
var testReflectiveLoaderPath = '$workspaceRootPath/test_reflective_loader';
205-
var packageConfigBuilder = PackageConfigFileBuilder();
206-
packageConfigBuilder.add(
207-
name: 'test_reflective_loader',
208-
rootPath: testReflectiveLoaderPath,
209-
);
210-
writeTestPackageConfig(packageConfigBuilder);
211-
newFile('$testReflectiveLoaderPath/lib/test_reflective_loader.dart', r'''
212-
library test_reflective_loader;
213-
214-
const Object reflectiveTest = _ReflectiveTest();
215-
class _ReflectiveTest {
216-
const _ReflectiveTest();
217-
}
218-
''');
219-
}
220-
221204
/// Asserts that the number of diagnostics reported in [content] matches the
222205
/// number of [expectedDiagnostics] and that they have the expected error
223206
/// descriptions and locations.
@@ -349,6 +332,23 @@ class _ReflectiveTest {
349332
configCopy.add(name: 'meta', rootPath: metaPath);
350333
}
351334

335+
if (addReflectiveTestLoaderPackageDep) {
336+
var testReflectiveLoaderPath =
337+
'$workspaceRootPath/test_reflective_loader';
338+
newFile('$testReflectiveLoaderPath/lib/test_reflective_loader.dart', r'''
339+
library test_reflective_loader;
340+
341+
const Object reflectiveTest = _ReflectiveTest();
342+
class _ReflectiveTest {
343+
const _ReflectiveTest();
344+
}
345+
''');
346+
configCopy.add(
347+
name: 'test_reflective_loader',
348+
rootPath: testReflectiveLoaderPath,
349+
);
350+
}
351+
352352
var path = '$testPackageRootPath/.dart_tool/package_config.json';
353353
writePackageConfig(path, configCopy);
354354
}

pkg/linter/test/rules/strict_top_level_inference_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ void main() {
1515

1616
@reflectiveTest
1717
class StrictTopLevelInferenceTest extends LintRuleTest {
18+
@override
19+
bool get addReflectiveTestLoaderPackageDep => true;
20+
1821
@override
1922
List<ErrorCode> get ignoredErrorCodes => [
2023
WarningCode.UNUSED_ELEMENT,
@@ -684,7 +687,6 @@ void f() {
684687
}
685688

686689
test_reflectiveTest_nonTest() async {
687-
addReflectiveTestLoaderDep();
688690
await assertDiagnostics(
689691
r'''
690692
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -699,7 +701,6 @@ class ReflectiveTest {
699701
}
700702

701703
test_reflectiveTest_soloTest() async {
702-
addReflectiveTestLoaderDep();
703704
await assertNoDiagnostics(r'''
704705
import 'package:test_reflective_loader/test_reflective_loader.dart';
705706
@@ -711,7 +712,6 @@ class ReflectiveTest {
711712
}
712713

713714
test_reflectiveTest_test() async {
714-
addReflectiveTestLoaderDep();
715715
await assertNoDiagnostics(r'''
716716
import 'package:test_reflective_loader/test_reflective_loader.dart';
717717

pkg/linter/test/rules/unreachable_from_main_test.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ class UnreachableFromMainTest extends LintRuleTest {
1717
@override
1818
bool get addMetaPackageDep => true;
1919

20+
@override
21+
bool get addReflectiveTestLoaderPackageDep => true;
22+
2023
@override
2124
String get lintRule => LintNames.unreachable_from_main;
2225

@@ -798,7 +801,6 @@ class C {
798801
}
799802

800803
test_constructor_reachableViaTestReflectiveLoader() async {
801-
addReflectiveTestLoaderDep();
802804
await assertNoDiagnostics(r'''
803805
import 'package:test_reflective_loader/test_reflective_loader.dart';
804806

0 commit comments

Comments
 (0)