aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test/guard_SUITE.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2016-04-28 10:27:58 +0200
committerBjörn Gustavsson <[email protected]>2016-04-28 10:27:58 +0200
commit85ccc38d59dd9751dfd7cead0e4ed0c1e6c169ad (patch)
tree9577c25d091144a7d18f1d8e02244a1e64411c83 /lib/compiler/test/guard_SUITE.erl
parentffde713643a17efac285165e830809c797f3f202 (diff)
parenta4301978be3571a2caaf77da9e2d119750c8b894 (diff)
downloadotp-85ccc38d59dd9751dfd7cead0e4ed0c1e6c169ad.tar.gz
otp-85ccc38d59dd9751dfd7cead0e4ed0c1e6c169ad.tar.bz2
otp-85ccc38d59dd9751dfd7cead0e4ed0c1e6c169ad.zip
Merge branch 'bjorn/compiler/cuddle-with-tests'
* bjorn/compiler/cuddle-with-tests: compilation_SUITE: Use explicit exports Remove support for running tests on a separate Erlang node Move code from compilation_SUITE to beam_block_SUITE Move list comprehension tests to lc_SUITE Move catch tests to trycatch_SUITE Remove compilation_SUITE:long_string/1 Move pattern-matching tests to match_SUITE Remove toothless test compile_SUITE:missing_testheap/1 misc_SUITE: Add missing export of integer_encoding/0 Move test cases from compilation_SUITE to beam_utils_SUITE Move complex_guard/1 from compilation_SUITE to guard_SUITE Remove compilation_SUITE:guards/1 Move tests from compilation_SUITE to record_SUITE Move bit syntax test cases from compilation_SUITE to bs_match_SUITE Remove useless test case compilation_SUITE:otp_2141/1 compilation_SUITE: Run the Core linter for all compilations
Diffstat (limited to 'lib/compiler/test/guard_SUITE.erl')
-rw-r--r--lib/compiler/test/guard_SUITE.erl25
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/compiler/test/guard_SUITE.erl b/lib/compiler/test/guard_SUITE.erl
index ffbf59f0ee..13d274d98a 100644
--- a/lib/compiler/test/guard_SUITE.erl
+++ b/lib/compiler/test/guard_SUITE.erl
@@ -28,7 +28,7 @@
or_guard/1,more_or_guards/1,
complex_or_guards/1,and_guard/1,
xor_guard/1,more_xor_guards/1,
- old_guard_tests/1,
+ old_guard_tests/1,complex_guard/1,
build_in_guard/1,gbif/1,
t_is_boolean/1,is_function_2/1,
tricky/1,rel_ops/1,rel_op_combinations/1,literal_type_tests/1,
@@ -48,7 +48,8 @@ groups() ->
[misc,const_cond,basic_not,complex_not,nested_nots,
semicolon,complex_semicolon,comma,or_guard,
more_or_guards,complex_or_guards,and_guard,xor_guard,
- more_xor_guards,build_in_guard,old_guard_tests,gbif,
+ more_xor_guards,build_in_guard,
+ old_guard_tests,complex_guard,gbif,
t_is_boolean,is_function_2,tricky,
rel_ops,rel_op_combinations,
literal_type_tests,basic_andalso_orelse,traverse_dcd,
@@ -947,6 +948,26 @@ og(_) -> what.
on(V) when number(V) -> number;
on(_) -> not_number.
+complex_guard(_Config) ->
+ _ = [true = do_complex_guard(X, Y, Z) ||
+ X <- [4,5], Y <- [4,5], Z <- [4,5]],
+ _ = [true = do_complex_guard(X, Y, Z) ||
+ X <- [1,2,3], Y <- [1,2,3], Z <- [1,2,3]],
+ _ = [catch do_complex_guard(X, Y, Z) ||
+ X <- [1,2,3,4,5], Y <- [0,6], Z <- [1,2,3,4,5]],
+ ok.
+
+do_complex_guard(X1, Y1, Z1) ->
+ if
+ ((X1 =:= 4) or (X1 =:= 5)) and
+ ((Y1 =:= 4) or (Y1 =:= 5)) and
+ ((Z1 =:= 4) or (Z1 =:= 5)) or
+ ((X1 =:= 1) or (X1 =:= 2) or (X1 =:= 3)) and
+ ((Y1 =:= 1) or (Y1 =:= 2) or (Y1 =:= 3)) and
+ ((Z1 =:= 1) or (Z1 =:= 2) or (Z1 =:= 3)) ->
+ true
+ end.
+
gbif(Config) when is_list(Config) ->
error = gbif_1(1, {false,true}),
ok = gbif_1(2, {false,true}),