From: "René Scharfe" <rene.scharfe@lsrfire.ath.cx>
To: git discussion list <git@vger.kernel.org>
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 4/4] t5002: check if unzip supports symlinks
Date: Sun, 06 Jan 2013 18:59:39 +0100 [thread overview]
Message-ID: <50E9BB8B.9020101@lsrfire.ath.cx> (raw)
In-Reply-To: <50E9B82D.50005@lsrfire.ath.cx>
Only add a symlink to the repository if both the filesystem and
unzip support symlinks. To check the latter, add a ZIP file
containing a symlink, created like this with InfoZIP zip 3.0:
$ echo sample text >textfile
$ ln -s textfile symlink
$ zip -y infozip-symlinks.zip textfile symlink
If we can extract it successfully, we add a symlink to the test
repository for git archive --format=zip, or otherwise skip that
step. Users can see the skipped test and perhaps run it again
with a different unzip version.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
---
t/t5002-archive-zip.sh | 26 +++++++++++++++++++-------
t/t5002/infozip-symlinks.zip | Bin 0 -> 328 bytes
2 files changed, 19 insertions(+), 7 deletions(-)
create mode 100644 t/t5002/infozip-symlinks.zip
diff --git a/t/t5002-archive-zip.sh b/t/t5002-archive-zip.sh
index ac9c6d4..d35aa24 100755
--- a/t/t5002-archive-zip.sh
+++ b/t/t5002-archive-zip.sh
@@ -12,6 +12,15 @@ test_lazy_prereq UNZIP '
test $? -ne 127
'
+test_lazy_prereq UNZIP_SYMLINKS '
+ (
+ mkdir unzip-symlinks &&
+ cd unzip-symlinks &&
+ "$GIT_UNZIP" "$TEST_DIRECTORY"/t5002/infozip-symlinks.zip &&
+ test -h symlink
+ )
+'
+
check_zip() {
zipfile=$1.zip
listfile=$1.lst
@@ -40,15 +49,18 @@ test_expect_success \
cp /bin/sh a/bin &&
printf "A\$Format:%s\$O" "$SUBSTFORMAT" >a/substfile1 &&
printf "A not substituted O" >a/substfile2 &&
- if test_have_prereq SYMLINKS; then
- ln -s a a/l1
- else
- printf %s a > a/l1
- fi &&
(p=long_path_to_a_file && cd a &&
for depth in 1 2 3 4 5; do mkdir $p && cd $p; done &&
- echo text >file_with_long_path) &&
- (cd a && find .) | sort >a.lst'
+ echo text >file_with_long_path)
+'
+
+test_expect_success SYMLINKS,UNZIP_SYMLINKS 'add symlink' '
+ ln -s a a/symlink_to_a
+'
+
+test_expect_success 'prepare file list' '
+ (cd a && find .) | sort >a.lst
+'
test_expect_success \
'add ignored file' \
diff --git a/t/t5002/infozip-symlinks.zip b/t/t5002/infozip-symlinks.zip
new file mode 100644
index 0000000000000000000000000000000000000000..065728c631cf1f7ab20a045a83abc3e08455eeba
GIT binary patch
literal 328
zcmWIWW@h1H0D(ty)tzkeJdg4K*&xipAj43ST2YdgnUfkC!pXp_F7Y}5gi9;985mh!
zFf%Z)qyW_wC*~I9q$+@vas|Lmdj&M@9kbsh4zNiK4D3MDiYs$-GV`**hM5Bm0%0`6
zU={{=Gcw6B<8qh;&`<^jMj&3&2x7r>g@&*~oQY;CvT2wOgO~;~=j}p2APILS&@e1c
U4De=U11V+#!r4H2I*7vn0CeC%rvLx|
literal 0
HcmV?d00001
--
1.7.12
next prev parent reply other threads:[~2013-01-06 18:00 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-24 20:49 [LHF] making t5000 "tar xf" tests more lenient Junio C Hamano
2013-01-05 18:34 ` René Scharfe
2013-01-05 19:43 ` Junio C Hamano
2013-01-05 20:11 ` Junio C Hamano
2013-01-05 22:50 ` René Scharfe
2013-01-05 22:49 ` [PATCH] archive-tar: split long paths more carefully René Scharfe
2013-01-05 23:31 ` Jonathan Nieder
2013-01-06 6:54 ` Junio C Hamano
2013-01-06 15:20 ` [PATCH] archive-zip: write uncompressed size into header even with streaming René Scharfe
2013-01-06 17:45 ` [PATCH 0/4] ZIP test fixes René Scharfe
2013-01-06 17:47 ` [PATCH 1/4] t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead René Scharfe
2013-01-07 5:16 ` Jonathan Nieder
2013-01-07 16:25 ` René Scharfe
2013-01-06 17:49 ` [PATCH 2/4] t0024, t5000: use test_lazy_prereq for UNZIP René Scharfe
2013-01-06 18:06 ` Matt Kraai
2013-01-06 21:59 ` René Scharfe
2013-01-07 8:45 ` Jonathan Nieder
2013-01-07 16:28 ` René Scharfe
2013-01-06 17:51 ` [PATCH 3/4] t5000, t5002: move ZIP tests into their own script René Scharfe
2013-01-06 17:59 ` René Scharfe [this message]
2013-01-07 8:52 ` [PATCH 4/4] t5002: check if unzip supports symlinks Jonathan Nieder
2013-01-07 16:50 ` René Scharfe
2013-01-10 7:36 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50E9BB8B.9020101@lsrfire.ath.cx \
--to=rene.scharfe@lsrfire.ath.cx \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.