This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: files not cleaned even by veryclean
[perl5.git] / t / lib / filecopy.t
CommitLineData
1a3850a5
GA
1#!./perl
2
3BEGIN {
4 chdir 't' if -d 't';
93430cb4 5 unshift @INC, '../lib';
1a3850a5
GA
6}
7
1a3850a5
GA
8$| = 1;
9
1a04d035
A
10my @pass = (0,1);
11my $tests = 11;
12printf "1..%d\n", $tests * scalar(@pass);
13
1a3850a5
GA
14use File::Copy;
15
1a04d035
A
16for my $pass (@pass) {
17
18 require File::Copy;
19
20 my $loopconst = $pass*$tests;
21
22 # First we create a file
23 open(F, ">file-$$") or die;
24 binmode F; # for DOSISH platforms, because test 3 copies to stdout
25 printf F "ok %d\n", 3 + $loopconst;
26 close F;
27
28 copy "file-$$", "copy-$$";
29
30 open(F, "copy-$$") or die;
31 $foo = <F>;
32 close(F);
33
34 print "not " if -s "file-$$" != -s "copy-$$";
35 printf "ok %d\n", 1 + $loopconst;
36
37 print "not " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
38 printf "ok %d\n", 2+$loopconst;
39
40 binmode STDOUT unless $^O eq 'VMS'; # Copy::copy works in binary mode
41 copy "copy-$$", \*STDOUT;
42 unlink "copy-$$" or die "unlink: $!";
43
44 open(F,"file-$$");
45 copy(*F, "copy-$$");
46 open(R, "copy-$$") or die "open copy-$$: $!"; $foo = <R>; close(R);
47 print "not " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
48 printf "ok %d\n", 4+$loopconst;
49 unlink "copy-$$" or die "unlink: $!";
50 open(F,"file-$$");
51 copy(\*F, "copy-$$");
52 close(F) or die "close: $!";
53 open(R, "copy-$$") or die; $foo = <R>; close(R) or die "close: $!";
54 print "not " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
55 printf "ok %d\n", 5+$loopconst;
56 unlink "copy-$$" or die "unlink: $!";
57
58 require IO::File;
59 $fh = IO::File->new(">copy-$$") or die "Cannot open copy-$$:$!";
60 binmode $fh or die;
61 copy("file-$$",$fh);
62 $fh->close or die "close: $!";
63 open(R, "copy-$$") or die; $foo = <R>; close(R);
64 print "# foo=`$foo'\nnot " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
65 printf "ok %d\n", 6+$loopconst;
66 unlink "copy-$$" or die "unlink: $!";
67 require FileHandle;
68 my $fh = FileHandle->new(">copy-$$") or die "Cannot open copy-$$:$!";
69 binmode $fh or die;
70 copy("file-$$",$fh);
71 $fh->close;
72 open(R, "copy-$$") or die; $foo = <R>; close(R);
73 print "not " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
74 printf "ok %d\n", 7+$loopconst;
75 unlink "file-$$" or die "unlink: $!";
76
77 print "# moved missing file.\nnot " if move("file-$$", "copy-$$");
78 print "# target disappeared.\nnot " if not -e "copy-$$";
79 printf "ok %d\n", 8+$loopconst;
80
81 move "copy-$$", "file-$$" or print "# move did not succeed.\n";
82 print "# not moved: $!\nnot " unless -e "file-$$" and not -e "copy-$$";
83 open(R, "file-$$") or die; $foo = <R>; close(R);
84 print "# foo=`$foo'\nnot " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
85 printf "ok %d\n", 9+$loopconst;
86
87 copy "file-$$", "lib";
88 open(R, "lib/file-$$") or die; $foo = <R>; close(R);
89 print "not " unless $foo eq sprintf "ok %d\n", 3+$loopconst;
90 printf "ok %d\n", 10+$loopconst;
91 unlink "lib/file-$$" or die "unlink: $!";
92
93 move "file-$$", "lib";
94 open(R, "lib/file-$$") or die "open lib/file-$$: $!"; $foo = <R>; close(R);
95 print "not " unless $foo eq sprintf("ok %d\n", 3+$loopconst)
96 and not -e "file-$$";;
97 printf "ok %d\n", 11+$loopconst;
98 unlink "lib/file-$$" or die "unlink: $!";
99
100 # warn sprintf "INC->".$INC{"File/Copy.pm"};
101 delete $INC{"File/Copy.pm"};
102
103}
104
441496b2 105
cfcb0b09
JH
106END {
107 1 while unlink "file-$$";
108 1 while unlink "lib/file-$$";
109}