Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(347)

Unified Diff: sdk/lib/_internal/pub/test/test_pub.dart

Issue 557563002: Store the async-await compiled pub code directly in the repo. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub/test/test_pub.dart
diff --git a/sdk/lib/_internal/pub/test/test_pub.dart b/sdk/lib/_internal/pub/test/test_pub.dart
index a5ffe843ef3d4d784b9bb5f31d273c8c62893da1..b2b2541f4f6b3a0ed7a49f268b5a19a8130cdf45 100644
--- a/sdk/lib/_internal/pub/test/test_pub.dart
+++ b/sdk/lib/_internal/pub/test/test_pub.dart
@@ -476,39 +476,6 @@ void confirmPublish(ScheduledProcess pub) {
pub.writeLine("y");
}
-/// Whether the async/await compiler has already been run.
-///
-/// If a test suite runs pub more than once, we only need to run the compiler
-/// the first time.
-// TODO(rnystrom): Remove this when #104 is fixed.
-bool _compiledAsync = false;
-
-/// Gets the path to the pub entrypoint Dart script to run.
-// TODO(rnystrom): This exists to run the async/await compiler on pub and then
-// get the path to the output of that. Once #104 is fixed, remove this.
-String _getPubPath(String dartBin) {
- var buildDir = p.join(p.dirname(dartBin), '../../');
-
- // Ensure the async/await compiler has been run once for this test suite. The
- // compiler itself will only re-compile source files that have actually
- // changed, so this is a no-op if everything is already compiled.
- if (!_compiledAsync) {
- var result = Process.runSync(dartBin, [
- '--package-root=$_packageRoot/',
- p.join(testDirectory, '..', 'bin', 'async_compile.dart'),
- buildDir,
- '--silent'
- ]);
- stdout.write(result.stdout);
- stderr.write(result.stderr);
- if (result.exitCode != 0) fail("Async/await compiler failed.");
-
- _compiledAsync = true;
- }
-
- return p.join(buildDir, 'pub_async/bin/pub.dart');
-}
-
/// Starts a Pub process and returns a [ScheduledProcess] that supports
/// interaction with that process.
///
@@ -530,14 +497,15 @@ ScheduledProcess startPub({List args, Future<Uri> tokenEndpoint}) {
dartBin = p.absolute(dartBin);
}
- // Find the main pub entrypoint.
- var pubPath = _getPubPath(dartBin);
- // TODO(rnystrom): Replace the above line with the following when #104 is
- // fixed.
- //var pubPath = p.join(testDirectory, '..', 'bin', 'pub.dart');
-
- var dartArgs = ['--package-root=$_packageRoot/', '--checked', pubPath,
- '--verbose'];
+ // Always run pub from a snapshot. Since we require the SDK to be built, the
+ // snapshot should be there. Note that this *does* mean that the snapshot has
+ // to be manually updated when changing code before running the tests.
+ // Otherwise, you will test against stale data.
+ //
+ // Using the snapshot makes running the tests much faster, which is why we
+ // make this trade-off.
+ var pubPath = p.join(p.dirname(dartBin), 'snapshots/pub.dart.snapshot');
+ var dartArgs = [pubPath, '--verbose'];
dartArgs.addAll(args);
if (tokenEndpoint == null) tokenEndpoint = new Future.value();
@@ -826,8 +794,16 @@ Map packageMap(String name, String version, [Map dependencies]) {
}
/// Resolves [target] relative to the path to pub's `test/asset` directory.
-String testAssetPath(String target) =>
- p.join(p.dirname(libraryPath('test_pub')), 'asset', target);
+String testAssetPath(String target) {
+ var libPath = libraryPath('test_pub');
+
+ // We are running from the generated directory, but non-dart assets are only
+ // in the canonical directory.
+ // TODO(rnystrom): Remove this when #104 is fixed.
+ libPath = libPath.replaceAll('pub_generated', 'pub');
+
+ return p.join(p.dirname(libPath), 'asset', target);
+}
/// Returns a Map in the format used by the pub.dartlang.org API to represent a
/// package version.

Powered by Google App Engine
This is Rietveld 408576698