// 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 '../base/file_system.dart'; import '../globals.dart' as globals; /// The name of the test configuration file that will be discovered by the /// test harness if it exists in the project directory hierarchy. const String _kTestConfigFileName = 'flutter_test_config.dart'; /// The name of the file that signals the root of the project and that will /// cause the test harness to stop scanning for configuration files. const String _kProjectRootSentinel = 'pubspec.yaml'; /// Find the `flutter_test_config.dart` file for a specific test file. File findTestConfigFile(File testFile) { File testConfigFile; Directory directory = testFile.parent; while (directory.path != directory.parent.path) { final File configFile = directory.childFile(_kTestConfigFileName); if (configFile.existsSync()) { globals.printTrace('Discovered $_kTestConfigFileName in ${directory.path}'); testConfigFile = configFile; break; } if (directory.childFile(_kProjectRootSentinel).existsSync()) { globals.printTrace('Stopping scan for $_kTestConfigFileName; ' 'found project root at ${directory.path}'); break; } directory = directory.parent; } return testConfigFile; }