blob: 0909385af378913ccc7800a07440512da6966599 [file] [log] [blame]
import 'dart:io';
import 'package:tar/tar.dart';
const verbose = bool.fromEnvironment('verbose');
/// Reads tar files from arguments and expects not to crash.
///
/// When something goes wrong, the name of the problematic tar file is printed.
/// By running with `-Dverbose=true`, a stack trace is printed as well.
void main(List<String> files) async {
for (final file in files) {
try {
await TarReader.forEach(File(file).openRead(), (entry) {});
} on TarException {
// These are fine
} on Object catch (e, s) {
// Other exceptions indicate a bug in pkg:tar
if (verbose) {
print(e);
print(s);
} else {
print(
'failed for $file - run `dart -Dverbose=true tool/fuzz.dart $file`');
}
exit(128);
}
}
}