##################################### # Tests for Sysadm::Install/s untar() ##################################### use Test::More; use Sysadm::Install qw(:all); use File::Spec; use File::Path; #use Log::Log4perl qw(:easy); #Log::Log4perl->easy_init($DEBUG); BEGIN { eval { require Archive::Tar; }; if ($@) { plan skip_all => "Skipping Archive::Tar tests (not installed)"; } else { plan tests => 9; } } my $TEST_DIR = "."; $TEST_DIR = "t" if -d 't'; ##################################################################### # Test unzipped tar ##################################################################### my $tarfile = File::Spec->catfile($TEST_DIR, "canned", "test.tar"); untar($tarfile); ok(-d "test", "Untarred directory 'test' exists"); is(readfile("test/a"), "file-a\n", "Testing file a in tar archive"); is(readfile("test/b"), "file-b\n", "Testing file b in tar archive"); ############## sub readfile { ############## open FILE, "<$_[0]" or die "Cannot open $_[0]"; my $data = join '', ; close FILE; return $data; } rmtree "test"; ##################################################################### # Test zipped tar ##################################################################### $tarfile = File::Spec->catfile($TEST_DIR, "canned", "test.tar"); untar($tarfile); ok(-d "test", "Untarred directory 'test' exists"); is(readfile("test/a"), "file-a\n", "Testing file a in tar archive"); is(readfile("test/b"), "file-b\n", "Testing file b in tar archive"); rmtree "test"; ##################################################################### # Test zipped tar with different top dir ##################################################################### $tarfile = File::Spec->catfile($TEST_DIR, "canned", "testa.tar"); untar($tarfile); ok(-d "testa", "Untarred directory 'testa' exists"); is(readfile("testa/a"), "file-a\n", "Testing file a in tar archive"); is(readfile("testa/b"), "file-b\n", "Testing file b in tar archive"); rmtree "testa";