aboutsummaryrefslogtreecommitdiff
path: root/learn-you-some-erlang/tests/linkmon_tests.erl
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2024-02-23 07:08:18 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2024-02-23 07:08:18 +0100
commit5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e (patch)
tree982ca2e7f9ac4e8c350dfb5c4f60bcfdfff5afaf /learn-you-some-erlang/tests/linkmon_tests.erl
parent05ae56e5e89abf2993f84e6d52b250131f247c35 (diff)
downloaderlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.tar.gz
erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.tar.bz2
erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.tar.xz
erlang-workshop-5a9cdd3cc89507d4d74f8bded56ce5e037b3b56e.zip
wip
Diffstat (limited to 'learn-you-some-erlang/tests/linkmon_tests.erl')
-rw-r--r--learn-you-some-erlang/tests/linkmon_tests.erl43
1 files changed, 43 insertions, 0 deletions
diff --git a/learn-you-some-erlang/tests/linkmon_tests.erl b/learn-you-some-erlang/tests/linkmon_tests.erl
new file mode 100644
index 0000000..a04ee27
--- /dev/null
+++ b/learn-you-some-erlang/tests/linkmon_tests.erl
@@ -0,0 +1,43 @@
+-module(linkmon_tests).
+-include_lib("eunit/include/eunit.hrl").
+
+myproc_test_() ->
+ {timeout,
+ 7,
+ ?_assertEqual({'EXIT', reason},
+ catch linkmon:myproc())}.
+
+chain_test_() ->
+ {timeout,
+ 3,
+ ?_assertEqual(ok, chain_proc())}.
+
+chain_proc() ->
+ process_flag(trap_exit, true),
+ link(spawn(linkmon, chain, [3])),
+ receive
+ {'EXIT', _, "chain dies here"} -> ok
+ end.
+
+critic1_test_() ->
+ Critic = linkmon:start_critic(),
+ A = linkmon:judge(Critic, "Genesis", "The Lambda Lies Down on Broadway"),
+ exit(Critic, solar_storm),
+ B = linkmon:judge(Critic, "Genesis", "A trick of the Tail Recursion"),
+ [?_assertEqual("They are terrible!", A),
+ ?_assertEqual(timeout, B)].
+
+critic2_test_() ->
+ catch unregister(critic),
+ linkmon:start_critic2(),
+ timer:sleep(200),
+ A = linkmon:judge2("The Doors", "Light my Firewall"),
+ exit(whereis(critic), kill),
+ timer:sleep(200),
+ B = linkmon:judge2("Rage Against the Turing Machine", "Unit Testify"),
+ exit(whereis(critic), shutdown),
+ timer:sleep(200),
+ C = (catch linkmon:judge2("a", "b")),
+ [?_assertEqual("They are terrible!", A),
+ ?_assertEqual("They are great!", B),
+ ?_assertMatch({'EXIT', {badarg, _}}, C)].