blob: 0692c3a2bc45eea059d98b801ae3fe7ea72e5469 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// 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.
/// Tests that every .status file in the Dart repository can be successfully
/// parsed.
import 'dart:io';
import 'package:status_file/canonical_status_file.dart';
final Uri repoRoot = Platform.script.resolve("../../../");
void main() {
// Parse every status file in the repository.
for (var directory in ["tests", "runtime/tests"]) {
for (var entry in new Directory.fromUri(repoRoot.resolve(directory))
.listSync(recursive: true)) {
if (!entry.path.endsWith(".status")) continue;
// Inside the co19 repository, there is a status file that doesn't appear
// to be valid and looks more like some kind of template or help document.
// Ignore it.
var co19StatusFile = repoRoot.resolve('tests/co19/src/co19.status');
var co19_2StatusFile = repoRoot.resolve('tests/co19_2/src/co19.status');
if (FileSystemEntity.identicalSync(
entry.path, new File.fromUri(co19StatusFile).path) ||
entry.path, new File.fromUri(co19_2StatusFile).path)) {
try {
var statusFile = new;
} catch (err, st) {
throw new Exception("Could not parse '${entry.path}'.\n$err");