Skip to content

Commit 8a64538

Browse files
authored
test_benchmark.py: Make number of reps configurable via env var (#26306)
Also: - Use the default value in just one place - Avoid storing `self.reps` on the benchmarker class (we can just use `len(self.times)` as a proxy)
1 parent e5d848b commit 8a64538

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

test/test_benchmark.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
# 5: 10 seconds
3939
DEFAULT_ARG = '4'
4040

41-
TEST_REPS = 5
41+
EMTEST_REPS = int(os.environ.get('EMTEST_REPS', '5'))
4242

4343
# by default, run just core benchmarks
4444
CORE_BENCHMARKS = True
@@ -80,9 +80,8 @@ def build(self, parent, filename, shared_args, emcc_args, native_args, native_ex
8080
def get_output_files(self):
8181
pass
8282

83-
def bench(self, args, output_parser=None, reps=TEST_REPS, expected_output=None):
83+
def bench(self, args, reps, output_parser=None, expected_output=None):
8484
self.times = []
85-
self.reps = reps
8685
for _ in range(reps):
8786
start = time.time()
8887
output = self.run(args)
@@ -116,7 +115,7 @@ def display(self, baseline=None):
116115
else:
117116
median = sorted_times[count // 2]
118117

119-
print(' %10s: mean: %4.3f (+-%4.3f) secs median: %4.3f range: %4.3f-%4.3f (noise: %4.3f%%) (%d runs)' % (self.name, mean, std, median, min(self.times), max(self.times), 100 * std / mean, self.reps), end=' ')
118+
print(' %10s: mean: %4.3f (+-%4.3f) secs median: %4.3f range: %4.3f-%4.3f (noise: %4.3f%%) (%d runs)' % (self.name, mean, std, median, min(self.times), max(self.times), 100 * std / mean, len(self.times)), end=' ')
120119

121120
if baseline:
122121
mean_baseline = sum(baseline.times) / len(baseline.times)
@@ -465,7 +464,7 @@ def hardcode_arguments(self, code, args):
465464

466465
def do_benchmark(self, name, src, expected_output='FAIL', args=None,
467466
emcc_args=None, native_args=None, shared_args=None,
468-
force_c=False, reps=TEST_REPS, native_exec=None,
467+
force_c=False, reps=EMTEST_REPS, native_exec=None,
469468
output_parser=None, lib_builder=None,
470469
skip_benchmarkers=None):
471470
if not benchmarkers:
@@ -487,7 +486,7 @@ def do_benchmark(self, name, src, expected_output='FAIL', args=None,
487486
reps = 0
488487
print('Running benchmarker: %s: %s' % (b.__class__.__name__, b.name))
489488
b.build(self, filename, shared_args, emcc_args, native_args, native_exec, lib_builder)
490-
b.bench(args, output_parser, reps, expected_output)
489+
b.bench(args, reps, output_parser, expected_output)
491490
recorded_stats = b.display(baseline)
492491
if recorded_stats:
493492
self.add_stats(name, recorded_stats)
@@ -787,7 +786,7 @@ def test_conditionals(self):
787786
return 0;
788787
}
789788
'''
790-
self.do_benchmark('conditionals', src, 'ok', reps=TEST_REPS)
789+
self.do_benchmark('conditionals', src, 'ok')
791790

792791
def test_fannkuch(self):
793792
src = read_file(test_file('third_party/fannkuch.c')).replace(

0 commit comments

Comments
 (0)