aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test/parteval_SUITE_data/t1.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compiler/test/parteval_SUITE_data/t1.erl')
-rw-r--r--lib/compiler/test/parteval_SUITE_data/t1.erl140
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.