| Index: packages/petitparser/test/dart_file_tests.dart
|
| diff --git a/packages/petitparser/test/dart_file_tests.dart b/packages/petitparser/test/dart_file_tests.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d30c21ab725c577117c60aac4824811ed453c14f
|
| --- /dev/null
|
| +++ b/packages/petitparser/test/dart_file_tests.dart
|
| @@ -0,0 +1,37 @@
|
| +/// This test-case automatically generates various tests from Dart source
|
| +/// code. Unfortunately the parser is currently unable to parse most of
|
| +/// these files.
|
| +library petitparser.test.dart_file_test;
|
| +
|
| +import 'dart:io';
|
| +
|
| +import 'package:test/test.dart';
|
| +
|
| +import 'package:petitparser/dart.dart';
|
| +import 'package:petitparser/test.dart';
|
| +
|
| +void generateTests(DartGrammar dart, String title, List<FileSystemEntity> files) {
|
| + group(title, () {
|
| + files
|
| + .where((file) => file is File && file.path.endsWith('.dart'))
|
| + .forEach((File file) {
|
| + test(file.path, () {
|
| + var source = new StringBuffer();
|
| + file
|
| + .openRead()
|
| + .transform(SYSTEM_ENCODING.decoder)
|
| + .listen((part) => source.write(part), onDone: expectAsync(() {
|
| + expect(source.toString(), accept(dart));
|
| + }), onError: fail);
|
| + });
|
| + });
|
| + });
|
| +}
|
| +
|
| +void main() {
|
| + var dart = new DartGrammar();
|
| + generateTests(dart, 'Dart SDK', new Directory('packages')
|
| + .listSync(recursive: true, followLinks: false));
|
| + generateTests(dart, 'PetitParser', Directory.current
|
| + .listSync(recursive: true, followLinks: true));
|
| +}
|
|
|