Index: test/runner/precompiled_paths_test.dart |
diff --git a/test/runner/precompiled_paths_test.dart b/test/runner/precompiled_paths_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a60a0c832c5d6b5e3a72a751ac581c459b76e5de |
--- /dev/null |
+++ b/test/runner/precompiled_paths_test.dart |
@@ -0,0 +1,58 @@ |
+// Copyright (c) 2016, 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. |
+ |
+@TestOn("vm") |
+@Tags(const ["chrome"]) |
+ |
+import 'dart:io'; |
+ |
+import 'package:path/path.dart' as p; |
+import 'package:scheduled_test/descriptor.dart' as d; |
+import 'package:scheduled_test/scheduled_process.dart'; |
+import 'package:scheduled_test/scheduled_stream.dart'; |
+import 'package:scheduled_test/scheduled_test.dart'; |
+ |
+import 'package:test/src/util/io.dart'; |
+ |
+import '../io.dart'; |
+ |
+void main() { |
+ useSandbox(); |
+ |
+ test("runs a precompiled version of a test rather than recompiling", () { |
+ d.file("to_precompile.dart", """ |
+ import "package:stream_channel/stream_channel.dart"; |
+ |
+ import "package:test/src/runner/plugin/remote_platform_helpers.dart"; |
+ import "package:test/src/runner/browser/post_message_channel.dart"; |
+ import "package:test/test.dart"; |
+ |
+ main(_) async { |
+ var channel = serializeSuite(() { |
+ return () => test("success", () {}); |
+ }, hidePrints: false); |
+ postMessageChannel().pipe(channel); |
+ } |
+ """).create(); |
+ |
+ d.dir("precompiled", []).create(); |
+ |
+ var dart2js = new ScheduledProcess.start(p.join(sdkDir, 'bin', 'dart2js'), [ |
+ "--package-root=${p.join(p.current, 'packages')}", |
+ "to_precompile.dart", |
+ "--out=precompiled/test.dart.browser_test.dart.js" |
+ ], workingDirectory: sandbox); |
+ dart2js.shouldExit(0); |
+ |
+ d.file("test.dart", "invalid dart}").create(); |
+ |
+ var test = runTest( |
+ ["-p", "chrome", "--precompiled=precompiled/", "test.dart"]); |
+ test.stdout.expect(containsInOrder([ |
+ "+0: success", |
+ "+1: All tests passed!" |
+ ])); |
+ test.shouldExit(0); |
+ }); |
+} |