Skip to content

Commit e6fea81

Browse files
Benchmark: support async iteration functions.
1 parent 2048ac6 commit e6fea81

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

benchmark/lib/benchmark.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'dart:async';
12
import 'dart:io';
23

34
import 'package:meta/meta.dart';
@@ -56,12 +57,17 @@ class Benchmark {
5657

5758
/// Calls [runIteration] [iterations] of times.
5859
Future<void> run() async {
59-
for (var i = 0; i < iterations; i++) runIteration(i);
60+
for (var i = 0; i < iterations; i++) {
61+
final result = runIteration(i);
62+
if (result is Future) {
63+
await result;
64+
}
65+
}
6066
return Future.value();
6167
}
6268

6369
/// A single test iteration, given [iteration] index starting from 0.
64-
void runIteration(int iteration) {
70+
FutureOr<void> runIteration(int iteration) {
6571
throw UnimplementedError('Please override runIteration() or run()');
6672
}
6773

0 commit comments

Comments
 (0)