Files
sdk/pkg/front_end/test/binary_md_git_test.dart
T
Johnni Winther b48d4f224f [cfe] Cleanup imports
Change-Id: I60891b46119d6451810adf2846a05a66050bacd0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/373246
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2024-06-27 08:54:39 +00:00

42 lines
1.3 KiB
Dart

// Copyright (c) 2023, 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.
import 'dart:io' show File;
import 'binary_md_dill_reader.dart' show BinaryMdDillReader;
import 'utils/io_utils.dart' show computeRepoDir;
Future<void> main() async {
File binaryMd = new File("$repoDir/pkg/kernel/binary.md");
String binaryMdContent = binaryMd.readAsStringSync();
BinaryMdDillReader binaryMdDillReader =
new BinaryMdDillReader(binaryMdContent, const <int>[]);
binaryMdDillReader.setup();
List<String> errors = [];
binaryMdDillReader.readingInstructions.forEach((clazz, fields) {
if (binaryMdDillReader.isA(clazz, "Expression") &&
!binaryMdDillReader.isAbstract(clazz)) {
bool foundOffset = false;
for (String field in fields) {
if (field == 'FileOffset fileOffset;') {
foundOffset = true;
break;
}
}
if (!foundOffset) {
errors.add("$clazz missing required field 'fileOffset'.");
}
}
});
if (errors.isNotEmpty) {
throw Exception(
'Found the following errors with binary.md: ${errors.join('\n')}');
}
}
final String repoDir = computeRepoDir();