- Timestamp:
- 08/07/09 06:22:22 (3 years ago)
- Location:
- trunk/src
- Files:
-
- 3 edited
-
directory_tester.erl (modified) (2 diffs)
-
tester.erl (modified) (2 diffs)
-
tester_test.erl (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/directory_tester.erl
r85 r89 4 4 5 5 -module(directory_tester). 6 -export ([init/2]). 7 -export ([init/1]). 6 -export ([init/1, init/2]). 7 -export ([run_once/1, run_once/2]). 8 9 run_once ([Directory, Node]) when is_list (Node) -> 10 run_once (Directory, list_to_atom (Node)). 11 12 run_once (Directory, Node) -> 13 run (start (Directory, Node)). 8 14 9 15 init ([Directory, Node]) when is_list (Node) -> … … 11 17 12 18 init (Directory, Node) -> 19 loop (start (Directory, Node)). 20 21 start (Directory, Node) -> 13 22 Compiler = spawn_link (compiler, init, [notify_me (compiler), Directory]), 14 23 Tester = spawn_link (tester, init, [notify_me (tester), Node]), 15 24 Compiler ! check, 16 25 Printer = spawn_link (text_printer, init, [standard_io]), 17 loop (Compiler, Tester, Printer).26 {Compiler, Tester, Printer}. 18 27 19 28 notify_me (Atom) -> 20 29 Parent = self (), 21 30 fun (Event) -> 22 Parent ! { self (), Atom, Event}31 Parent ! {notify, {self (), Atom, Event}} 23 32 end. 24 33 25 loop ( Compiler, Tester, Printer) ->34 loop ({Compiler, Tester, Printer}) -> 26 35 receive 27 36 stop -> 28 37 Compiler ! {self (), stop}, 29 Tester ! stop;30 { Compiler, compiler, {{binaries, Bs}, {removed, Rs}}} ->38 Tester ! {self (), stop}; 39 {notify, {Compiler, compiler, {{binaries, Bs}, {removed, Rs}}}} -> 31 40 delete (Rs, Tester), 32 41 run (Bs, Tester), 33 loop ( Compiler, Tester, Printer);34 Event->42 loop ({Compiler, Tester, Printer}); 43 {notify, Event} -> 35 44 Printer ! Event, 36 loop ( Compiler, Tester, Printer)45 loop ({Compiler, Tester, Printer}) 37 46 after 4000 -> 38 47 Compiler ! check, 39 loop (Compiler, Tester, Printer) 48 loop ({Compiler, Tester, Printer}) 49 end. 50 51 run ({Compiler, Tester, Printer}) -> 52 receive 53 {notify, {Compiler, compiler, {{binaries, Bs}, {removed, Rs}}}} -> 54 Compiler ! {self (), stop}, 55 delete (Rs, Tester), 56 run (Bs, Tester), 57 Tester ! {self (), stop}, 58 run ({Compiler, Tester, Printer}); 59 {notify, Event} -> 60 Printer ! Event, 61 run ({Compiler, Tester, Printer}); 62 {Tester, bye} -> 63 done; 64 {_, bye} -> 65 run ({Compiler, Tester, Printer}) 40 66 end. 41 67 -
trunk/src/tester.erl
r73 r89 15 15 loop (State) -> 16 16 receive 17 {notify, Message} ->18 Notify = dict: fetch (notify, State),19 Notify (Message),20 loop (State);21 17 {delete, Modules} -> 22 loop (test (unload (Modules, State))); 23 {runner_end, New_state} -> 24 loop (New_state); 18 test (unload (Modules, State)); 25 19 {run, Modules} -> 26 loop (test (load (Modules, State))) 20 test (load (Modules, State)); 21 {Pid, stop} -> 22 Pid ! {self (), bye} 27 23 end. 28 24 … … 51 47 end, 52 48 Test_session = spawn (Test_session_fun), 53 dict: store (test_session, Test_session, State_without_pid). 49 dict: store (test_session, Test_session, State_without_pid), 50 loop (receive {runner_end, New_state} -> New_state end). 54 51 55 52 stop_running_session (State) -> -
trunk/src/tester_test.erl
r86 r89 28 28 deletes_a_module (Node, Root), 29 29 deletes_a_test_module (Node, Root), 30 notifies_a_message (Node, Root),31 30 runs_new_tests_failed_then_successful (Node, Root), 31 stops (Node, Root), 32 32 ok 33 33 end. … … 104 104 ok. 105 105 106 notifies_a_message (Node, _) ->107 Tester = spawn_link (tester, init, [notify_me (), Node]),108 Test_message = "this is a message",109 Tester ! {notify, Test_message},110 [Test_message] = receive_something ([], 1),111 ok.112 113 106 runs_new_tests_failed_then_successful (Node, Root) -> 114 107 Tester = spawn_link (tester, init, [notify_me (), Node]), … … 125 118 ok. 126 119 127 receive_something (Ms, Delay) -> 128 receive 129 M -> 130 receive_something ([M|Ms], Delay) 131 after Delay -> 132 lists: reverse (Ms) 133 end. 134 120 stops (Node, Root) -> 121 Tester = spawn_link (tester, init, [notify_me (), Node]), 122 Modules = [eg_code, eg_test_of_code], 123 Paths = [modules: to_file_name (M, Root) || M <- Modules], 124 Binaries = [modules: to_binary (P) || P <- Paths], 125 Tester ! {run, Binaries}, 126 Tester ! {self (), stop}, 127 Results = receive_all ([]), 128 [{1, 0, 0}, {1, 1, 1}] = Results, 129 ok = receive {Tester, bye} -> ok after 100 -> timeout end. 130 135 131 receive_all (Ms) -> 136 132 receive
Note: See TracChangeset
for help on using the changeset viewer.
