OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // | 4 // |
5 // Test for a race condition that can occur when recursively creating | 5 // Test for a race condition that can occur when recursively creating |
6 // a directory multiple times simultaneously. This consistently reproduces | 6 // a directory multiple times simultaneously. This consistently reproduces |
7 // issue https://code.google.com/p/dart/issues/detail?id=7679 in revisions | 7 // issue https://code.google.com/p/dart/issues/detail?id=7679 in revisions |
8 // without the fix for this issue. | 8 // without the fix for this issue. |
9 | 9 |
10 import "package:expect/expect.dart"; | |
11 import "dart:async"; | 10 import "dart:async"; |
12 import "dart:io"; | 11 import "dart:io"; |
13 import "dart:isolate"; | 12 import "dart:isolate"; |
14 | 13 |
15 void testCreateRecursiveRace() { | 14 void testCreateRecursiveRace() { |
16 var keepAlive = new ReceivePort(); | 15 var keepAlive = new ReceivePort(); |
17 var temp = new Directory('').createTempSync(); | 16 var temp = new Directory('').createTempSync(); |
18 var d = new Directory('${temp.path}/a/b/c/d/e'); | 17 var d = new Directory('${temp.path}/a/b/c/d/e'); |
19 Future.wait([ | 18 Future.wait([ |
20 d.create(recursive: true), | 19 d.create(recursive: true), |
(...skipping 14 matching lines...) Expand all Loading... |
35 temp.delete(recursive: true).then((_) { | 34 temp.delete(recursive: true).then((_) { |
36 keepAlive.close(); | 35 keepAlive.close(); |
37 }); | 36 }); |
38 }); | 37 }); |
39 } | 38 } |
40 | 39 |
41 void main() { | 40 void main() { |
42 testCreateRecursiveRace(); | 41 testCreateRecursiveRace(); |
43 testCreateRecursiveRace(); | 42 testCreateRecursiveRace(); |
44 } | 43 } |
OLD | NEW |