|
@@ -3409,7 +3409,7 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
|
|
|
os.unlink('input/flagfile')
|
|
|
self.cmd('init', '--encryption=repokey', self.repository_location)
|
|
|
self.cmd('create', self.repository_location + '::test', 'input')
|
|
|
- self.cmd('export-tar', self.repository_location + '::test', 'simple.tar', '--progress')
|
|
|
+ self.cmd('export-tar', self.repository_location + '::test', 'simple.tar', '--progress', '--tar-format=GNU')
|
|
|
with changedir('output'):
|
|
|
# This probably assumes GNU tar. Note -p switch to extract permissions regardless of umask.
|
|
|
subprocess.check_call(['tar', 'xpf', '../simple.tar', '--warning=no-timestamp'])
|
|
@@ -3424,7 +3424,8 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
|
|
|
os.unlink('input/flagfile')
|
|
|
self.cmd('init', '--encryption=repokey', self.repository_location)
|
|
|
self.cmd('create', self.repository_location + '::test', 'input')
|
|
|
- list = self.cmd('export-tar', self.repository_location + '::test', 'simple.tar.gz', '--list')
|
|
|
+ list = self.cmd('export-tar', self.repository_location + '::test', 'simple.tar.gz',
|
|
|
+ '--list', '--tar-format=GNU')
|
|
|
assert 'input/file1\n' in list
|
|
|
assert 'input/dir2\n' in list
|
|
|
with changedir('output'):
|
|
@@ -3439,7 +3440,8 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
|
|
|
os.unlink('input/flagfile')
|
|
|
self.cmd('init', '--encryption=repokey', self.repository_location)
|
|
|
self.cmd('create', self.repository_location + '::test', 'input')
|
|
|
- list = self.cmd('export-tar', self.repository_location + '::test', 'simple.tar', '--strip-components=1', '--list')
|
|
|
+ list = self.cmd('export-tar', self.repository_location + '::test', 'simple.tar',
|
|
|
+ '--strip-components=1', '--list', '--tar-format=GNU')
|
|
|
# --list's path are those before processing with --strip-components
|
|
|
assert 'input/file1\n' in list
|
|
|
assert 'input/dir2\n' in list
|
|
@@ -3451,7 +3453,8 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
|
|
|
@requires_gnutar
|
|
|
def test_export_tar_strip_components_links(self):
|
|
|
self._extract_hardlinks_setup()
|
|
|
- self.cmd('export-tar', self.repository_location + '::test', 'output.tar', '--strip-components=2')
|
|
|
+ self.cmd('export-tar', self.repository_location + '::test', 'output.tar',
|
|
|
+ '--strip-components=2', '--tar-format=GNU')
|
|
|
with changedir('output'):
|
|
|
subprocess.check_call(['tar', 'xpf', '../output.tar', '--warning=no-timestamp'])
|
|
|
assert os.stat('hardlink').st_nlink == 2
|
|
@@ -3463,7 +3466,7 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
|
|
|
@requires_gnutar
|
|
|
def test_extract_hardlinks_tar(self):
|
|
|
self._extract_hardlinks_setup()
|
|
|
- self.cmd('export-tar', self.repository_location + '::test', 'output.tar', 'input/dir1')
|
|
|
+ self.cmd('export-tar', self.repository_location + '::test', 'output.tar', 'input/dir1', '--tar-format=GNU')
|
|
|
with changedir('output'):
|
|
|
subprocess.check_call(['tar', 'xpf', '../output.tar', '--warning=no-timestamp'])
|
|
|
assert os.stat('input/dir1/hardlink').st_nlink == 2
|
|
@@ -3471,26 +3474,26 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
|
|
|
assert os.stat('input/dir1/aaaa').st_nlink == 2
|
|
|
assert os.stat('input/dir1/source2').st_nlink == 2
|
|
|
|
|
|
- def test_import_tar(self):
|
|
|
+ def test_import_tar(self, tar_format='PAX'):
|
|
|
self.create_test_files()
|
|
|
os.unlink('input/flagfile')
|
|
|
self.cmd('init', '--encryption=none', self.repository_location)
|
|
|
self.cmd('create', self.repository_location + '::src', 'input')
|
|
|
- self.cmd('export-tar', self.repository_location + '::src', 'simple.tar')
|
|
|
+ self.cmd('export-tar', self.repository_location + '::src', 'simple.tar', f'--tar-format={tar_format}')
|
|
|
self.cmd('import-tar', self.repository_location + '::dst', 'simple.tar')
|
|
|
with changedir(self.output_path):
|
|
|
self.cmd('extract', self.repository_location + '::dst')
|
|
|
self.assert_dirs_equal('input', 'output/input', ignore_ns=True, ignore_xattrs=True)
|
|
|
|
|
|
@requires_gzip
|
|
|
- def test_import_tar_gz(self):
|
|
|
+ def test_import_tar_gz(self, tar_format='GNU'):
|
|
|
if not shutil.which('gzip'):
|
|
|
pytest.skip('gzip is not installed')
|
|
|
self.create_test_files()
|
|
|
os.unlink('input/flagfile')
|
|
|
self.cmd('init', '--encryption=none', self.repository_location)
|
|
|
self.cmd('create', self.repository_location + '::src', 'input')
|
|
|
- self.cmd('export-tar', self.repository_location + '::src', 'simple.tgz')
|
|
|
+ self.cmd('export-tar', self.repository_location + '::src', 'simple.tgz', f'--tar-format={tar_format}')
|
|
|
self.cmd('import-tar', self.repository_location + '::dst', 'simple.tgz')
|
|
|
with changedir(self.output_path):
|
|
|
self.cmd('extract', self.repository_location + '::dst')
|