Changeset 89 for trunk


Ignore:
Timestamp:
08/07/09 06:22:22 (3 years ago)
Author:
dom
Message:

Made tester stop and added a run_once to directory_tester.

Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/directory_tester.erl

    r85 r89  
    44 
    55-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 
     9run_once ([Directory, Node]) when is_list (Node) -> 
     10    run_once (Directory, list_to_atom (Node)). 
     11 
     12run_once (Directory, Node) -> 
     13    run (start (Directory, Node)). 
    814 
    915init ([Directory, Node]) when is_list (Node) -> 
     
    1117     
    1218init (Directory, Node) -> 
     19    loop (start (Directory, Node)). 
     20 
     21start (Directory, Node) -> 
    1322    Compiler = spawn_link (compiler, init, [notify_me (compiler), Directory]), 
    1423    Tester = spawn_link (tester, init, [notify_me (tester), Node]), 
    1524    Compiler ! check, 
    1625    Printer = spawn_link (text_printer, init, [standard_io]), 
    17     loop (Compiler, Tester, Printer). 
     26    {Compiler, Tester, Printer}. 
    1827 
    1928notify_me (Atom) -> 
    2029    Parent = self (), 
    2130    fun (Event) -> 
    22             Parent ! {self (), Atom, Event} 
     31            Parent ! {notify, {self (), Atom, Event}} 
    2332    end. 
    2433 
    25 loop (Compiler, Tester, Printer) -> 
     34loop ({Compiler, Tester, Printer}) -> 
    2635    receive 
    2736        stop -> 
    2837            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}}}} -> 
    3140            delete (Rs, Tester), 
    3241            run (Bs, Tester), 
    33             loop (Compiler, Tester, Printer); 
    34         Event -> 
     42            loop ({Compiler, Tester, Printer}); 
     43        {notify, Event} -> 
    3544            Printer ! Event, 
    36             loop (Compiler, Tester, Printer) 
     45            loop ({Compiler, Tester, Printer}) 
    3746    after 4000 -> 
    3847            Compiler ! check, 
    39             loop (Compiler, Tester, Printer) 
     48            loop ({Compiler, Tester, Printer}) 
     49    end. 
     50 
     51run ({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}) 
    4066    end. 
    4167 
  • trunk/src/tester.erl

    r73 r89  
    1515loop (State) -> 
    1616    receive 
    17         {notify, Message} -> 
    18             Notify = dict: fetch (notify, State), 
    19             Notify (Message), 
    20             loop (State); 
    2117        {delete, Modules} -> 
    22             loop (test (unload (Modules, State))); 
    23         {runner_end, New_state} -> 
    24             loop (New_state); 
     18            test (unload (Modules, State)); 
    2519        {run, Modules} -> 
    26             loop (test (load (Modules, State))) 
     20            test (load (Modules, State)); 
     21        {Pid, stop} -> 
     22            Pid ! {self (), bye} 
    2723    end. 
    2824 
     
    5147                       end, 
    5248    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). 
    5451 
    5552stop_running_session (State) -> 
  • trunk/src/tester_test.erl

    r86 r89  
    2828            deletes_a_module  (Node, Root), 
    2929            deletes_a_test_module  (Node, Root), 
    30             notifies_a_message  (Node, Root), 
    3130            runs_new_tests_failed_then_successful  (Node, Root), 
     31            stops (Node, Root), 
    3232            ok 
    3333    end. 
     
    104104    ok. 
    105105 
    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  
    113106runs_new_tests_failed_then_successful (Node, Root) -> 
    114107    Tester = spawn_link (tester, init, [notify_me (), Node]), 
     
    125118    ok. 
    126119 
    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  
     120stops (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                  
    135131receive_all (Ms) -> 
    136132    receive 
Note: See TracChangeset for help on using the changeset viewer.