9 our @TEST = stat "TEST";
10 our @README = stat "README";
11 unless (@TEST && @README) {
12 print "1..0 # Skip: no file TEST or README\n";
19 use File::Compare qw(compare compare_text);
23 # named files, same, existing but different, cause an error
24 print "not " unless compare("README","README") == 0;
27 print "not " unless compare("TEST","README") == 1;
30 print "not " unless compare("README","HLAGHLAG") == -1;
31 # a file which doesn't exist
34 # compare_text, the same file, different but existing files
35 # cause error, test sub form.
36 print "not " unless compare_text("README","README") == 0;
39 print "not " unless compare_text("TEST","README") == 1;
42 print "not " unless compare_text("TEST","HLAGHLAG") == -1;
46 compare_text("README","README",sub {$_[0] ne $_[1]}) == 0;
49 # filehandle and same file
52 open ($fh, "<README") or print "not ";
54 print "not " unless compare($fh,"README") == 0;
59 # filehandle and different (but existing) file.
62 open ($fh, "<README") or print "not ";
64 print "not " unless compare_text($fh,"TEST") == 1;
69 # Different file with contents of known file,
70 # will use File::Temp to do this, skip rest of
71 # tests if this doesn't seem to work
75 require File::Spec; import File::Spec;
76 require File::Path; import File::Path;
77 require File::Temp; import File::Temp qw/ :mktemp unlink0 /;
79 my $template = File::Spec->catfile(File::Spec->tmpdir, 'fcmpXXXX');
80 my($tfh,$filename) = mkstemp($template);
81 # NB. The trailing space is intentional (see [perl #37716])
82 open my $tfhSP, ">", "$filename "
83 or die "Could not open '$filename ' for writing: $!";
97 $donetests[0] = compare($tfh, 'README');
98 $donetests[1] = compare($filename, 'README');
99 unlink0($tfh,$filename);
100 $donetests[2] = compare('README', "$filename ");
103 print "# problem '$@' when testing with a temporary file\n" if $@;
105 if (@donetests == 3) {
106 print "not " unless $donetests[0] == 0;
107 print "ok 11 # fh/file [$donetests[0]]\n";
109 # The open attempt on FROM in File::Compare::compare should fail
110 # on this OS since files are not shared by default.
111 print "not " unless $donetests[1] == -1;
112 print "ok 12 # file/file [$donetests[1]]\n";
115 print "not " unless $donetests[1] == 0;
116 print "ok 12 # file/file [$donetests[1]]\n";
118 print "not " unless $donetests[2] == 0;
119 print "ok 13 # file/fileCR [$donetests[2]]\n";
122 print "ok 11# Skip\nok 12 # Skip\nok 13 # Skip Likely due to File::Temp\n";