| 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 |