aboutsummaryrefslogtreecommitdiffstats
path: root/lib/test_server/src/test_server.erl
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2012-10-12 15:28:53 +0200
committerBjörn-Egil Dahlberg <[email protected]>2012-10-12 15:28:53 +0200
commit16d74de34df5fcfed25c55f0ee52cbb01e4169cb (patch)
treed56e88a3cb0f56a45348ad7769dd7f0f74a71f32 /lib/test_server/src/test_server.erl
parentab3d42f58df46d8b0011b154d51ce14a20282ad9 (diff)
parentbae975e50a2270a267790f95fe918b71f688d2dc (diff)
downloadotp-16d74de34df5fcfed25c55f0ee52cbb01e4169cb.tar.gz
otp-16d74de34df5fcfed25c55f0ee52cbb01e4169cb.tar.bz2
otp-16d74de34df5fcfed25c55f0ee52cbb01e4169cb.zip
Merge branch 'egil/add-scalefactor-to-start_node'
* egil/add-scalefactor-to-start_node: test_server: Let start_node/3 utilize scalefactor test_server: Refactor timetrap_scale_factor/0
Diffstat (limited to 'lib/test_server/src/test_server.erl')
-rw-r--r--lib/test_server/src/test_server.erl29
1 files changed, 12 insertions, 17 deletions
diff --git a/lib/test_server/src/test_server.erl b/lib/test_server/src/test_server.erl
index 8beed9bd3e..bfa5e927b1 100644
--- a/lib/test_server/src/test_server.erl
+++ b/lib/test_server/src/test_server.erl
@@ -2170,24 +2170,19 @@ continue(Pid) when is_pid(Pid) ->
%%
%% Returns the amount to scale timetraps with.
+%% {X, fun() -> check() end} <- multiply scale with X if Fun() is true
timetrap_scale_factor() ->
- F0 = case test_server:purify_is_running() of
- true -> 5;
- false -> 1
- end,
- F1 = case {is_debug(), has_lock_checking()} of
- {true,_} -> 6 * F0;
- {false,true} -> 2 * F0;
- {false,false} -> F0
- end,
- F = case has_superfluous_schedulers() of
- true -> 3*F1;
- false -> F1
- end,
- case test_server:is_cover() of
- true -> 10 * F;
- false -> F
- end.
+ timetrap_scale_factor([
+ { 2, fun() -> has_lock_checking() end},
+ { 3, fun() -> has_superfluous_schedulers() end},
+ { 5, fun() -> purify_is_running() end},
+ { 6, fun() -> is_debug() end},
+ {10, fun() -> is_cover() end}
+ ]).
+
+timetrap_scale_factor(Scales) ->
+ %% The fun in {S, Fun} a filter input to the list comprehension
+ lists:foldl(fun(S,O) -> O*S end, 1, [ S || {S,F} <- Scales, F()]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%