Changeset 49
- Timestamp:
- 04/14/09 12:56:28 (3 years ago)
- Location:
- trunk/src
- Files:
-
- 2 edited
-
directory_watcher.erl (modified) (1 diff)
-
directory_watcher_test.erl (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/directory_watcher.erl
r48 r49 28 28 29 29 read_state (Filename, State) -> 30 {ok, Info} = file: read_file_info (Filename), 31 [{Filename, value (Info#file_info.type, Filename)} | State]. 30 case file: read_file_info (Filename) of 31 {ok, Info} -> 32 [{Filename, value (Info#file_info.type, Filename)} | State]; 33 _ -> 34 State 35 end. 32 36 33 37 value (regular, Filename) -> -
trunk/src/directory_watcher_test.erl
r48 r49 1 %%% Copyright (C) 2009 Dominic Williams 1 %%% Copyright (C) 2009 Dominic Williams, Nicolas Charpentier 2 2 %%% All rights reserved. 3 3 %%% See file COPYING. … … 7 7 -export ([tests_from_empty/0]). 8 8 -export ([tests_from_non_existent/0]). 9 -export ([tests_with_several/0]). 10 -export ([bad_symlinks_are_ignored/0]). 9 11 10 12 tests_from_empty () -> … … 25 27 ok. 26 28 29 tests_with_several () -> 30 Tree = [{file, "foo.txt", "Hello"}, 31 {file, "bar.txt", "G'day"}, 32 {file, "toto.erl", "-module(toto)."}], 33 ok = fixtures: use_tree (Tree, fun tests_with_several/2). 34 35 bad_symlinks_are_ignored () -> 36 ok = fixtures: use_tree ([], fun bad_symlinks_are_ignored/2). 37 38 bad_symlinks_are_ignored (Dir, _) -> 39 Watcher = spawn_link (directory_watcher, init, [Dir, notify (), ignore]), 40 Link = filename: join (Dir, "titi.erl"), 41 Destination = filename: join (Dir, "nofile"), 42 case file: make_symlink (Destination, Link) of 43 ok -> 44 Watcher ! check, 45 timeout = receive_one (); 46 {error, enotsup} -> 47 ok 48 end, 49 ok. 50 27 51 tests_from_empty (Dir, []) -> 28 52 State = make_ref (), … … 50 74 {watcher, unknown, Subdir, lost, State} = receive_one (), 51 75 76 rewrite_same_data (Filename), 77 Watcher ! check, 78 timeout = receive_one (), 79 52 80 ok = file: write_file (Filename, list_to_binary ("Bye")), 53 81 Watcher ! check, … … 58 86 {Watcher, bye} = receive_one (), 59 87 false = is_process_alive (Watcher), 88 ok. 89 90 rewrite_same_data (Filename) -> 91 ok = file: write_file (Filename, list_to_binary ("Hello")). 92 93 tests_with_several (Dir, Tree) -> 94 [Foo, Bar, Toto] = [filename: join (Dir, Name) || {file, Name, _} <- Tree], 95 State = make_ref (), 96 Watcher = spawn_link (directory_watcher, init, [Dir, notify (), State]), 97 {watcher, {file, ".txt"}, Bar, found, State} = receive_one (), 98 {watcher, {file, ".txt"}, Foo, found, State} = receive_one (), 99 {watcher, {file, ".erl"}, Toto, found, State} = receive_one (), 100 101 ok = file: write_file (Foo, list_to_binary ("Bye")), 102 Watcher ! check, 103 {watcher, {file, ".txt"}, Foo, changed, State} = receive_one (), 104 105 ok = file: write_file (Foo, list_to_binary ("Not yet")), 106 ok = file: write_file (Bar, list_to_binary ("Bye")), 107 Watcher ! check, 108 {watcher, {file, ".txt"}, Bar, changed, State} = receive_one (), 109 Watcher ! check, 110 {watcher, {file, ".txt"}, Foo, changed, State} = receive_one (), 60 111 ok. 61 112
Note: See TracChangeset
for help on using the changeset viewer.
