use strict; use warnings FATAL => 'all'; use Apache::Test; use Apache::TestUtil qw/t_start_file_watch t_read_file_watch t_finish_file_watch t_write_file t_append_file t_catfile t_cmp/; plan tests => 11; my $fn=t_catfile(Apache::Test::vars->{t_logs}, 'watch'); unlink $fn; t_start_file_watch 'watch'; t_write_file $fn, "1\n2\n"; ok t_cmp [t_read_file_watch 'watch'], ["1\n", "2\n"], "t_read_file_watch on previously non-existing file"; t_append_file $fn, "3\n4\n"; ok t_cmp [t_read_file_watch 'watch'], ["3\n", "4\n"], "subsequent t_read_file_watch"; t_append_file $fn, "5\n6\n"; ok t_cmp [t_finish_file_watch 'watch'], ["5\n", "6\n"], "subsequent t_finish_file_watch"; ok t_cmp [t_finish_file_watch 'watch'], ["1\n","2\n","3\n","4\n","5\n","6\n"], "t_finish_file_watch w/o start"; ok t_cmp [t_read_file_watch 'watch'], ["1\n","2\n","3\n","4\n","5\n","6\n"], "t_read_file_watch w/o start"; ok t_cmp [t_read_file_watch 'watch'], [], "subsequent t_read_file_watch"; t_append_file $fn, "7\n8\n"; unlink $fn; ok t_cmp [t_read_file_watch 'watch'], ["7\n","8\n"], "subsequent t_read_file_watch file unlinked"; t_write_file $fn, "1\n2\n3\n4\n5\n6\n7\n8\n"; ok t_cmp [t_finish_file_watch 'watch'], [], "subsequent t_finish_file_watch - new file exists but fh is cached"; t_start_file_watch 'watch'; ok t_cmp [t_read_file_watch 'watch'], [], "t_read_file_watch at EOF"; # Make sure the file is closed before deleting it on Windows. t_finish_file_watch 'watch' if $^O eq 'MSWin32'; unlink $fn; t_start_file_watch 'watch'; t_write_file $fn, "1\n2\n3\n4\n5\n6\n7\n8\n"; { local $/=\4; ok t_cmp [scalar t_read_file_watch 'watch'], ["1\n2\n"], "t_read_file_watch fixed record length / scalar context"; ok t_cmp [t_finish_file_watch 'watch'], ["3\n4\n","5\n6\n","7\n8\n"], "t_finish_file_watch fixed record length"; }