Start using File(s) instead of paths in a few places in tests.

Change-Id: Ib2daad4160377da240fa400655c39030f3fcf5ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252404
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart
index b484abe..a35c8e2 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_caching_test.dart
@@ -28,10 +28,8 @@
   @override
   bool get retainDataForTesting => true;
 
-  String get testFilePathPlatform => convertPath(testFilePath);
-
   List<Set<String>> get _linkedCycles {
-    var driver = driverFor(testFilePath);
+    var driver = driverFor(testFile.path);
     return driver.testView!.libraryContext.linkedCycles;
   }
 
@@ -55,7 +53,7 @@
       ),
     );
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 dynamic a = 0;
 int b = a;
 ''');
@@ -84,8 +82,8 @@
 }
 ''');
 
-    var analysisDriver = driverFor(testFilePathPlatform);
-    analysisDriver.changeFile(testFilePathPlatform);
+    var analysisDriver = driverFor(testFile.path);
+    analysisDriver.changeFile(testFile.path);
     await analysisDriver.applyPendingFileChanges();
 
     await resolveTestCode(r'''
@@ -103,8 +101,8 @@
 }
 ''');
 
-    var analysisDriver = driverFor(testFilePathPlatform);
-    analysisDriver.changeFile(testFilePathPlatform);
+    var analysisDriver = driverFor(testFile.path);
+    analysisDriver.changeFile(testFile.path);
     await analysisDriver.applyPendingFileChanges();
 
     await resolveTestCode(r'''
@@ -122,8 +120,8 @@
 }
 ''');
 
-    var analysisDriver = driverFor(testFilePathPlatform);
-    analysisDriver.changeFile(testFilePathPlatform);
+    var analysisDriver = driverFor(testFile.path);
+    analysisDriver.changeFile(testFile.path);
     await analysisDriver.applyPendingFileChanges();
 
     await resolveTestCode(r'''
@@ -137,7 +135,7 @@
   test_change_field_staticFinal_hasConstConstructor_changeInitializer() async {
     useEmptyByteStore();
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 class A {
   static const a = 0;
   static const b = 1;
@@ -150,14 +148,14 @@
     assertType(findElement.field('f').type, 'Set<int>');
 
     // The summary for the library was linked.
-    _assertContainsLinkedCycle({testFilePath}, andClear: true);
+    _assertContainsLinkedCycle({testFile}, andClear: true);
 
     // Dispose the collection, with its driver.
     // The next analysis will recreate it.
     // We will reuse the byte store, so can reuse summaries.
     await disposeAnalysisContextCollection();
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 class A {
   static const a = 0;
   static const b = 1;
@@ -178,7 +176,7 @@
   test_change_functionBody() async {
     useEmptyByteStore();
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 void f() {
   print(0);
 }
@@ -188,14 +186,14 @@
     expect(findNode.integerLiteral('0'), isNotNull);
 
     // The summary for the library was linked.
-    _assertContainsLinkedCycle({testFilePath}, andClear: true);
+    _assertContainsLinkedCycle({testFile}, andClear: true);
 
     // Dispose the collection, with its driver.
     // The next analysis will recreate it.
     // We will reuse the byte store, so can reuse summaries.
     await disposeAnalysisContextCollection();
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 void f() {
   print(1);
 }
@@ -216,7 +214,7 @@
 import 'a.dart';
 ''');
 
-    var driver = driverFor(testFilePath);
+    var driver = driverFor(testFile.path);
 
     // Link both libraries, keep them.
     await driver.getLibraryByUri('package:test/a.dart');
