OLD | NEW |
(Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 import 'dart:async'; |
| 6 import 'dart:io'; |
| 7 |
| 8 Future<int> freeIPv4AndIPv6Port() async { |
| 9 var socket = |
| 10 await ServerSocket.bind(InternetAddress.ANY_IP_V6, 0, v6Only: false); |
| 11 int port = socket.port; |
| 12 await socket.close(); |
| 13 return port; |
| 14 } |
| 15 |
| 16 Future retry(Future fun(), {int maxCount: 10}) async { |
| 17 for (int i = 0; i < maxCount; i++) { |
| 18 try { |
| 19 // If there is no exception this will simply return, otherwise we keep |
| 20 // trying. |
| 21 return await fun(); |
| 22 } catch (_) {} |
| 23 print("Failed to execute test closure in attempt $i " |
| 24 "(${maxCount - i} retries left)."); |
| 25 } |
| 26 return await fun(); |
| 27 } |
| 28 |
OLD | NEW |