Ignore:
Timestamp:
07/17/09 13:31:39 (3 years ago)
Author:
dom
Message:

Fixed more bugs in directory_watcher.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/directory_watcher_test.erl

    r75 r80  
    1717-export ([change_from_file_to_directory_when_recursive/0]). 
    1818-export ([remove_and_add_in_same_check/0]). 
     19-export ([insensitive_to_cwd/0]). 
     20-export ([can_replace_all_in_same_check/0]). 
     21-export ([can_find_two_at_a_time/0]). 
     22-export([tree/0]). 
    1923 
    2024tests_from_empty () -> 
     
    7175remove_and_add_in_same_check () ->     
    7276    F = fun remove_and_add_in_same_check/2, 
     77    ok = fixtures: use_tree ([{file, "foo", "foo"}], F). 
     78 
     79insensitive_to_cwd () -> 
     80    Watcher = spawn_link (directory_watcher, init, ["/home/dom/forge/fix", send_me ()]), 
     81    receive_all (), 
     82    ok = file: set_cwd ("/tmp"), 
     83    Watcher ! check, 
     84    true = is_process_alive (Watcher), 
     85    [] = receive_all (), 
     86    ok. 
     87 
     88can_replace_all_in_same_check () -> 
     89    Tree = [{file, X, X} || X <- ["foo", "bar", "baz"]], 
     90    F = fun can_replace_all_in_same_check/2, 
     91    ok = fixtures: use_tree (Tree, F). 
     92 
     93can_find_two_at_a_time () -> 
     94    F = fun can_find_two_at_a_time/2, 
    7395    ok = fixtures: use_tree ([{file, "foo", "foo"}], F). 
    7496 
     
    267289    ok = file: write_file (Bar, list_to_binary ("bar")), 
    268290    Watcher ! check, 
    269     [{{file, ""}, Foo, lost}, 
    270      {{file, ""}, Bar, found}] = receive_all (), 
    271     ok. 
    272      
     291    [{{file, ""}, Bar, found}, 
     292     {{file, ""}, Foo, lost}] = receive_all (), 
     293    ok. 
     294     
     295can_replace_all_in_same_check (Root, Tree) -> 
     296    Watcher = spawn_link (directory_watcher, init, [Root, send_me ()]), 
     297    receive_all (), 
     298    Replace = fun ({file, F, _}) -> 
     299                     Old = filename: join (Root, F), 
     300                     ok = file: delete (Old), 
     301                      New = filename: join (Root, F ++ F), 
     302                      ok = file: write_file (New, "hello") 
     303             end, 
     304    ok = lists: foreach (Replace, Tree), 
     305    Watcher ! check, 
     306    Lost_files = [filename: join (Root, X) || {file, X, _} <- Tree], 
     307    Found_files = [filename: join (Root, X++X) || {file, X, _} <- Tree], 
     308    Lost = [{{file, ""}, X, lost} || X <- Lost_files], 
     309    Found = [{{file, ""}, X, found} || X <- Found_files], 
     310    Expected = lists: sort (Lost ++ Found), 
     311    Received = lists: sort (receive_all ()), 
     312    {Expected, Expected} = {Expected, Received}, 
     313    ok. 
     314 
     315can_find_two_at_a_time (Root, _) -> 
     316    Watcher = spawn_link (directory_watcher, init, [Root, send_me ()]), 
     317    receive_all (), 
     318    [Bar, Baz] = [filename: join (Root, X) || X <- ["bar", "baz"]], 
     319    ok = file: write_file (Bar, "bar"), 
     320    ok = file: write_file (Baz, "baz"), 
     321    Watcher ! check, 
     322    Found = [{{file, ""}, X, found} || X <- [Bar, Baz]], 
     323    Expected = lists: sort (Found), 
     324    Received = lists: sort (receive_all ()), 
     325    {Expected, Expected} = {Expected, Received}, 
     326    ok. 
    273327 
    274328send_me () -> 
Note: See TracChangeset for help on using the changeset viewer.