@@ -283,7 +281,7 @@
       ),
     );
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 // ignore:unused_import
 import 'package:aaa/a.dart';
 ''');
@@ -295,7 +293,7 @@
     );
 
     // The summary for the library was linked.
-    _assertContainsLinkedCycle({testFilePath}, andClear: true);
+    _assertContainsLinkedCycle({testFile}, andClear: true);
 
     // We will recreate it with new pubspec.yaml content.
     // But we will reuse the byte store, so can reuse summaries.
@@ -326,7 +324,7 @@
       AnalysisOptionsFileConfig(lints: []),
     );
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 void f() {
   ![0].isEmpty;
 }
@@ -337,7 +335,7 @@
     assertErrorsInResult([]);
 
     // The summary for the library was linked.
-    _assertContainsLinkedCycle({testFilePath}, andClear: true);
+    _assertContainsLinkedCycle({testFile}, andClear: true);
 
     // We will recreate it with new analysis options.
     // But we will reuse the byte store, so can reuse summaries.
@@ -391,8 +389,8 @@
       expect(libraryB.exportNamespace.get('MacroB'), isNull);
     }
 
-    _assertContainsLinkedCycle({a.path});
-    _assertContainsLinkedCycle({b.path}, andClear: true);
+    _assertContainsLinkedCycle({a});
+    _assertContainsLinkedCycle({b}, andClear: true);
 
     // The macro will generate `MacroB`.
     _newFileWithFixedNameMacro('MacroB');
@@ -412,8 +410,8 @@
       expect(libraryB.exportNamespace.get('MacroB'), isNotNull);
     }
 
-    _assertContainsLinkedCycle({a.path});
-    _assertContainsLinkedCycle({b.path}, andClear: true);
+    _assertContainsLinkedCycle({a});
+    _assertContainsLinkedCycle({b}, andClear: true);
   }
 
   test_macro_reanalyze_errors_changeCodeUsedByMacro_importedLibrary() async {
@@ -619,9 +617,9 @@
     ]);
   }
 
-  void _assertContainsLinkedCycle(Set<String> expectedPosix,
+  void _assertContainsLinkedCycle(Set<File> expectedFiles,
       {bool andClear = false}) {
-    var expected = expectedPosix.map(convertPath).toSet();
+    var expected = expectedFiles.map((file) => file.path).toSet();
     expect(_linkedCycles, contains(unorderedEquals(expected)));
     if (andClear) {
       _linkedCycles.clear();
@@ -647,10 +645,9 @@
   /// But this method is used to check returning errors from the cache, or
   /// recomputing when the cache key is expected to be different.
   Future<List<AnalysisError>> _computeTestFileErrors() async {
-    var testFilePathConverted = convertPath(testFilePath);
-    var errorsResult = await contextFor(testFilePathConverted)
+    var errorsResult = await contextFor(testFile.path)
         .currentSession
-        .getErrors(testFilePathConverted) as ErrorsResult;
+        .getErrors(testFile.path) as ErrorsResult;
     return errorsResult.errors;
   }
 
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
index e2c62ee..cca27af 100644
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
@@ -47,7 +47,7 @@
     // This generated file should be used instead of the writable.
     newFile(generatedPath, '');
 
-    var analysisDriver = driverFor(convertPath(testFilePath));
+    var analysisDriver = driverFor(testFile.path);
 
     var fsState = analysisDriver.fsState;
 
@@ -75,7 +75,7 @@
     // This generated file should be used instead of the writable.
     newFile(generatedPath, '');
 
-    var analysisDriver = driverFor(convertPath(testFilePath));
+    var analysisDriver = driverFor(testFile.path);
 
     var fsState = analysisDriver.fsState;
 
diff --git a/pkg/analyzer/test/src/dart/analysis/resolve_for_completion_test.dart b/pkg/analyzer/test/src/dart/analysis/resolve_for_completion_test.dart
index ac40815..46a5a21 100644
--- a/pkg/analyzer/test/src/dart/analysis/resolve_for_completion_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/resolve_for_completion_test.dart
@@ -19,11 +19,9 @@
 @reflectiveTest
 class ResolveForCompletionTest extends PubPackageResolutionTest {
   AnalysisDriver get testDriver {
-    return driverFor(testFilePathPlatform);
+    return driverFor(testFile.path);
   }
 
-  String get testFilePathPlatform => convertPath(testFilePath);
-
   test_class__fieldDeclaration_type_namedType_name() async {
     var result = await _resolveTestCode(r'''
 class A {
@@ -489,10 +487,10 @@
   }
 
   test_processPendingChanges() async {
-    newFile(testFilePath, 'class A {}');
+    addTestFile('class A {}');
 
     // Read the file.
-    testDriver.getFileSync(testFilePathPlatform);
+    testDriver.getFileSync(testFile.path);
 
     // Should call `changeFile()`, and the driver must re-read the file.
     var result = await _resolveTestCode(r'''
@@ -598,7 +596,7 @@
   Future<ResolvedForCompletionResultImpl> _resolveTestCode(
     String content,
   ) async {
-    var path = testFilePathPlatform;
+    var path = testFile.path;
     var offset = _newFileWithOffset(path, content);
 
     testDriver.changeFile(path);
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index c95f1a0..e902f74 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -64,7 +64,7 @@
 
 @reflectiveTest
 class SearchTest extends PubPackageResolutionTest {
-  AnalysisDriver get driver => driverFor(testFilePath);
+  AnalysisDriver get driver => driverFor(testFile.path);
 
   CompilationUnitElement get resultUnitElement => result.unit.declaredElement!;
 
@@ -1118,7 +1118,7 @@
         ..add(name: 'aaa', rootPath: aaaPackageRootPath),
     );
 
-    pathForContextSelection = testFilePath;
+    pathForContextSelection = testFile.path;
 
     await resolveFileCode(aaaFilePath, '''
 import 'dart:math' show max, pi, Random hide min;
@@ -1322,7 +1322,7 @@
     newFile(partPathA, codeA);
     newFile(partPathB, codeB);
 
-    pathForContextSelection = testFilePath;
+    pathForContextSelection = testFile.path;
 
     await resolveFileCode(libPath, '''
 library lib;
@@ -1395,7 +1395,7 @@
         ..add(name: 'aaa', rootPath: aaaPackageRootPath),
     );
 
-    pathForContextSelection = testFilePath;
+    pathForContextSelection = testFile.path;
 
     await resolveFileCode(testPath, '''
 main() {
@@ -1865,7 +1865,7 @@
         ..add(name: 'aaa', rootPath: aaaPackageRootPath),
     );
 
-    pathForContextSelection = testFilePath;
+    pathForContextSelection = testFile.path;
 
     var libPath = convertPath('$aaaPackageRootPath/lib/a.dart');
     var partPath = convertPath('$aaaPackageRootPath/lib/my_part.dart');
@@ -1978,7 +1978,7 @@
         ..add(name: 'aaa', rootPath: aaaPackageRootPath),
     );
 
-    pathForContextSelection = testFilePath;
+    pathForContextSelection = this.testFile.path;
 
     String testCode = '''
 library lib;
@@ -2408,7 +2408,7 @@
     var aUri = 'package:aaa/a.dart';
     var bUri = 'package:bbb/b.dart';
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 import 'package:aaa/a.dart';
 
 class T1 extends A {
@@ -2476,7 +2476,7 @@
         ..add(name: 'bbb', rootPath: bbbPackageRootPath),
     );
 
-    newFile(testFilePath, 'class T implements List {}');
+    addTestFile('class T implements List {}');
     newFile(aaaFilePath, 'class A implements List {}');
     newFile(bbbFilePath, 'class B implements List {}');
     newFile(cccFilePath, 'class C implements List {}');
@@ -2496,7 +2496,7 @@
       expect(results, not ? isNot(matcher) : matcher);
     }
 
-    assertHasResult(convertPath(testFilePath), 'T');
+    assertHasResult(testFile.path, 'T');
     assertHasResult(aaaFilePath, 'A');
     assertHasResult(bbbFilePath, 'B');
     assertHasResult(cccFilePath, 'C', not: true);
diff --git a/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart b/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart
index f03c5fa..8af5849 100644
--- a/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart
@@ -23,7 +23,7 @@
   @override
   void setUp() {
     super.setUp();
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     helper = AnalysisSessionHelper(session);
   }
 
diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart
index d0708d1..4a1a014 100644
--- a/pkg/analyzer/test/src/dart/analysis/session_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart
@@ -183,9 +183,9 @@
   }
 
   test_getErrors() async {
-    var test = newFile(testFilePath, 'class C {');
+    var test = newFile(testFile.path, 'class C {');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var errorsResult = await session.getErrorsValid(test.path);
     expect(errorsResult.session, session);
     expect(errorsResult.path, test.path);
@@ -193,7 +193,7 @@
   }
 
   test_getErrors_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -203,13 +203,13 @@
   }
 
   test_getErrors_invalidPath_notAbsolute() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var errorsResult = await session.getErrors('not_absolute.dart');
     expect(errorsResult, isA<InvalidPathResult>());
   }
 
   test_getFile_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -219,7 +219,7 @@
   }
 
   test_getFile_invalidPath_notAbsolute() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var errorsResult = session.getFile('not_absolute.dart');
     expect(errorsResult, isA<InvalidPathResult>());
   }
@@ -227,7 +227,7 @@
   test_getFile_library() async {
     var a = newFile('$testPackageLibPath/a.dart', '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var file = session.getFileValid(a.path);
     expect(file.path, a.path);
     expect(file.uri.toString(), 'package:test/a.dart');
@@ -237,7 +237,7 @@
   test_getFile_part() async {
     var a = newFile('$testPackageLibPath/a.dart', 'part of lib;');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var file = session.getFileValid(a.path);
     expect(file.path, a.path);
     expect(file.uri.toString(), 'package:test/a.dart');
@@ -245,12 +245,12 @@
   }
 
   test_getLibraryByUri() async {
-    newFile(testFilePath, r'''
+    newFile(testFile.path, r'''
 class A {}
 class B {}
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var result = await session.getLibraryByUriValid('package:test/test.dart');
     var library = result.element;
     expect(library.getType('A'), isNotNull);
@@ -259,7 +259,7 @@
   }
 
   test_getLibraryByUri_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -269,27 +269,27 @@
   }
 
   test_getLibraryByUri_notLibrary_augmentation() async {
-    newFile(testFilePath, r'''
+    newFile(testFile.path, r'''
 library augment 'a.dart';
 ''');
 
-    final session = contextFor(testFilePath).currentSession;
+    final session = contextFor(testFile.path).currentSession;
     final result = await session.getLibraryByUri('package:test/test.dart');
     expect(result, isA<NotLibraryButAugmentationResult>());
   }
 
   test_getLibraryByUri_notLibrary_part() async {
-    newFile(testFilePath, r'''
+    newFile(testFile.path, r'''
 part of 'a.dart';
 ''');
 
-    final session = contextFor(testFilePath).currentSession;
+    final session = contextFor(testFile.path).currentSession;
     final result = await session.getLibraryByUri('package:test/test.dart');
     expect(result, isA<NotLibraryButPartResult>());
   }
 
   test_getLibraryByUri_unresolvedUri() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var result = await session.getLibraryByUri('package:foo/foo.dart');
     expect(result, isA<CannotResolveUriResult>());
   }
@@ -300,7 +300,7 @@
 class B {}
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var parsedLibrary = session.getParsedLibraryValid(test.path);
     expect(parsedLibrary.session, session);
 
@@ -315,12 +315,12 @@
   }
 
   test_getParsedLibrary_getElementDeclaration_class() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 class A {}
 class B {}
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var libraryResult = await session.getLibraryByUriValid(
       'package:test/test.dart',
     );
@@ -335,9 +335,9 @@
   }
 
   test_getParsedLibrary_getElementDeclaration_notThisLibrary() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var resolvedUnit =
         await session.getResolvedUnit(test.path) as ResolvedUnitResult;
     var typeProvider = resolvedUnit.typeProvider;
@@ -351,11 +351,11 @@
   }
 
   test_getParsedLibrary_getElementDeclaration_synthetic() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 int foo = 0;
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var parsedLibrary = session.getParsedLibraryValid(test.path);
 
     var unitResult = await session.getUnitElementValid(test.path);
@@ -376,7 +376,7 @@
   }
 
   test_getParsedLibrary_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -386,13 +386,13 @@
   }
 
   test_getParsedLibrary_invalidPartUri() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 part 'a.dart';
 part ':[invalid uri].dart';
 part 'c.dart';
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var parsedLibrary = session.getParsedLibraryValid(test.path);
 
     expect(parsedLibrary.units, hasLength(1));
@@ -403,23 +403,23 @@
   }
 
   test_getParsedLibrary_invalidPath_notAbsolute() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var result = session.getParsedLibrary('not_absolute.dart');
     expect(result, isA<InvalidPathResult>());
   }
 
   test_getParsedLibrary_notLibrary() async {
-    var test = newFile(testFilePath, 'part of "a.dart";');
-    var session = contextFor(testFilePath).currentSession;
+    var test = newFile(testFile.path, 'part of "a.dart";');
+    var session = contextFor(testFile.path).currentSession;
     expect(session.getParsedLibrary(test.path), isA<NotLibraryButPartResult>());
   }
 
   test_getParsedLibrary_notLibrary_augmentation() async {
-    newFile(testFilePath, r'''
+    newFile(testFile.path, r'''
 library augment 'a.dart';
 ''');
 
-    final session = contextFor(testFilePath).currentSession;
+    final session = contextFor(testFile.path).currentSession;
     final result = session.getParsedLibrary(testFile.path);
     expect(result, isA<NotLibraryButAugmentationResult>());
   }
@@ -451,7 +451,7 @@
     var b = newFile('$testPackageLibPath/b.dart', bContent);
     var c = newFile('$testPackageLibPath/c.dart', cContent);
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var parsedLibrary = session.getParsedLibraryValid(a.path);
     expect(parsedLibrary.units, hasLength(3));
 
@@ -478,9 +478,9 @@
   }
 
   test_getParsedLibraryByElement() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var libraryResult = await session.getLibraryByUriValid(
       'package:test/test.dart',
     );
@@ -499,9 +499,9 @@
   }
 
   test_getParsedLibraryByElement_differentSession() async {
-    newFile(testFilePath, '');
+    newFile(testFile.path, '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var libraryResult = await session.getLibraryByUriValid(
       'package:test/test.dart',
     );
@@ -514,12 +514,12 @@
   }
 
   test_getParsedUnit() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 class A {}
 class B {}
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var unitResult = session.getParsedUnitValid(test.path);
     expect(unitResult.session, session);
     expect(unitResult.path, test.path);
@@ -528,7 +528,7 @@
   }
 
   test_getParsedUnit_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -538,7 +538,7 @@
   }
 
   test_getParsedUnit_invalidPath_notAbsolute() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var result = session.getParsedUnit('not_absolute.dart');
     expect(result, isA<InvalidPathResult>());
   }
