Changeset 85
- Timestamp:
- 08/04/09 06:06:37 (3 years ago)
- Location:
- trunk/src
- Files:
-
- 3 edited
-
directory_tester.erl (modified) (1 diff)
-
fixtures.erl (modified) (2 diffs)
-
tester_test.erl (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/directory_tester.erl
r78 r85 5 5 -module(directory_tester). 6 6 -export ([init/2]). 7 -export ([init/1]). 7 8 9 init ([Directory, Node]) when is_list (Node) -> 10 init (Directory, list_to_atom (Node)). 11 8 12 init (Directory, Node) -> 9 13 Compiler = spawn_link (compiler, init, [notify_me (compiler), Directory]), -
trunk/src/fixtures.erl
r47 r85 9 9 -export ([use_tree/3]). 10 10 -export ([use_tree/2]). 11 -export ([unique_string/0]). 11 12 -include_lib ("kernel/include/file.hrl"). 12 13 … … 28 29 unique_string () -> 29 30 Node = atom_to_list (node ()), 31 [Name, Host] = string: tokens (Node, "@"), 30 32 [Mega, Sec, Micro] = [integer_to_list (X) || X <- tuple_to_list (now ())], 31 N ode++ "_" ++ Mega ++ "_" ++ Sec ++ "_" ++ Micro.33 Name ++ "_at_" ++ Host ++ "_" ++ Mega ++ "_" ++ Sec ++ "_" ++ Micro. 32 34 33 35 populate (Directory, [{file, Name, Content} | Tail]) -> -
trunk/src/tester_test.erl
r73 r85 4 4 5 5 -module (tester_test). 6 -export ([run_all/1]). 6 -export ([run_all/1, run_all/0]). 7 -test (run_all). 8 9 run_all () -> 10 Name = list_to_atom (fixtures: unique_string ()), 11 {ok, Node} = slave: start_link (localhost, Name), 12 ok = run_all (Node), 13 ok = slave: stop (Node). 7 14 8 15 run_all (Node) -> 9 runs_a_test (Node), 10 reruns_a_test_when_given_module (Node), 11 runs_given_tests (Node), 12 runs_given_test_sequence (Node), 13 reloads_corrected_module (Node), 14 deletes_a_module (Node), 15 deletes_a_test_module (Node), 16 notifies_a_message (Node), 17 runs_new_tests_failed_then_successful (Node), 18 ok. 19 20 send (Modules, Tester) -> 21 Paths = [modules: to_file_name (M, "../fix") || M <- Modules], 16 17 Fun = run_fun (Node), 18 ok = fixtures: use_tree (tree (), Fun). 19 20 run_fun (Node) -> 21 fun (Root, _) -> 22 runs_a_test (Node, Root), 23 reruns_a_test_when_given_module (Node, Root), 24 runs_given_tests (Node, Root), 25 runs_given_test_sequence (Node, Root), 26 reloads_corrected_module (Node, Root), 27 deletes_a_module (Node, Root), 28 deletes_a_test_module (Node, Root), 29 notifies_a_message (Node, Root), 30 runs_new_tests_failed_then_successful (Node, Root), 31 ok 32 end. 33 34 send (Root, Modules, Tester) -> 35 Paths = [modules: to_file_name (M, Root) || M <- Modules], 22 36 Binaries = [modules: to_binary (P) || P <- Paths], 23 37 false = lists: any (fun (M) -> code: is_loaded (M) end, Modules), … … 31 45 fun (M) -> Self ! M end. 32 46 33 runs_a_test (Node ) ->34 Tester = spawn_link (tester, init, [notify_me (), Node]), 35 [{2, 0, 0}, {2, 1, 1}, Error, {2, 2, 1}] = send ( [eg_test], Tester),47 runs_a_test (Node, Root) -> 48 Tester = spawn_link (tester, init, [notify_me (), Node]), 49 [{2, 0, 0}, {2, 1, 1}, Error, {2, 2, 1}] = send (Root, [eg_test], Tester), 36 50 {{badmatch, nok}, [{eg_test, nok, 0} | _]} = Error, 37 51 ok. 38 52 39 reruns_a_test_when_given_module (Node ) ->40 Tester = spawn_link (tester, init, [notify_me (), Node]), 41 [{1, 0, 0}, Error, {1, 1, 0}] = send ( [eg_test_of_code], Tester),53 reruns_a_test_when_given_module (Node, Root) -> 54 Tester = spawn_link (tester, init, [notify_me (), Node]), 55 [{1, 0, 0}, Error, {1, 1, 0}] = send (Root, [eg_test_of_code], Tester), 42 56 {undef, [{eg_code, ok, []}, {eg_test_of_code, ok, 0} | _]} = Error, 43 [{1, 0, 0}, {1, 1, 1}] = send ( [eg_code], Tester),44 ok. 45 46 runs_given_test_sequence (Node ) ->47 Tester = spawn_link (tester, init, [notify_me (), Node]), 48 [{2, 0, 0}, {2, 1, 1}, _, {2, 2, 1}] = send ( [eg_test], Tester),49 [{2, 0, 0}, _, {2, 1, 0}, {2, 2, 1}] = send ( [eg_code], Tester),50 Result = send ( [eg_test_of_code], Tester),57 [{1, 0, 0}, {1, 1, 1}] = send (Root, [eg_code], Tester), 58 ok. 59 60 runs_given_test_sequence (Node, Root) -> 61 Tester = spawn_link (tester, init, [notify_me (), Node]), 62 [{2, 0, 0}, {2, 1, 1}, _, {2, 2, 1}] = send (Root, [eg_test], Tester), 63 [{2, 0, 0}, _, {2, 1, 0}, {2, 2, 1}] = send (Root, [eg_code], Tester), 64 Result = send (Root, [eg_test_of_code], Tester), 51 65 [{3, 0, 0}, {3, 1, 1}, _, {3, 2, 1}, {3, 3, 2}] = Result, 52 66 ok. 53 67 54 runs_given_tests (Node ) ->68 runs_given_tests (Node, Root) -> 55 69 Tester = spawn_link (tester, init, [notify_me (), Node]), 56 70 Modules = [eg_test, eg_code, eg_test_of_code], 57 Result = send ( Modules, Tester),71 Result = send (Root, Modules, Tester), 58 72 [{3, 0, 0}, {3, 1, 1}, _, {3, 2, 1}, {3, 3, 2}] = Result, 59 73 ok. 60 74 61 reloads_corrected_module (Node ) ->75 reloads_corrected_module (Node, _) -> 62 76 Tester = spawn_link (tester, init, [notify_me (), Node]), 63 77 Binary = modules: forms_to_binary (eg_test_form ("nok")), … … 72 86 ok. 73 87 74 deletes_a_module (Node ) ->75 Tester = spawn_link (tester, init, [notify_me (), Node]), 76 [{1, 0, 0}, {1, 1, 1}] = send ( [eg_test_of_code], Tester),88 deletes_a_module (Node, Root) -> 89 Tester = spawn_link (tester, init, [notify_me (), Node]), 90 [{1, 0, 0}, {1, 1, 1}] = send (Root, [eg_test_of_code], Tester), 77 91 Tester ! {delete,[eg_code]}, 78 92 [{1, 0, 0}, Error, {1, 1, 0}] = receive_all ([]), 79 93 {undef, [{eg_code, ok, []}, {eg_test_of_code, ok, 0} | _]} = Error, 80 [{1, 0, 0}, {1, 1, 1}] = send ( [eg_code], Tester),81 ok. 82 83 deletes_a_test_module (Node ) ->84 Tester = spawn_link (tester, init, [notify_me (), Node]), 85 [{1, 0, 0}, {1, 1, 1}] = send ( [eg_test_of_code], Tester),94 [{1, 0, 0}, {1, 1, 1}] = send (Root, [eg_code], Tester), 95 ok. 96 97 deletes_a_test_module (Node, Root) -> 98 Tester = spawn_link (tester, init, [notify_me (), Node]), 99 [{1, 0, 0}, {1, 1, 1}] = send (Root, [eg_test_of_code], Tester), 86 100 Tester ! {delete,[eg_test_of_code]}, 87 101 [{0, 0, 0}] = receive_all ([]), 88 [{1, 0, 0}, {1, 1, 1}] = send ( [eg_test_of_code], Tester),89 ok. 90 91 notifies_a_message (Node ) ->102 [{1, 0, 0}, {1, 1, 1}] = send (Root, [eg_test_of_code], Tester), 103 ok. 104 105 notifies_a_message (Node, _) -> 92 106 Tester = spawn_link (tester, init, [notify_me (), Node]), 93 107 Test_message = "this is a message", … … 96 110 ok. 97 111 98 runs_new_tests_failed_then_successful (Node ) ->112 runs_new_tests_failed_then_successful (Node, Root) -> 99 113 Tester = spawn_link (tester, init, [notify_me (), Node]), 100 114 Modules = [eg_code, eg_test_of_code_failed], 101 Result = send ( Modules, Tester),115 Result = send (Root, Modules, Tester), 102 116 [{1, 0, 0}, Error, {1, 1, 0}] = Result, 103 117 {{badmatch, bad_eg_code}, _} = Error, 104 118 105 Result_after_new_test = send ( [eg_test_not_exports], Tester),119 Result_after_new_test = send (Root, [eg_test_not_exports], Tester), 106 120 [{2, 0, 0}, {2, 1, 1}, Error, {2, 2, 1}] = Result_after_new_test, 107 121 108 New_run = send ( [eg_test_of_code], Tester),122 New_run = send (Root, [eg_test_of_code], Tester), 109 123 [{3, 0, 0}, {3, 1, 1}, Error, {3, 2, 1}, {3, 3, 2}] = New_run, 110 124 ok. … … 144 158 {eof,7}]. 145 159 160 tree () -> 161 [{file, "eg_test.erl", 162 ["-module (eg_test).", 163 "-test (exports).", 164 "-export ([ok/0, nok/0]).", 165 "ok () ->", 166 " ok = list_to_existing_atom (\"ok\").", 167 "nok () ->", 168 " ok = list_to_existing_atom (\"nok\")."]}, 169 {file, "eg_test_of_code.erl", 170 ["-module (eg_test_of_code).", 171 "-test (exports).", 172 "-export ([ok/0]).", 173 "ok () ->", 174 " ok = eg_code: ok ()."]}, 175 {file, "eg_code.erl", 176 ["-module (eg_code).", 177 "-export ([ok/0]).", 178 "ok () ->", 179 " ok."]}, 180 {file, "eg_test_of_code_failed.erl", 181 ["-module (eg_test_of_code_failed).", 182 "-test (exports).", 183 "-export ([ok/0]).", 184 "", 185 "ok () ->", 186 " Result = eg_code: ok (),", 187 " Result = bad_eg_code."]}, 188 {file, "eg_test_not_exports.erl", 189 ["-module (eg_test_not_exports).", 190 "-test (ok).", 191 "-export ([ok/0, nok/0]).", 192 "ok () ->", 193 " ok = list_to_existing_atom (\"ok\").", 194 "nok () ->", 195 " ok = list_to_existing_atom (\"nok\")."]} 196 ]. 197 198 199 200 146 201 %%% Test to be added: 147 202 %%% tests that never end (e.g. infinite loop)
Note: See TracChangeset
for help on using the changeset viewer.
