diff options
Diffstat (limited to 'lib/compiler/test/parteval_SUITE_data/t1.erl')
-rw-r--r-- | lib/compiler/test/parteval_SUITE_data/t1.erl | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/lib/compiler/test/parteval_SUITE_data/t1.erl b/lib/compiler/test/parteval_SUITE_data/t1.erl new file mode 100644 index 0000000000..5e4a40f103 --- /dev/null +++ b/lib/compiler/test/parteval_SUITE_data/t1.erl @@ -0,0 +1,140 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 1998-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +-module(?M). + +-compile(export_all). + +%%% The arity-0 functions are all called from the test suite. + +f2() -> + size({1,2}). + +i() -> + case [] of + [] -> + ok; + X -> + hopp + end. + +e() -> + case 4+5 of +% X when X>10 -> kvock; % not removed by BEAM opt. + {X,X} when list(X) -> + kvack; + 9 -> + ok; + _ -> + ko + end. + +f() -> + element(2,{a,b,c,d}), + erlang:element(2,{a,b,c,d}), + "hej" ++ "hopp". + +g(X) -> + if + float(3.4) -> + hej; + X == 5, 4==4 -> + japp; + 4 == 4, size({1,2}) == 1 -> + ok + end. + +g() -> + {g(3),g(5)}. + +bliff() -> + if + 3==4 -> + himm + end. + +fi() -> + case 4 of + X when 4==3 -> + {X}; + 4 -> + 4; + _ -> + ok + end. + +iff() when 3==2 -> + if + 3 == 4 -> + baff; + 3 == 3 -> + nipp + end. + +sleep(I) -> receive after I -> ok end. + +sleep() -> + sleep(45). + +s() -> + case 4 of + 3 -> + ok + end. + +error_reason(R) when atom(R) -> + R; +error_reason(R) when tuple(R) -> + error_reason(element(1, R)). + +plusplus() -> + ?MODULE ++ " -> mindre snygg felhantering". + +call_it(F) -> + case (catch apply(?MODULE, F, [])) of + {'EXIT', R0} -> + {'EXIT', error_reason(R0)}; + V -> + V + end. + +run() -> + L = [{f2, 2}, + {i, ok}, + {e, ok}, + {f, "hejhopp"}, + {g, {hej, hej}}, + {bliff, {'EXIT', if_clause}}, + {fi, 4}, + {iff, {'EXIT', function_clause}}, + {sleep, ok}, + {s, {'EXIT', case_clause}, + {plusplus, {'EXIT', badarg}}}], + Actual = [call_it(F) || {F, _} <- L], + Correct = [C || {_, C} <- L], + {Correct, Actual}. + + +%%% Don't call, only compile. +t(A) -> + receive + A when 1==2 -> + ok; + B -> + B + end. |