diff options
author | John Högberg <[email protected]> | 2018-02-28 09:09:28 +0100 |
---|---|---|
committer | John Högberg <[email protected]> | 2018-02-28 09:09:28 +0100 |
commit | db8ad9dbc43669a134ce515a23ba6f8881b8a4a8 (patch) | |
tree | c7bf8bb0b05a5e833af0902d2d3c0ef513879c71 /lib/stdlib/test | |
parent | abe17be1e6f2ab51606c6a3b19d6a16a429f95a8 (diff) | |
parent | 3f79a3d1b490e829403529fd245ab8d5120d5e0e (diff) | |
download | otp-db8ad9dbc43669a134ce515a23ba6f8881b8a4a8.tar.gz otp-db8ad9dbc43669a134ce515a23ba6f8881b8a4a8.tar.bz2 otp-db8ad9dbc43669a134ce515a23ba6f8881b8a4a8.zip |
Merge branch 'john/stdlib/regex-test-stability' into maint
* john/stdlib/regex-test-stability:
Make re_SUITE:sub_binaries less unstable
Diffstat (limited to 'lib/stdlib/test')
-rw-r--r-- | lib/stdlib/test/re_SUITE.erl | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/stdlib/test/re_SUITE.erl b/lib/stdlib/test/re_SUITE.erl index 71f86e32e5..7b82647416 100644 --- a/lib/stdlib/test/re_SUITE.erl +++ b/lib/stdlib/test/re_SUITE.erl @@ -894,10 +894,13 @@ match_limit(Config) when is_list(Config) -> %% Test that we get sub-binaries if subject is a binary and we capture %% binaries. sub_binaries(Config) when is_list(Config) -> - Bin = list_to_binary(lists:seq(1,255)), - {match,[B,C]}=re:run(Bin,"(a)",[{capture,all,binary}]), - 255 = binary:referenced_byte_size(B), - 255 = binary:referenced_byte_size(C), - {match,[D]}=re:run(Bin,"(a)",[{capture,[1],binary}]), - 255 = binary:referenced_byte_size(D), + %% The GC can auto-convert tiny sub-binaries to heap binaries, so we + %% extract large sequences to make the test more stable. + Bin = << <<I>> || I <- lists:seq(1, 4096) >>, + {match,[B,C]}=re:run(Bin,"a(.+)$",[{capture,all,binary}]), + true = byte_size(B) =/= byte_size(C), + 4096 = binary:referenced_byte_size(B), + 4096 = binary:referenced_byte_size(C), + {match,[D]}=re:run(Bin,"a(.+)$",[{capture,[1],binary}]), + 4096 = binary:referenced_byte_size(D), ok. |