git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] archive: add test testing MIME for created archive through compression filter

From
Bagas Sanjaya <bagasdotme@gmail.com>
Date
Oct 11, 2021, 11:27 UTC
Message-ID
<20211011112712.475306-1-bagasdotme@gmail.com>

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
Next: Junio C Hamano
Message 1 of 6 in “archive: add test testing MIME for created archive through compression filter”
  1. archive: add test testing MIME for created archive through compression filterBagas Sanjaya, Oct 11, 2021
  2. Junio C HamanoOct 11, 2021
  3. Junio C HamanoOct 11, 2021
  4. Jeff KingOct 11, 2021
  5. Bagas SanjayaOct 12, 2021
  6. Junio C HamanoOct 12, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.