mirror of
https://github.com/catchorg/Catch2.git
synced 2025-08-02 13:25:41 +02:00
Refactor tests for duration reporting threshold
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def run_tests_with_threshold(self_test_exe, threshold):
|
||||
cmd = [self_test_exe, '--min-duration', str(threshold),
|
||||
'[min_duration_test]']
|
||||
process = subprocess.Popen(
|
||||
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
stdout, stderr = process.communicate()
|
||||
if stderr:
|
||||
raise RuntimeError("Unexpected error output:\n" +
|
||||
stderr.decode())
|
||||
if process.returncode != 0:
|
||||
raise RuntimeError("Unexpected failure to run tests\n")
|
||||
result = stdout.split(b'\n')
|
||||
report_lines = [s.split() for s in result if b' s: ' in s]
|
||||
tests_reported = [l[2] for l in report_lines]
|
||||
times_reported = [float(l[0]) for l in report_lines]
|
||||
return tests_reported, times_reported
|
||||
|
||||
def check_times_at_least(times_reported, minimum):
|
||||
for time in times_reported:
|
||||
assert time >= minimum, (
|
||||
'Time {} was less that requested minimum {}' .format(
|
||||
time, minimum))
|
||||
|
||||
def main():
|
||||
self_test_exe, = sys.argv[1:]
|
||||
tests, times = run_tests_with_threshold(self_test_exe, '0.15')
|
||||
assert tests == [b'sleep_for_200ms'], (
|
||||
"Unexpected tests reported %s" % tests)
|
||||
check_times_at_least(times, 0.15)
|
||||
tests,times = run_tests_with_threshold(self_test_exe, '0')
|
||||
assert tests == [b'sleep_for_100ms', b'sleep_for_200ms'], (
|
||||
"Unexpected tests reported %s" % tests)
|
||||
check_times_at_least(times, 0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
Reference in New Issue
Block a user