The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
BEGIN { chdir 't' if -d 't' }

use Test::More;
use strict;
use lib '../lib';

use File::Spec ();
use File::Temp qw( tempfile );

use Archive::Tar;

# tarballs available for testing
my @archives = (
  [qw( src short bar.tar )],
  [qw( src long bar.tar )],
  [qw( src linktest linktest_with_dir.tar )],
);
push @archives,
  [qw( src short foo.tgz )],
  [qw( src long foo.tgz )]
  if Archive::Tar->has_zlib_support;
push @archives,
  [qw( src short foo.tbz )],
  [qw( src long foo.tbz )]
  if Archive::Tar->has_bzip2_support;

@archives = map File::Spec->catfile(@$_), @archives;

plan tests => scalar @archives;

# roundtrip test
for my $archive (@archives) {

      # create a new tarball with the same content as the old one
      my $old = Archive::Tar->new($archive);
      my $new = Archive::Tar->new();
      $new->add_files( $old->get_files );

      # save differently if compressed
      my $ext = ( split /\./, $archive )[-1];
      my @compress =
          $ext =~ /t?gz$/       ? (COMPRESS_GZIP)
        : $ext =~ /(tbz|bz2?)$/ ? (COMPRESS_BZIP)
        : ();

      my ( $fh, $filename ) = tempfile( UNLINK => 1 );
      $new->write( $filename, @compress );

      # read the archive again from disk
      $new = Archive::Tar->new($filename);

      TODO: {
        local $TODO = 'Need to work out why no trailing slash';

      # compare list of files
      is_deeply(
          [ $new->list_files ],
          [ $old->list_files ],
          "$archive roundtrip on file names"
      );
      };
}