%% %% %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.