#!/usr/bin/perl use Test::More; use strict; use warnings; use lib "../blib/arch"; use lib "../blib/lib"; BEGIN { plan tests => 52 } use File::Basename; use File::Spec::Functions qw(catdir catfile splitdir tmpdir); use Mac::Files; use MacPerl 'MakePath'; my(@rm_files, @rm_dirs); END { unlink @rm_files; rmdir for reverse @rm_dirs; } SKIP: { # skip "Mac::Files", 52; # 0 my $dir = tmpdir(); # 0 my $dir1 = catdir($dir, "f" . ("o" x 30)); my $file1 = catdir($dir1, "a"); push @rm_dirs, $dir1; push @rm_files, $file1; my($type, $creator, $creator1) = ('TEXT', 'R*ch', 'MPS '); ok(FSpDirCreate($dir1), "FSpDirCreate: $dir"); ok(-d $dir1, "dir exists"); ok(FSpCreate($file1, $creator, $type), "FSpCreate"); ok(-f $file1, "file exists"); # 4 ok(my $ci = FSpGetCatInfo($dir1), "FSpGetCatInfo"); ok(my $file2 = FSMakeFSSpec($ci->ioVRefNum, $ci->ioDrDirID, "b"), "FSMakeFSSpec"); push @rm_files, MakePath($file2); ok(FSpCreate($file2, $creator, $type), "FSpCreate"); ok(-f MakePath($file2), "file exists"); # 8 my @stat = stat $dir1; my $ntime = time + 3600; my $x = $ci->ioDrMdDat; my $y = $stat[9]; ok( (($x == $y) || ($x == $y + 1) || ($x == $y - 1)), "check ioDrMdDat"); ok($ci->ioDrMdDat($ntime), "set ioDrMdDat"); ok(FSpSetCatInfo($dir1, $ci), "FSpSetCatInfo"); ok($ci = FSpGetCatInfo($dir1), "FSpGetCatInfo"); @stat = stat $dir1; $x = $ci->ioDrMdDat; $y = $stat[9]; my $z = $ntime; ok( (($x == $y) || ($x == $y + 1) || ($x == $y - 1)), "check ioDrMdDat"); ok( (($x == $z) || ($x == $z + 1) || ($x == $z - 1)), "check ioDrMdDat"); # 14 ok(my $fi = FSpGetFInfo($file1), "FSpGetFInfo"); is($fi->fdType, $type, "check fdType"); is($fi->fdCreator, $creator, "check fdCreator"); ok($fi->fdCreator($creator1), "set fdCreator"); ok(FSpSetFInfo($file1, $fi), "FSpSetFInfo"); ok($fi = FSpGetFInfo($file1), "FSpGetFInfo"); is($fi->fdCreator, $creator1, "check fdCreator"); # 21 ok($ci = FSpGetCatInfo($file1), "FSpGetCatInfo"); is($ci->ioFlAttrib & kioFlAttribLocked, 0, "! kioFlAttribLocked"); ok(FSpSetFLock($file1), "FSpSetFLock"); ok($ci = FSpGetCatInfo($file1), "FSpGetCatInfo"); is($ci->ioFlAttrib & kioFlAttribLocked, 1, "kioFlAttribLocked"); ok(FSpRstFLock($file1), "FSpRstFLock"); ok($ci = FSpGetCatInfo($file1), "FSpGetCatInfo"); is($ci->ioFlAttrib & kioFlAttribLocked, 0, "! kioFlAttribLocked"); # 29 my $file3 = catfile($dir1, "c"); push @rm_files, $file3; ok(FSpRename($file1, "c"), "FSpRename"); ok(-e $file3, "file exists"); # 31 my $dir2 = catdir($dir1, "f" . ("o" x 30)); my $file4 = catfile($dir2, "c"); push @rm_dirs, $dir2; push @rm_files, $file4; ok(FSpDirCreate($dir2), "FSpDirCreate"); ok(-d $dir2, "dir exists"); ok(FSpCatMove($file3, $dir2), "FSpCatMove"); ok(-f $file4, "file exists"); # 35 ok(open(my $fh1, ">", MakePath($file2)), "open file"); ok(open(my $fh2, "> $file4"), "open file"); ok(print($fh1 "foo\n"), "print value"); ok(print($fh2 "bar\n"), "print value"); ok(close($fh1), "close file"); ok(close($fh2), "close file"); ok(FSpExchangeFiles($file2, $file4), "FSpExchangeFiles"); # 42 ok(open($fh1, "<", MakePath($file2)), "open file"); ok(open($fh2, "< $file4"), "open file"); is(scalar <$fh1>, "bar\n", "check value"); is(scalar <$fh2>, "foo\n", "check value"); ok(close($fh1), "close file"); ok(close($fh2), "close file"); # 48 ok(FSpDelete($file2), "FSpDelete"); ok(!FSpDelete($file2), "FSpDelete"); ok(FSpDelete($file4), "FSpDelete"); ok(!FSpDelete($file4), "FSpDelete"); } #SKIP: { # skip "Mac::Files Unix2Mac", 1; # *Unix2Mac = *Mac::Files::_Unix2Mac{CODE}; #} #SKIP: { # skip "Mac::Files misc.", 1; # UnmountVol # Eject # FlushVol #} __END__