git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] archive: add test testing MIME for created archive through compression filter
@ 2021-10-11 11:27 Bagas Sanjaya
  2021-10-11 15:48 ` Junio C Hamano
  2021-10-11 15:53 ` Junio C Hamano
  0 siblings, 2 replies; 6+ messages in thread
From: Bagas Sanjaya @ 2021-10-11 11:27 UTC (permalink / raw)
  To: git; +Cc: René Scharfe, Jeff King, Bagas Sanjaya

The common use of `tar.<format>.command` config is to specify
compression program filter for creating compressed tar archive.

Add a test that tests MIME type of archives created through the filter.
The generated archives must not be `application/x-tar` (POSIX tar
archive) type, so that these can be decompressed with the corresponding
decompression program (such as gunzip, bunzip2, and unxz).

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---
 t/t5000-tar-tree.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh
index 2c88d1c159..04cdad5bff 100755
--- a/t/t5000-tar-tree.sh
+++ b/t/t5000-tar-tree.sh
@@ -38,6 +38,8 @@ test_lazy_prereq TAR_NEEDS_PAX_FALLBACK '
 '
 
 test_lazy_prereq GZIP 'gzip --version'
+test_lazy_prereq BZIP2 'bzip2 --version'
+test_lazy_prereq XZ 'xz --version'
 
 get_pax_header() {
 	file=$1
@@ -374,6 +376,21 @@ test_expect_success GZIP 'remote tar.gz can be disabled' '
 		>remote.tar.gz
 '
 
+test_expect_success GZIP,BZIP2,XZ 'git archive with gzip, bzip2, and xz filters creates compressed tar archive with proper MIME type' '
+	git config tar.tar.bz2.command "bzip2 -c" &&
+	git config tar.tar.xz.command "xz -c" &&
+	git archive --output HEAD.tar.gz --prefix=src/ HEAD &&
+	git archive --output HEAD.tar.bz2 --prefix=src/ HEAD &&
+	git archive --output HEAD.tar.xz --prefix=src/ HEAD &&
+	cat >expect <<EOF &&
+HEAD.tar.bz2: application/x-bzip2; charset=binary
+HEAD.tar.gz:  application/gzip; charset=binary
+HEAD.tar.xz:  application/x-xz; charset=binary
+EOF
+	file -i HEAD.tar.bz2 HEAD.tar.gz HEAD.tar.xz 2>/dev/null >actual &&
+	test_cmp expect actual
+'
+
 test_expect_success 'archive and :(glob)' '
 	git archive -v HEAD -- ":(glob)**/sh" >/dev/null 2>actual &&
 	cat >expect <<EOF &&

base-commit: 106298f7f9cca4158a980de149ef217751e1f943
-- 
An old man doll... just what I always wanted! - Clara


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-10-12 19:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-11 11:27 [PATCH] archive: add test testing MIME for created archive through compression filter Bagas Sanjaya
2021-10-11 15:48 ` Junio C Hamano
2021-10-11 15:53 ` Junio C Hamano
2021-10-11 16:07   ` Jeff King
2021-10-12  3:14   ` Bagas Sanjaya
2021-10-12 19:15     ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).