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

Unified Diff: utils/tests/pub/test_pub.dart

Issue 12225085: Make createTempDir() synchronous. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 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
« no previous file with comments | « utils/pub/system_cache.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/tests/pub/test_pub.dart
diff --git a/utils/tests/pub/test_pub.dart b/utils/tests/pub/test_pub.dart
index c799ce714e8e4b89ec64c3adc6648593d96cf585..63301f40a51d2a9cb27183d31f0323ae3900401e 100644
--- a/utils/tests/pub/test_pub.dart
+++ b/utils/tests/pub/test_pub.dart
@@ -494,24 +494,21 @@ void _integration(String description, void body(), [Function testFn]) {
// Run all of the scheduled tasks. If an error occurs, it will propagate
// through the futures back up to here where we can hand it off to unittest.
var asyncDone = expectAsync0(() {});
- var createdSandboxDir;
- _setUpSandbox().then((sandboxDir) {
- createdSandboxDir = sandboxDir;
- return timeout(_runScheduled(sandboxDir, _scheduled),
- _TIMEOUT, 'waiting for a test to complete');
- }).catchError((e) {
- return _runScheduled(createdSandboxDir, _scheduledOnException).then((_) {
+ var sandboxDir = createTempDir();
+ return timeout(_runScheduled(sandboxDir, _scheduled),
+ _TIMEOUT, 'waiting for a test to complete').catchError((e) {
+ return _runScheduled(sandboxDir, _scheduledOnException).then((_) {
// Rethrow the original error so it keeps propagating.
throw e;
});
}).whenComplete(() {
// Clean up after ourselves. Do this first before reporting back to
// unittest because it will advance to the next test immediately.
- return _runScheduled(createdSandboxDir, _scheduledCleanup).then((_) {
+ return _runScheduled(sandboxDir, _scheduledCleanup).then((_) {
_scheduled = null;
_scheduledCleanup = null;
_scheduledOnException = null;
- if (createdSandboxDir != null) return deleteDir(createdSandboxDir);
+ if (sandboxDir != null) return deleteDir(sandboxDir);
});
}).then((_) {
// If we got here, the test completed successfully so tell unittest so.
@@ -680,8 +677,6 @@ void useMockClient(MockClient client) {
});
}
-Future<Directory> _setUpSandbox() => createTempDir();
-
Future _runScheduled(Directory parentDir, List<_ScheduledEvent> scheduled) {
if (scheduled == null) return new Future.immediate(null);
var iterator = scheduled.iterator;
@@ -1104,17 +1099,13 @@ class TarFileDescriptor extends Descriptor {
/// Creates the files and directories within this tar file, then archives
/// them, compresses them, and saves the result to [parentDir].
Future<File> create(parentDir) {
- // TODO(rnystrom): Use withTempDir().
- var tempDir;
- return createTempDir().then((_tempDir) {
- tempDir = _tempDir;
- return Future.wait(contents.map((child) => child.create(tempDir)));
- }).then((createdContents) {
- return createTarGz(createdContents, baseDir: tempDir).toBytes();
- }).then((bytes) {
- return new File(join(parentDir, _stringName)).writeAsBytes(bytes);
- }).then((file) {
- return deleteDir(tempDir).then((_) => file);
+ return withTempDir((tempDir) {
+ return Future.wait(contents.map((child) => child.create(tempDir)))
+ .then((createdContents) {
+ return createTarGz(createdContents, baseDir: tempDir).toBytes();
+ }).then((bytes) {
+ return new File(join(parentDir, _stringName)).writeAsBytes(bytes);
+ });
});
}
@@ -1136,16 +1127,11 @@ class TarFileDescriptor extends Descriptor {
}
var controller = new StreamController<List<int>>();
- var tempDir;
- // TODO(rnystrom): Use withTempDir() here.
// TODO(nweiz): propagate any errors to the return value. See issue 3657.
- createTempDir().then((_tempDir) {
- tempDir = _tempDir;
- return create(tempDir);
- }).then((tar) {
- var sourceStream = tar.openInputStream();
- return store(wrapInputStream(sourceStream), controller).then((_) {
- tempDir.delete(recursive: true);
+ withTempDir((tempDir) {
+ return create(tempDir).then((tar) {
+ var sourceStream = tar.openInputStream();
+ return store(wrapInputStream(sourceStream), controller);
});
});
return new ByteStream(controller.stream);
« no previous file with comments | « utils/pub/system_cache.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698