From: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
To: Junio C Hamano <junkio@cox.net>, Linus Torvalds <torvalds@osdl.org>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-tar-tree: add a test case (resent)
Date: Thu, 2 Jun 2005 22:50:17 +0200 [thread overview]
Message-ID: <20050602205017.GA5491@lsrfire.ath.cx> (raw)
In-Reply-To: <7v64ww34of.fsf@assigned-by-dhcp.cox.net>
On Thu, Jun 02, 2005 at 01:05:36PM -0700, Junio C Hamano wrote:
> I like the test but suspect it belongs to t5000 series according
> to the numbering scheme Pasky originaly did.
The README says:
3 - the other basic commands (e.g. ls-files)
[...]
5 - the pull and exporting commands
So I guess you're right. I shouldn't have stopped reading after point
three..
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh
new file mode 100755
--- /dev/null
+++ b/t/t5000-tar-tree.sh
@@ -0,0 +1,106 @@
+#!/bin/sh
+#
+# Copyright (C) 2005 Rene Scharfe
+#
+
+test_description='git-tar-tree and git-get-tar-commit-id test
+
+This test covers the topics of long paths, file contents, commit date
+handling and commit id embedding:
+
+ Paths longer than 100 characters require the use of a pax extended
+ header to store them. The test creates files with pathes both longer
+ and shorter than 100 chars, and also checks symlinks with long and
+ short pathes both as their own name and as target path.
+
+ The contents of the repository is compared to the extracted tar
+ archive. The repository contains simple text files, symlinks and a
+ binary file (/bin/sh).
+
+ git-tar-tree applies the commit date to every file in the archive it
+ creates. The test sets the commit date to a specific value and checks
+ if the tar archive contains that value.
+
+ When giving git-tar-tree a commit id (in contrast to a tree id) it
+ embeds this commit id into the tar archive as a comment. The test
+ checks the ability of git-get-tar-commit-id to figure it out from the
+ tar file.
+
+'
+
+. ./test-lib.sh
+
+test_expect_success \
+ 'populate workdir' \
+ 'mkdir a b c &&
+ p48=1.......10........20........30........40......48 &&
+ p50=1.......10........20........30........40........50 &&
+ p98=${p48}${p50} &&
+ echo simple textfile >a/a &&
+ echo 100 chars in path >a/${p98} &&
+ echo 101 chars in path >a/${p98}x &&
+ echo 102 chars in path >a/${p98}xx &&
+ echo 103 chars in path >a/${p98}xxx &&
+ mkdir a/bin &&
+ cp /bin/sh a/bin/sh &&
+ ln -s a a/l1 &&
+ ln -s ${p98}xx a/l100 &&
+ ln -s ${p98}xxx a/l101 &&
+ ln -s ${p98}xxx a/l${p98} &&
+ (cd a && find .) | sort >a.lst'
+
+test_expect_success \
+ 'add files to repository' \
+ 'find a -type f | xargs git-update-cache --add &&
+ find a -type l | xargs git-update-cache --add &&
+ treeid=`git-write-tree` &&
+ echo $treeid >treeid &&
+ TZ= GIT_COMMITTER_DATE="2005-05-27 22:00:00" \
+ git-commit-tree $treeid </dev/null >.git/HEAD'
+
+test_expect_success \
+ 'git-tar-tree' \
+ 'git-tar-tree HEAD >b.tar'
+
+test_expect_success \
+ 'validate file modification time' \
+ 'tar tvf b.tar a/a | awk \{print\ \$4,\$5\} >b.mtime &&
+ echo "2005-05-27 22:00:00" >expected.mtime &&
+ diff expected.mtime b.mtime'
+
+test_expect_success \
+ 'git-get-tar-commit-id' \
+ 'git-get-tar-commit-id <b.tar >b.commitid &&
+ diff .git/HEAD b.commitid'
+
+test_expect_success \
+ 'extract tar archive' \
+ '(cd b && tar xf -) <b.tar'
+
+test_expect_success \
+ 'validate filenames' \
+ '(cd b/a && find .) | sort >b.lst &&
+ diff a.lst b.lst'
+
+test_expect_success \
+ 'validate file contents' \
+ 'diff -r a b/a'
+
+test_expect_success \
+ 'git-tar-tree with prefix' \
+ 'git-tar-tree HEAD prefix >c.tar'
+
+test_expect_success \
+ 'extract tar archive with prefix' \
+ '(cd c && tar xf -) <c.tar'
+
+test_expect_success \
+ 'validate filenames with prefix' \
+ '(cd c/prefix/a && find .) | sort >c.lst &&
+ diff a.lst c.lst'
+
+test_expect_success \
+ 'validate file contents with prefix' \
+ 'diff -r a c/prefix/a'
+
+test_done
next prev parent reply other threads:[~2005-06-02 20:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-02 18:50 [PATCH] git-tar-tree: add a test case (resent) Rene Scharfe
2005-06-02 20:05 ` Junio C Hamano
2005-06-02 20:50 ` Rene Scharfe [this message]
2005-06-03 1:34 ` Linus Torvalds
2005-06-03 5:34 ` Rene Scharfe
2005-06-03 14:31 ` Linus Torvalds
2005-06-03 14:43 ` Rene Scharfe
2005-06-03 11:25 ` Rene Scharfe
2005-06-03 14:46 ` Linus Torvalds
2005-06-03 14:51 ` Linus Torvalds
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=20050602205017.GA5491@lsrfire.ath.cx \
--to=rene.scharfe@lsrfire.ath.cx \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=torvalds@osdl.org \
/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 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 NNTP newsgroup(s).