diff options
Diffstat (limited to 'erts/emulator/test/small_SUITE.erl')
-rw-r--r-- | erts/emulator/test/small_SUITE.erl | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/erts/emulator/test/small_SUITE.erl b/erts/emulator/test/small_SUITE.erl index 00a02e5560..7dbe1fb4f4 100644 --- a/erts/emulator/test/small_SUITE.erl +++ b/erts/emulator/test/small_SUITE.erl @@ -78,6 +78,15 @@ sp2_1(N, MinS, MaxS) when N > 0 -> [N | sp2_1(N bsl 1, MinS, MaxS)]. arith_test(A, B, MinS, MaxS) -> + try arith_test_1(A, B, MinS, MaxS) of + ok -> ok + catch + error:Reason:Stk -> + ct:fail("arith_test failed with ~p~n\tA = ~p~n\tB = ~p\n\t~p", + [Reason, A, B, Stk]) + end. + +arith_test_1(A, B, MinS, MaxS) -> verify_kind(A + B, MinS, MaxS), verify_kind(B + A, MinS, MaxS), verify_kind(A - B, MinS, MaxS), @@ -97,6 +106,9 @@ arith_test(A, B, MinS, MaxS) -> true = B =:= 0 orelse ((A * B) div id(B) =:= A), true = A =:= 0 orelse ((B * A) div id(A) =:= B), + true = B =:= 0 orelse (((A div id(B)) * id(B) + A rem id(B)) =:= A), + true = A =:= 0 orelse (((B div id(A)) * id(A) + B rem id(A)) =:= B), + ok. %% Verifies that N is a small when it should be |