blob: d30c21ab725c577117c60aac4824811ed453c14f [file] [log] [blame]
/// 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));
}