about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
authorTodd Zullinger <tmz@pobox.com>2020-12-29T19·18-0500
committerVincent Ambo <mail@tazj.in>2021-09-21T11·14+0300
commit35630558ffe10b02030894a87d41cd24572ea15f (patch)
treefe48a735a98505c235d0453f3ecf338bd61bd630 /third_party
parent44996c446110e6c3ff88d2869b475e9a8e82ab7a (diff)
test(3p/cgit): t0107: support older and/or non-GNU tar r/2897
The untar tests for various compression algorithms use shortcut options
from GNU tar to handle decompression.  These options may not be provided
by non-GNU tar nor even by slightly older GNU tar versions which ship on
many systems.

An example of the latter case is the --zstd option.  This was added in
GNU tar-1.32 (2019-02-23)¹.  This version of tar is not provided by
CentOS/RHEL, in particular.  In Debian, --zstd has been backported to
the tar-1.30 release.

Avoid the requirement on any specific implementations or versions of tar
by piping decompressed output to tar.  This is compatible with older GNU
tar releases as well as tar implementations from other vendors.  (It may
also be a slight benefit that this more closely matches what the
snapshot creation code does.)

¹ Technically, the --zstd option was first released in tar-1.31
  (2019-01-02), but this release was very short-lived and is no longer
  listed on the GNU Tar release page.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Change-Id: Ib65412cd1d23312ddd4cf840c09efc32512d3122
Diffstat (limited to 'third_party')
-rwxr-xr-xthird_party/cgit/tests/t0107-snapshot.sh8
1 files changed, 4 insertions, 4 deletions
diff --git a/third_party/cgit/tests/t0107-snapshot.sh b/third_party/cgit/tests/t0107-snapshot.sh
index 89b9159c04..0811ec4074 100755
--- a/third_party/cgit/tests/t0107-snapshot.sh
+++ b/third_party/cgit/tests/t0107-snapshot.sh
@@ -25,7 +25,7 @@ test_expect_success 'verify gzip format' '
 
 test_expect_success 'untar' '
 	rm -rf master &&
-	tar -xzf master.tar.gz
+	gzip -dc master.tar.gz | tar -xf -
 '
 
 test_expect_success 'count files' '
@@ -66,7 +66,7 @@ test_expect_success LZIP 'verify lzip format' '
 
 test_expect_success LZIP 'untar' '
 	rm -rf master &&
-	tar --lzip -xf master.tar.lz
+	lzip -dc master.tar.lz | tar -xf -
 '
 
 test_expect_success LZIP 'count files' '
@@ -107,7 +107,7 @@ test_expect_success XZ 'verify xz format' '
 
 test_expect_success XZ 'untar' '
 	rm -rf master &&
-	tar --xz -xf master.tar.xz
+	xz -dc master.tar.xz | tar -xf -
 '
 
 test_expect_success XZ 'count files' '
@@ -148,7 +148,7 @@ test_expect_success ZSTD 'verify zstd format' '
 
 test_expect_success ZSTD 'untar' '
 	rm -rf master &&
-	tar --zstd -xf master.tar.zst
+	zstd -dc master.tar.zst | tar -xf -
 '
 
 test_expect_success ZSTD 'count files' '