aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/test/code_b_test.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/test/code_b_test.erl')
-rw-r--r--lib/kernel/test/code_b_test.erl47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/kernel/test/code_b_test.erl b/lib/kernel/test/code_b_test.erl
new file mode 100644
index 0000000000..0f0107a2b4
--- /dev/null
+++ b/lib/kernel/test/code_b_test.erl
@@ -0,0 +1,47 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1996-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(code_b_test).
+
+-export([do_spawn/0, loop/0, check_exit/1, call/2, call/3]).
+
+do_spawn() ->
+ spawn_link(code_b_test, loop, []).
+
+loop() ->
+ receive
+ dummy -> loop()
+ end.
+
+check_exit(Pid) ->
+ receive
+ {'EXIT',Pid,_} ->
+ true
+ after 10 ->
+ %% We used to wait 1 ms. That is not always enough when
+ %% running the SMP emulator on a slow computer.
+ false
+ end.
+
+call({M,F}=Fun, Arg) when is_atom(M), is_atom(F) ->
+ [Fun(Arg)];
+call(Fun, Arg) when is_function(Fun) ->
+ [Fun(Arg)].
+
+call(M, F, Args) ->
+ [erlang:apply(M, F, Args)].