diff options
author | John Högberg <[email protected]> | 2018-11-16 14:28:33 +0100 |
---|---|---|
committer | John Högberg <[email protected]> | 2018-11-16 14:28:33 +0100 |
commit | 5873f86728d945be654e31d33fd72a9ecd9c6eaa (patch) | |
tree | a6901f6bc1e8a1b7ab428636a0ad380cfc3bf6fb /lib/stdlib | |
parent | d7f9029afb669fd8dd8590e72cd7f0f30b2e9c84 (diff) | |
parent | d61d422d4211b5b319ca6d5dee2cc63dbfeff538 (diff) | |
download | otp-5873f86728d945be654e31d33fd72a9ecd9c6eaa.tar.gz otp-5873f86728d945be654e31d33fd72a9ecd9c6eaa.tar.bz2 otp-5873f86728d945be654e31d33fd72a9ecd9c6eaa.zip |
Merge branch 'john/erts/plusplus-trapping/OTP-15427'
* john/erts/plusplus-trapping/OTP-15427:
Don't use too many reductions in lists:reverse/2
Make '++'/2 trapping
Diffstat (limited to 'lib/stdlib')
-rw-r--r-- | lib/stdlib/test/lists_SUITE.erl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/stdlib/test/lists_SUITE.erl b/lib/stdlib/test/lists_SUITE.erl index bd2f3b448b..5dab6f6697 100644 --- a/lib/stdlib/test/lists_SUITE.erl +++ b/lib/stdlib/test/lists_SUITE.erl @@ -158,6 +158,20 @@ append_2(Config) when is_list(Config) -> "abcdef"=lists:append("abc", "def"), [hej, du]=lists:append([hej], [du]), [10, [elem]]=lists:append([10], [[elem]]), + + %% Trapping, both crashing and otherwise. + [append_trapping_1(N) || N <- lists:seq(0, 20)], + + ok. + +append_trapping_1(N) -> + List = lists:duplicate(N + (1 bsl N), gurka), + ImproperList = List ++ crash, + + {'EXIT',_} = (catch (ImproperList ++ [])), + + [3, 2, 1 | List] = lists:reverse(List ++ [1, 2, 3]), + ok. %% Tests the lists:reverse() implementation. The function is |