@@ -559,7 +559,7 @@
 ''';
     var b = newFile('$testPackageLibPath/b.dart', bContent);
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var resolvedLibrary = await session.getResolvedLibraryValid(a.path);
     expect(resolvedLibrary.session, session);
 
@@ -606,9 +606,9 @@
   }
 
   test_getResolvedLibrary_getElementDeclaration_notThisLibrary() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var resolvedLibrary = await session.getResolvedLibraryValid(test.path);
 
     expect(() {
@@ -618,11 +618,11 @@
   }
 
   test_getResolvedLibrary_getElementDeclaration_synthetic() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 int foo = 0;
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var resolvedLibrary = await session.getResolvedLibraryValid(test.path);
     var unitElement = resolvedLibrary.element.definingCompilationUnit;
 
@@ -643,7 +643,7 @@
   }
 
   test_getResolvedLibrary_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -653,13 +653,13 @@
   }
 
   test_getResolvedLibrary_invalidPartUri() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 part 'a.dart';
 part ':[invalid uri].dart';
 part 'c.dart';
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var resolvedLibrary = await session.getResolvedLibraryValid(test.path);
 
     expect(resolvedLibrary.units, hasLength(1));
@@ -670,33 +670,33 @@
   }
 
   test_getResolvedLibrary_invalidPath_notAbsolute() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var result = await session.getResolvedLibrary('not_absolute.dart');
     expect(result, isA<InvalidPathResult>());
   }
 
   test_getResolvedLibrary_notLibrary_augmentation() async {
-    newFile(testFilePath, r'''
+    newFile(testFile.path, r'''
 library augment of 'a.dart';
 ''');
 
