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"; |
10 import "dart:async"; | 11 import "dart:async"; |
11 import "dart:io"; | 12 import "dart:io"; |
12 import "dart:isolate"; | 13 import "dart:isolate"; |
13 | 14 |
14 void testCreateRecursiveRace() { | 15 void testCreateRecursiveRace() { |
15 var keepAlive = new ReceivePort(); | 16 var keepAlive = new ReceivePort(); |
16 var temp = new Directory('').createTempSync(); | 17 var temp = new Directory('').createTempSync(); |
17 var d = new Directory('${temp.path}/a/b/c/d/e'); | 18 var d = new Directory('${temp.path}/a/b/c/d/e'); |
18 Future.wait([ | 19 Future.wait([ |
19 d.create(recursive: true), | 20 d.create(recursive: true), |
(...skipping 14 matching lines...) Expand all Loading... |
34 temp.delete(recursive: true).then((_) { | 35 temp.delete(recursive: true).then((_) { |
35 keepAlive.close(); | 36 keepAlive.close(); |
36 }); | 37 }); |
37 }); | 38 }); |
38 } | 39 } |
39 | 40 |
40 void main() { | 41 void main() { |
41 testCreateRecursiveRace(); | 42 testCreateRecursiveRace(); |
42 testCreateRecursiveRace(); | 43 testCreateRecursiveRace(); |
43 } | 44 } |
OLD | NEW |