| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:io'; | 6 import 'dart:io'; |
| 7 | 7 |
| 8 Future<int> freeIPv4AndIPv6Port() async { | 8 Future<int> freeIPv4AndIPv6Port() async { |
| 9 var socket = | 9 var socket = |
| 10 await ServerSocket.bind(InternetAddress.ANY_IP_V6, 0, v6Only: false); | 10 await ServerSocket.bind(InternetAddress.ANY_IP_V6, 0, v6Only: false); |
| 11 int port = socket.port; | 11 int port = socket.port; |
| 12 await socket.close(); | 12 await socket.close(); |
| 13 return port; | 13 return port; |
| 14 } | 14 } |
| 15 | 15 |
| 16 Future retry(Future fun(), {int maxCount: 10}) async { | 16 Future retry(Future fun(), {int maxCount: 10}) async { |
| 17 for (int i = 0; i < maxCount; i++) { | 17 for (int i = 0; i < maxCount; i++) { |
| 18 try { | 18 try { |
| 19 // If there is no exception this will simply return, otherwise we keep | 19 // If there is no exception this will simply return, otherwise we keep |
| 20 // trying. | 20 // trying. |
| 21 return await fun(); | 21 return await fun(); |
| 22 } catch (_) {} | 22 } catch (_) {} |
| 23 print("Failed to execute test closure in attempt $i " | 23 print("Failed to execute test closure in attempt $i " |
| 24 "(${maxCount - i} retries left)."); | 24 "(${maxCount - i} retries left)."); |
| 25 } | 25 } |
| 26 return await fun(); | 26 return await fun(); |
| 27 } | 27 } |
| 28 | 28 |
| 29 |
| 30 retrySync(fun, {int maxCount: 10}) { |
| 31 for (int i = 0; i < maxCount; i++) { |
| 32 try { |
| 33 // If there is no exception this will simply return, otherwise we keep |
| 34 // trying. |
| 35 return fun(); |
| 36 } catch (_) {} |
| 37 print("Failed to execute test closure in attempt $i " |
| 38 "(${maxCount - i} retries left)."); |
| 39 } |
| 40 return fun(); |
| 41 } |
| 42 |
| OLD | NEW |