All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 4/8] archive: add tests for directory selection
Date: Wed,  8 Apr 2009 20:05:29 +1000	[thread overview]
Message-ID: <1239185133-4181-5-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1239185133-4181-4-git-send-email-pclouds@gmail.com>

While in archive.c, it says "pathspec". It's not really pathspec.
Make a few tests to catch this point.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 archive.c               |   17 +++++++++++++++++
 t/t0024-crlf-archive.sh |   30 +++++++++++++++++++++++++++++-
 2 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/archive.c b/archive.c
index e87fed7..5b54d95 100644
--- a/archive.c
+++ b/archive.c
@@ -15,6 +15,8 @@ static char const * const archive_usage[] = {
 
 #define USES_ZLIB_COMPRESSION 1
 
+static int list_archive(struct archiver_args *args);
+
 static const struct archiver {
 	const char *name;
 	write_archive_fn_t write_archive;
@@ -22,8 +24,23 @@ static const struct archiver {
 } archivers[] = {
 	{ "tar", write_tar_archive },
 	{ "zip", write_zip_archive, USES_ZLIB_COMPRESSION },
+	{ "dump-file-list", list_archive },
 };
 
+static int list_archive_entry(struct archiver_args *args,
+		const unsigned char *sha1, const char *path, size_t pathlen,
+		unsigned int mode, void *buffer, unsigned long size)
+{
+	printf("%s\n", path);
+	return 0;
+}
+
+static int list_archive(struct archiver_args *args)
+{
+	write_archive_entries(args, list_archive_entry);
+	return 0;
+}
+
 static void format_subst(const struct commit *commit,
                          const char *src, size_t len,
                          struct strbuf *buf)
diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index 9c56e0e..695ad5a 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -9,14 +9,42 @@ test_expect_success setup '
 
 	git config core.autocrlf true
 
+	mkdir sub &&
 	printf "CRLF line ending\r\nAnd another\r\n" > sample &&
-	git add sample &&
+	cp sample sub/sample &&
+	git add sample sub/sample &&
 
 	test_tick &&
 	git commit -m Initial
 
 '
 
+cat <<\EOF > expected
+sample
+sub/
+sub/sample
+EOF
+
+test_expect_success 'archive without subdir' '
+	git archive --format=dump-file-list HEAD > output &&
+	test_cmp output expected
+'
+
+cat <<\EOF > expected
+sub/
+sub/sample
+EOF
+
+test_expect_success 'archive with subdir' '
+	git archive --format=dump-file-list HEAD sub > output &&
+	test_cmp output expected
+'
+
+test_expect_success 'subdir is not pathspec' '
+	test "$(git archive --format=dump-file-list HEAD sub/)" = ""
+	test "$(git archive --format=dump-file-list HEAD s\*)" = ""
+'
+
 test_expect_success 'tar archive' '
 
 	git archive --format=tar HEAD |
-- 
1.6.2.2.602.g83ee9f

  reply	other threads:[~2009-04-08 10:08 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-08 10:05 [PATCH 0/8] support "in-tree attributes" for git-archive Nguyễn Thái Ngọc Duy
2009-04-08 10:05 ` [PATCH 1/8] archive: add shortcuts for --format and --prefix Nguyễn Thái Ngọc Duy
2009-04-08 10:05   ` [PATCH 2/8] move prune_cache() to git lib Nguyễn Thái Ngọc Duy
2009-04-08 10:05     ` [PATCH 3/8] archive: add a failure test wrt .gitattributes misreading Nguyễn Thái Ngọc Duy
2009-04-08 10:05       ` Nguyễn Thái Ngọc Duy [this message]
2009-04-08 10:05         ` [PATCH 5/8] attr: add GIT_ATTR_INDEX "direction" Nguyễn Thái Ngọc Duy
2009-04-08 10:05           ` [PATCH 6/8] archive: use index instead of parsing tree directly Nguyễn Thái Ngọc Duy
2009-04-08 10:05             ` [PATCH 7/8] archive: disregard .gitattributes on working directory Nguyễn Thái Ngọc Duy
2009-04-08 10:05               ` [PATCH 8/8] archive: support creating archives from index Nguyễn Thái Ngọc Duy
2009-04-08 20:48                 ` René Scharfe
2009-04-08 19:20               ` [PATCH 7/8] archive: disregard .gitattributes on working directory Junio C Hamano
2009-04-08 19:20             ` [PATCH 6/8] archive: use index instead of parsing tree directly Junio C Hamano
2009-04-08 20:39             ` René Scharfe
2009-04-08 21:02             ` René Scharfe
2009-04-08 19:52         ` [PATCH 4/8] archive: add tests for directory selection René Scharfe
2009-04-08 19:20       ` [PATCH 3/8] archive: add a failure test wrt .gitattributes misreading Junio C Hamano
2009-04-13 13:56         ` René Scharfe
2009-04-14  6:41           ` Nguyen Thai Ngoc Duy
2009-04-14 20:12             ` René Scharfe
2009-04-16  8:22           ` Junio C Hamano
2009-04-17 20:15             ` René Scharfe
2009-04-18  1:33               ` Junio C Hamano
2009-04-08 19:19     ` [PATCH 2/8] move prune_cache() to git lib Junio C Hamano
2009-04-08 19:51   ` [PATCH 1/8] archive: add shortcuts for --format and --prefix René Scharfe

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=1239185133-4181-5-git-send-email-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=git@vger.kernel.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 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.