-    final session = contextFor(testFilePath).currentSession;
+    final session = contextFor(testFile.path).currentSession;
     final result = await session.getResolvedLibrary(testFile.path);
     expect(result, isA<NotLibraryButAugmentationResult>());
   }
 
   test_getResolvedLibrary_notLibrary_part() async {
-    var test = newFile(testFilePath, 'part of "a.dart";');
+    var test = newFile(testFile.path, 'part of "a.dart";');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var result = await session.getResolvedLibrary(test.path);
     expect(result, isA<NotLibraryButPartResult>());
   }
 
   test_getResolvedLibraryByElement() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var libraryResult = await session.getLibraryByUriValid(
       'package:test/test.dart',
     );
@@ -711,9 +711,9 @@
   }
 
   test_getResolvedLibraryByElement_differentSession() async {
-    newFile(testFilePath, '');
+    newFile(testFile.path, '');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var libraryResult = await session.getLibraryByUriValid(
       'package:test/test.dart',
     );
@@ -726,12 +726,12 @@
   }
 
   test_getResolvedUnit() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 class A {}
 class B {}
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var unitResult =
         await session.getResolvedUnit(test.path) as ResolvedUnitResult;
     expect(unitResult.session, session);
@@ -743,7 +743,7 @@
   }
 
   test_getResolvedUnit_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -753,12 +753,12 @@
   }
 
   test_getUnitElement() async {
-    var test = newFile(testFilePath, r'''
+    var test = newFile(testFile.path, r'''
 class A {}
 class B {}
 ''');
 
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     var unitResult = await session.getUnitElementValid(test.path);
     expect(unitResult.session, session);
     expect(unitResult.path, test.path);
@@ -767,7 +767,7 @@
   }
 
   test_getUnitElement_inconsistent() async {
-    var test = newFile(testFilePath, '');
+    var test = newFile(testFile.path, '');
     var session = contextFor(test.path).currentSession;
     driverFor(test.path).changeFile(test.path);
     expect(
@@ -777,7 +777,7 @@
   }
 
   test_resourceProvider() async {
-    var session = contextFor(testFilePath).currentSession;
+    var session = contextFor(testFile.path).currentSession;
     expect(session.resourceProvider, resourceProvider);
   }
 }
diff --git a/pkg/analyzer/test/src/dart/micro/file_resolution.dart b/pkg/analyzer/test/src/dart/micro/file_resolution.dart
index a500588..f02a94e 100644
--- a/pkg/analyzer/test/src/dart/micro/file_resolution.dart
+++ b/pkg/analyzer/test/src/dart/micro/file_resolution.dart
@@ -28,8 +28,6 @@
 
 /// [FileResolver] based implementation of [ResolutionTest].
 class FileResolutionTest with ResourceProviderMixin, ResolutionTest {
-  static final String _testFile = '/workspace/dart/test/lib/test.dart';
-
   final MemoryByteStore byteStore = MemoryByteStore();
 
   final FileResolverTestData testData = FileResolverTestData();
@@ -49,10 +47,8 @@
 
   Folder get sdkRoot => newFolder('/sdk');
 
-  File get testFile => getFile(testFilePath);
-
   @override
-  String get testFilePath => _testFile;
+  File get testFile => getFile('$testPackageLibPath/test.dart');
 
   String get testPackageLibPath => '$testPackageRootPath/lib';
 
@@ -62,7 +58,7 @@
 
   @override
   void addTestFile(String content) {
-    newFile(_testFile, content);
+    newFile(testFile.path, content);
   }
 
   void assertStateString(
@@ -94,7 +90,7 @@
   void createFileResolver() {
     var workspace = BazelWorkspace.find(
       resourceProvider,
-      convertPath(_testFile),
+      testFile.path,
     )!;
 
     fileResolver = FileResolver(
@@ -114,8 +110,7 @@
   }
 
   Future<ErrorsResult> getTestErrors() async {
-    var path = convertPath(_testFile);
-    return fileResolver.getErrors2(path: path);
+    return fileResolver.getErrors2(path: testFile.path);
   }
 
   @override
@@ -132,8 +127,7 @@
 
   @override
   Future<void> resolveTestFile() async {
-    var path = convertPath(_testFile);
-    result = await resolveFile(path);
+    result = await resolveFile(testFile.path);
     findNode = FindNode(result.content, result.unit);
     findElement = FindElement(result.unit);
   }
diff --git a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart
index cdf927c..56b63a6 100644
--- a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart
+++ b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart
@@ -1316,7 +1316,7 @@
   }
 
   test_getErrors_reuse() async {
-    newFile(testFilePath, 'var a = b;');
+    addTestFile('var a = b;');
 
     // No resolved files yet.
     _assertResolvedFiles([]);
@@ -1330,7 +1330,7 @@
     _assertResolvedFiles([]);
 
     // Change the file, will be resolved again.
-    newFile(testFilePath, 'var a = c;');
+    addTestFile('var a = c;');
     fileResolver.changeFiles([testFile.path]);
     expect((await getTestErrors()).errors, hasLength(1));
     _assertResolvedFiles([testFile]);
@@ -1341,7 +1341,7 @@
 var a = 0;
 ''');
 
-    newFile(testFilePath, r'''
+    addTestFile(r'''
 import 'a.dart';
 var b = a.foo;
 ''');
@@ -2369,7 +2369,7 @@
   }
 
   test_resolveFile_cache() async {
-    newFile(testFilePath, 'var a = 0;');
+    addTestFile('var a = 0;');
 
     // No resolved files yet.
     _assertResolvedFiles([]);
diff --git a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
index ef1870b..5165f8a 100644
--- a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
@@ -97,7 +97,7 @@
   String get myPackageRootPath => '$workspaceRootPath/dart/my';
 
   @override
-  String get testFilePath => '$myPackageLibPath/my.dart';
+  File get testFile => getFile('$myPackageLibPath/my.dart');
 
   String get workspaceRootPath => '/workspace';
 
@@ -115,7 +115,7 @@
   @override
   void verifyCreatedCollection() {
     super.verifyCreatedCollection();
-    assertBazelWorkspaceFor(testFilePath);
+    assertBazelWorkspaceFor(testFile);
   }
 }
 
@@ -157,13 +157,13 @@
 
   Folder get sdkRoot => newFolder('/sdk');
 
-  void assertBasicWorkspaceFor(String path) {
-    var workspace = contextFor(path).contextRoot.workspace;
+  void assertBasicWorkspaceFor(File file) {
+    var workspace = contextFor(file.path).contextRoot.workspace;
     expect(workspace, TypeMatcher<BasicWorkspace>());
   }
 
-  void assertBazelWorkspaceFor(String path) {
-    var workspace = contextFor(path).contextRoot.workspace;
+  void assertBazelWorkspaceFor(File file) {
+    var workspace = contextFor(file.path).contextRoot.workspace;
     expect(workspace, TypeMatcher<BazelWorkspace>());
   }
 
@@ -193,13 +193,13 @@
     expect(actual, expected);
   }
 
-  void assertGnWorkspaceFor(String path) {
-    var workspace = contextFor(path).contextRoot.workspace;
+  void assertGnWorkspaceFor(File file) {
+    var workspace = contextFor(file.path).contextRoot.workspace;
     expect(workspace, TypeMatcher<GnWorkspace>());
   }
 
-  void assertPackageBuildWorkspaceFor(String path) {
-    var workspace = contextFor(path).contextRoot.workspace;
+  void assertPackageBuildWorkspaceFor(File file) {
+    var workspace = contextFor(file.path).contextRoot.workspace;
     expect(workspace, TypeMatcher<PackageBuildWorkspace>());
   }
 
@@ -332,10 +332,8 @@
   /// The path that is not in [workspaceRootPath], contains external packages.
   String get packagesRootPath => '/packages';
 
-  File get testFile => getFile(testFilePath);
-
   @override
-  String get testFilePath => '$testPackageLibPath/test.dart';
+  File get testFile => getFile('$testPackageLibPath/test.dart');
 
   /// The language version to use by default for `package:test`.
   String? get testPackageLanguageVersion => null;
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index e7a9c79..e101a50 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -11,6 +11,7 @@
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/dart/element/type_provider.dart';
 import 'package:analyzer/error/error.dart';
+import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/dart/ast/extensions.dart';
 import 'package:analyzer/src/dart/constant/value.dart';
 import 'package:analyzer/src/dart/element/element.dart';
@@ -78,7 +79,7 @@
 
   InterfaceType get stringType => typeProvider.stringType;
 
-  String get testFilePath => '/test/lib/test.dart';
+  File get testFile;
 
   TypeProvider get typeProvider => result.typeProvider;
 
@@ -87,7 +88,7 @@
   VoidType get voidType => VoidTypeImpl.instance;
 
   void addTestFile(String content) {
-    newFile(testFilePath, content);
+    newFile(testFile.path, content);
   }
 
   /// Assert that the given [identifier] is a reference to a class, in the
@@ -762,7 +763,7 @@
   }
 
   Future<void> resolveTestFile() {
-    return resolveFile2(testFilePath);
+    return resolveFile2(testFile.path);
   }
 
   /// Choose the type display string, depending on whether the [result] is
diff --git a/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart b/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart
index a2dee38..61e6d02 100644
--- a/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart
@@ -2,6 +2,7 @@
 // for details. 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:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/error/codes.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -324,7 +325,7 @@
   @override
   void verifyCreatedCollection() {
     super.verifyCreatedCollection();
-    assertBasicWorkspaceFor(testFilePath);
+    assertBasicWorkspaceFor(testFile);
   }
 }
 
@@ -352,7 +353,7 @@
 class A {}
 ''');
 
-    assertBazelWorkspaceFor(testFilePath);
+    assertBazelWorkspaceFor(testFile);
 
     await assertErrorsInCode(r'''
 import 'package:aaa/a.dart';
@@ -374,7 +375,7 @@
   String get myPackageRootPath => '$workspaceRootPath/my';
 
   @override
-  String get testFilePath => '$myPackageLibPath/my.dart';
+  File get testFile => getFile('$myPackageLibPath/my.dart');
 
   String get workspaceRootPath => '/workspace';
 
@@ -435,7 +436,7 @@
   @override
   void verifyCreatedCollection() {
     super.verifyCreatedCollection();
-    assertGnWorkspaceFor(testFilePath);
+    assertGnWorkspaceFor(testFile);
   }
 
   void _writeWorkspacePackagesFile(Map<String, String> nameToLibPath) {
@@ -1625,7 +1626,7 @@
   @override
   void verifyCreatedCollection() {
     super.verifyCreatedCollection();
-    assertPackageBuildWorkspaceFor(testFilePath);
+    assertPackageBuildWorkspaceFor(testFile);
   }
 
   void _createTestPackageBuildMarker() {
diff --git a/pkg/analyzer/test/src/diagnostics/mock_sdk_test.dart b/pkg/analyzer/test/src/diagnostics/mock_sdk_test.dart
index d80cb61..53c6dfd 100644
--- a/pkg/analyzer/test/src/diagnostics/mock_sdk_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/mock_sdk_test.dart
@@ -51,7 +51,7 @@
   }
 
   Future<ResolvedLibraryResult> _resolvedLibraryByUri(String uriStr) async {
-    var analysisSession = contextFor(testFilePath).currentSession;
+    var analysisSession = contextFor(testFile.path).currentSession;
     var coreElementResult =
         await analysisSession.getLibraryByUri(uriStr) as LibraryElementResult;
     return await analysisSession.getResolvedLibraryByElement(
diff --git a/pkg/analyzer/test/src/diagnostics/null_safety_read_write_test.dart b/pkg/analyzer/test/src/diagnostics/null_safety_read_write_test.dart
index b4dece1..88087f5 100644
--- a/pkg/analyzer/test/src/diagnostics/null_safety_read_write_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/null_safety_read_write_test.dart
@@ -1217,7 +1217,7 @@
   }) {
     var node = findNode.simple(search);
 
-    var testingData = driverFor(testFilePath).testingData!;
+    var testingData = driverFor(testFile.path).testingData!;
     var unitData = testingData.uriToFlowAnalysisData[result.uri]!;
 
     if (assigned) {
diff --git a/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart b/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart
index 25f897b..f0d36fc 100644
--- a/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/uri_does_not_exist_test.dart
@@ -59,7 +59,7 @@
     // Remove the overlay in the same way as AnalysisServer.
     deleteFile(filePath);
 
-    var analysisDriver = driverFor(testFilePath);
+    var analysisDriver = driverFor(testFile.path);
     analysisDriver.removeFile(filePath);
     await analysisDriver.applyPendingFileChanges();
 
diff --git a/pkg/analyzer/test/src/summary/elements_base.dart b/pkg/analyzer/test/src/summary/elements_base.dart
index 87eff04..9a3db3b 100644
--- a/pkg/analyzer/test/src/summary/elements_base.dart
+++ b/pkg/analyzer/test/src/summary/elements_base.dart
@@ -26,7 +26,7 @@
     bool dumpSummaries = false,
     List<Set<String>>? preBuildSequence,
   }) async {
-    final file = newFile(testFilePath, text);
+    final file = newFile(testFile.path, text);
     final analysisContext = contextFor(file.path);
     final analysisSession = analysisContext.currentSession;
 
diff --git a/pkg/analyzer/test/src/summary/top_level_inference_test.dart b/pkg/analyzer/test/src/summary/top_level_inference_test.dart
index dfe5949..712f520 100644
--- a/pkg/analyzer/test/src/summary/top_level_inference_test.dart
+++ b/pkg/analyzer/test/src/summary/top_level_inference_test.dart
@@ -6163,11 +6163,10 @@
   }
 
   Future<LibraryElement> _encodeDecodeLibrary(String text) async {
-    newFile(testFilePath, text);
+    newFile(testFile.path, text);
 
-    var path = convertPath(testFilePath);
-    var analysisSession = contextFor(path).currentSession;
-    var result = await analysisSession.getUnitElement(path);
+    var analysisSession = contextFor(testFile.path).currentSession;
+    var result = await analysisSession.getUnitElement(testFile.path);
     result as UnitElementResult;
     return result.element.library;
   }
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index c6edd7f..05b4002 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
@@ -2941,7 +2941,7 @@
       error(HintCode.UNUSED_ELEMENT, 177, 2),
       error(HintCode.UNUSED_ELEMENT, 194, 2),
       error(CompileTimeErrorCode.REFERENCED_BEFORE_DECLARATION, 203, 2,
-          contextMessages: [message(testFilePath, 211, 2)]),
+          contextMessages: [message(testFile.path, 211, 2)]),
     ]);
 
     void assertLocalFunctionType(String name, String expected) {