From f204d0dd77fa261bf2b99a7aa0b6a2413f0ef533 Mon Sep 17 00:00:00 2001 From: Peter Andersson Date: Mon, 6 Jun 2016 01:30:35 +0200 Subject: Measure file i/o overhead and skip test if the speed is too slow --- lib/common_test/test/ct_repeat_testrun_SUITE.erl | 31 +++++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'lib/common_test') diff --git a/lib/common_test/test/ct_repeat_testrun_SUITE.erl b/lib/common_test/test/ct_repeat_testrun_SUITE.erl index 199df66767..195abdb7c0 100644 --- a/lib/common_test/test/ct_repeat_testrun_SUITE.erl +++ b/lib/common_test/test/ct_repeat_testrun_SUITE.erl @@ -70,7 +70,7 @@ init_per_suite(Config0) -> ct:pal("Timetrap info = ~w", [TTInfo]), if ScaleVal > 1 -> {skip,"Skip on systems running e.g. cover or debug!"}; - ScaleVal =< 1 -> + ScaleVal =< 1 -> Config = ct_test_support:init_per_suite(Config0), DataDir = ?config(data_dir, Config), Suite1 = filename:join([DataDir,"a_test","r1_SUITE"]), @@ -83,14 +83,27 @@ init_per_suite(Config0) -> {1,0,{0,0}} = ct_test_support:run(ct,run_test,[Opts1],Config), {1,0,{0,0}} = ct_test_support:run(ct,run_test,[Opts2],Config), - %% Time the shortest testcase to use for offset - {_T0,{1,0,{0,0}}} = timer:tc(ct_test_support,run, - [ct,run_test,[Opts1],Config]), - - %% -2 is to ensure we hit inside the target test case and not after - % T = round(T0/1000000)-2, - T=0, - [{offset,T}|Config] + %% Check if file i/o is too slow for correct measurements + Opts3 = Opts0 ++ [{suite,Suite1},{testcase,tc1},{label,timing3}], + {T,{1,0,{0,0}}} = + timer:tc(fun() -> + ct_test_support:run(ct,run_test, + [Opts3],Config), + ct_test_support:run(ct,run_test, + [Opts3],Config) + end), + %% The time to compare with here must match the timeout value + %% in the test suite. Accept 30% logging overhead (26 sec total). + if T > 26000000 -> + ct:pal("Timing test took ~w sec (< 27 sec expected). " + "Skipping the suite!", + [trunc(T/1000000)]), + {skip,"File I/O too slow for this suite"}; + true -> + ct:pal("Timing test took ~w sec. Proceeding...", + [trunc(T/1000000)]), + [{offset,0}|Config] + end end. end_per_suite(Config) -> -- cgit v1.2.3