Index: tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart |
diff --git a/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart b/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart |
index d93515015878b5260769ed0e16b8fb53757ac6d4..6134d20ef56f433c17b27f4bb2629c5ce0ad91e8 100644 |
--- a/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart |
+++ b/tests/compiler/dart2js/sourcemaps/source_mapping_tester.dart |
@@ -10,7 +10,23 @@ import 'package:compiler/src/js/js_debug.dart'; |
import 'package:js_ast/js_ast.dart'; |
import 'sourcemap_helper.dart'; |
+typedef CodePointWhiteListFunction WhiteListFunction( |
+ String configuration, String file); |
+ |
+typedef bool CodePointWhiteListFunction(CodePoint codePoint); |
+ |
+CodePointWhiteListFunction emptyWhiteListFunction(String config, String file) { |
+ return emptyWhiteList; |
+} |
+ |
+bool emptyWhiteList(CodePoint codePoint) => false; |
+ |
main(List<String> arguments) { |
+ test(arguments); |
+} |
+ |
+void test(List<String> arguments, |
+ {WhiteListFunction whiteListFunction: emptyWhiteListFunction}) { |
Set<String> configurations = new Set<String>(); |
Set<String> files = new Set<String>(); |
for (String argument in arguments) { |
@@ -33,10 +49,12 @@ main(List<String> arguments) { |
List<String> options = TEST_CONFIGURATIONS[config]; |
for (String file in files) { |
String filename = TEST_FILES[file]; |
- TestResult result = await runTests(config, filename, options); |
+ TestResult result = await runTests( |
+ config, filename, options); |
if (result.missingCodePointsMap.isNotEmpty) { |
- result.printMissingCodePoints(); |
- errorsFound = true; |
+ errorsFound = result.printMissingCodePoints( |
+ whiteListFunction(config, file)); |
+ true; |
} |
if (result.multipleNodesMap.isNotEmpty) { |
result.printMultipleNodes(); |
@@ -158,14 +176,22 @@ class TestResult { |
TestResult(this.config, this.file, this.processor); |
- void printMissingCodePoints() { |
+ bool printMissingCodePoints( |
+ [CodePointWhiteListFunction codePointWhiteList = emptyWhiteList]) { |
+ bool allWhiteListed = true; |
missingCodePointsMap.forEach((info, missingCodePoints) { |
print("Missing code points for ${info.element} in '$file' " |
"in config '$config':"); |
for (CodePoint codePoint in missingCodePoints) { |
- print(" $codePoint"); |
+ if (codePointWhiteList(codePoint)) { |
+ print(" $codePoint (white-listed)"); |
+ } else { |
+ print(" $codePoint"); |
+ allWhiteListed = false; |
+ } |
} |
}); |
+ return !allWhiteListed; |
} |
void printMultipleNodes() { |