diff options
author | Dan Gudmundsson <[email protected]> | 2017-10-13 14:35:07 +0200 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2017-11-29 13:17:11 +0100 |
commit | 34df9b51b0237172c41e81fd5ae5597cba534473 (patch) | |
tree | 78fa3a510abcd30e73277fe587e34f2b79730d42 | |
parent | 8350886687735b3552f41780563eedac7e6650e7 (diff) | |
download | otp-34df9b51b0237172c41e81fd5ae5597cba534473.tar.gz otp-34df9b51b0237172c41e81fd5ae5597cba534473.tar.bz2 otp-34df9b51b0237172c41e81fd5ae5597cba534473.zip |
Avoid falling measurements testcases on slow machines
-rw-r--r-- | lib/stdlib/test/string_SUITE.erl | 37 | ||||
-rw-r--r-- | lib/stdlib/test/unicode_util_SUITE.erl | 15 |
2 files changed, 38 insertions, 14 deletions
diff --git a/lib/stdlib/test/string_SUITE.erl b/lib/stdlib/test/string_SUITE.erl index 7a39439764..f43bfb4482 100644 --- a/lib/stdlib/test/string_SUITE.erl +++ b/lib/stdlib/test/string_SUITE.erl @@ -712,21 +712,34 @@ nth_lexeme(_) -> meas(Config) -> + Parent = self(), + Exec = fun() -> + DataDir0 = proplists:get_value(data_dir, Config), + DataDir = filename:join(lists:droplast(filename:split(DataDir0))), + case proplists:get_value(profile, Config, false) of + false -> + do_measure(DataDir); + eprof -> + eprof:profile(fun() -> do_measure(DataDir) end, [set_on_spawn]), + eprof:stop_profiling(), + eprof:analyze(), + eprof:stop() + end, + Parent ! {test_done, self()}, + normal + end, + ct:timetrap({minutes,2}), case ct:get_timetrap_info() of {_,{_,Scale}} when Scale > 1 -> {skip,{will_not_run_in_debug,Scale}}; - _ -> % No scaling - DataDir0 = proplists:get_value(data_dir, Config), - DataDir = filename:join(lists:droplast(filename:split(DataDir0))), - case proplists:get_value(profile, Config, false) of - false -> - do_measure(DataDir); - eprof -> - eprof:profile(fun() -> do_measure(DataDir) end, [set_on_spawn]), - eprof:stop_profiling(), - eprof:analyze(), - eprof:stop() - end + _ -> % No scaling, run at most 1.5 min + Tester = spawn(Exec), + receive {test_done, Tester} -> ok + after 90000 -> + io:format("Timelimit reached stopping~n",[]), + exit(Tester, die) + end, + ok end. do_measure(DataDir) -> diff --git a/lib/stdlib/test/unicode_util_SUITE.erl b/lib/stdlib/test/unicode_util_SUITE.erl index f23e6b8b9a..a89627eba5 100644 --- a/lib/stdlib/test/unicode_util_SUITE.erl +++ b/lib/stdlib/test/unicode_util_SUITE.erl @@ -310,12 +310,23 @@ get(_) -> add_get_tests. count(Config) -> + Parent = self(), + Exec = fun() -> + do_measure(Config), + Parent ! {test_done, self()} + end, ct:timetrap({minutes,5}), case ct:get_timetrap_info() of {_,{_,Scale}} when Scale > 1 -> {skip,{measurments_skipped_debug,Scale}}; - _ -> % No scaling - do_measure(Config) + _ -> % No scaling, run at most 2 min + Tester = spawn(Exec), + receive {test_done, Tester} -> ok + after 120000 -> + io:format("Timelimit reached stopping~n",[]), + exit(Tester, die) + end, + ok end. do_measure(Config) -> |