diff options
author | Björn Gustavsson <[email protected]> | 2018-11-29 12:41:28 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-11-30 13:19:01 +0100 |
commit | 36df00d48692c6f2e6d8c2ffd4eb03e4b66f56a9 (patch) | |
tree | 352b14431ed7a325d72027882aafc1039c1982c8 /lib | |
parent | d409ab76416108936610e043fa14a0a0f0d314af (diff) | |
download | otp-36df00d48692c6f2e6d8c2ffd4eb03e4b66f56a9.tar.gz otp-36df00d48692c6f2e6d8c2ffd4eb03e4b66f56a9.tar.bz2 otp-36df00d48692c6f2e6d8c2ffd4eb03e4b66f56a9.zip |
Cover code in beam_trim
Diffstat (limited to 'lib')
-rw-r--r-- | lib/compiler/test/bs_match_SUITE.erl | 33 | ||||
-rw-r--r-- | lib/compiler/test/map_SUITE.erl | 14 |
2 files changed, 45 insertions, 2 deletions
diff --git a/lib/compiler/test/bs_match_SUITE.erl b/lib/compiler/test/bs_match_SUITE.erl index 9a0d4cfd26..2cfcb841a7 100644 --- a/lib/compiler/test/bs_match_SUITE.erl +++ b/lib/compiler/test/bs_match_SUITE.erl @@ -743,9 +743,19 @@ coverage(Config) when is_list(Config) -> bitstring = coverage_bitstring(<<7:4>>), other = coverage_bitstring([a]), + %% Cover code in beam_trim. + {done,<<17,53>>,[253,155,200]} = coverage_trim(<<253,155,200,17,53>>, e0, e1, e2, e3, []), + <<"(right|linux)">> = coverage_trim_1(<<"">>, <<"right">>, <<"linux">>), + <<"/(right|linux)">> = coverage_trim_1(<<"/">>, <<"right">>, <<"linux">>), + <<"(left|linux)/(right|linux)">> = + coverage_trim_1(<<"left">>, <<"right">>, <<"linux">>), + + {10,<<"-">>,""} = coverage_trim_2(<<"-">>, 10, []), + {8,<<"-">>,"aa"} = coverage_trim_2(<<"aa-">>, 10, []), + ok. coverage_fold(Fun, Acc, <<H,T/binary>>) -> @@ -848,6 +858,29 @@ coverage_trim(<<C:8,T/binary>> = Bin, E0, E1, E2, E3, Acc) -> {done,Bin,lists:reverse(Acc)} end. +coverage_trim_1(<<>>, Right, OsType) -> + do_coverage_trim_1(Right, OsType); +coverage_trim_1(<<"/">>, Right, OsType) -> + <<"/",(do_coverage_trim_1(Right, OsType))/binary>>; +coverage_trim_1(Left, Right, OsType) -> + <<(do_coverage_trim_1(Left, OsType))/binary, + "/", + (do_coverage_trim_1(Right, OsType))/binary>>. + +do_coverage_trim_1(A, OsType) -> + <<"(",A/binary,"|",OsType/binary,")">>. + +coverage_trim_2(<<C/utf8,R/binary>> = Bin, I, L) -> + case printable_char(C) of + true -> + coverage_trim_2(R, I - 1, [C | L]); + false -> + {I,Bin,lists:reverse(L)} + end. + +printable_char($a) -> true; +printable_char(_) -> false. + multiple_uses(Config) when is_list(Config) -> {344,62879,345,<<245,159,1,89>>} = multiple_uses_1(<<1,88,245,159,1,89>>), true = multiple_uses_2(<<0,0,197,18>>), diff --git a/lib/compiler/test/map_SUITE.erl b/lib/compiler/test/map_SUITE.erl index 3d7a4e445a..440b632381 100644 --- a/lib/compiler/test/map_SUITE.erl +++ b/lib/compiler/test/map_SUITE.erl @@ -73,7 +73,7 @@ t_reused_key_variable/1, %% new in OTP 22 - t_mixed_clause/1 + t_mixed_clause/1,cover_beam_trim/1 ]). suite() -> []. @@ -130,7 +130,7 @@ all() -> t_reused_key_variable, %% new in OTP 22 - t_mixed_clause + t_mixed_clause,cover_beam_trim ]. groups() -> []. @@ -2182,6 +2182,16 @@ t_mixed_clause(_Config) -> end, ok. +cover_beam_trim(_Config) -> + val = do_cover_beam_trim(id, max, max, id, #{id=>val}), + ok. + +do_cover_beam_trim(Id, OldMax, Max, Id, M) -> + OldMax = id(Max), + #{Id:=Val} = id(M), + Val. + + %% aux rand_terms(0) -> []; |