From: Yann Dirson <ydirson@free.fr>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: git@vger.kernel.org, Yann Dirson <ydirson@free.fr>
Subject: Re: [PATCH v4 2/4] Add testcases for the --detect-dir-renames diffcore flag.
Date: Mon, 4 Oct 2010 23:37:03 +0200 [thread overview]
Message-ID: <20101004213703.GW4983@home.lan> (raw)
In-Reply-To: <20101004203241.GF6466@burratino>
On Mon, Oct 04, 2010 at 03:32:41PM -0500, Jonathan Nieder wrote:
> Yann Dirson wrote:
>
> > From: Yann Dirson <ydirson@free.fr>
> > Subject: Add testcases for the --detect-dir-renames diffcore flag
>
> Probably better for the test to be squashed with the patch that adds
> that option.
I tend to agree, but we see quite a lot of patches split this way it
seems. Junio, any preference here ?
> > --- /dev/null
> > +++ b/t/t4046-diff-rename-factorize.sh
> > @@ -0,0 +1,326 @@
> [...]
> > +test_expect_success \
> > + 'commit the index.' \
> > + 'git update-ref HEAD $(echo "original empty commit" | git commit-tree $(git write-tree))'
>
> Nit:
>
> Now test assertions tend to be written as
>
> test_expect_success '...' '
> command &&
> command &&
> ...
> '
>
> The tabs to indent and opening ' at the end of the first line means
> less fuss in lining things up. Making each test assertion include its
> setup means tests don't pass if something gets messed up in the setup,
> and using multiline test assertions with && means there is no
> confusion about what the tests were written to test.
>
> As you mentioned, this has the unfortunate downside of messing with
> syntax highlighting. Maybe the common text editors need a new mode
> for git-style test scripts?
There used to be a mmm-mode thingie for emacs which made such things
easier (multiple major modes with custom delimiters) - but that did
not handle quoting issues automagically either :)
One solution seen in some test scripts already is to define functions
outside of the test_expect* clauses.
> Or maybe it would make sense to implement
>
> test_begin_expecting_success '...'
> ...
> test_end
>
> --- it would certainly make quoting easier.
Not sure it would be possible without a macro processor. And not sure
a macro processor would be welcome by everyone here :)
> It might make sense to compute the tree, commit, etc one at a time
> instead of this long one-liner.
If moved into a function which would make it readable, yes.
> To avoid quoting troubles and since these are innocuous commands, it
> could be nice to put this before the first test assertion. Or even
> better:
>
> mkdir a &&
> printf "Line %s\n" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 >a/path0 &&
> ...
Well, when seeing for the first time such a construct, i tend to
wonder how portable it is amont printf implementations. But hey, I'm
always thrilled to discover parts of the standard tools I had missed
until now :)
> [...]
> > +test_expect_success \
> > + 'git diff-index --detect-dir-renames after directory move.' \
> > + 'git diff-index --detect-dir-renames HEAD >current'
> > +grep -v "^\[DBG\] " <current >current.filtered
> > +cat >expected <<\EOF
> > +:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100 a/ b/
> > +:100644 100644 fdbec444a77953b1bcc899d9fabfa202e5e68f08 fdbec444a77953b1bcc899d9fabfa202e5e68f08 R100 a/path0 b/path0
> > +:100644 100644 2f1f8d70c0fdad990819dfe37a31deb010805161 2f1f8d70c0fdad990819dfe37a31deb010805161 R100 a/path1 b/path1
> > +:100644 100644 dbde7141d737c8aa0003672c1bc21ded48c6c3b9 dbde7141d737c8aa0003672c1bc21ded48c6c3b9 R100 a/path2 b/path2
> > +:100644 100644 c6971ab9f08a6cd9c89a0f87d94ae347aad6144a c6971ab9f08a6cd9c89a0f87d94ae347aad6144a R100 a/path3 b/path3
> > +EOF
>
> Nit: although compare_diff_patch ensures the result is not dependent
> on the hash function, these hard-coded hashes are still hard for a
> human to read. Could they be computed instead?
Well, that would just make the test harder to read imho. Using
regexps would help for readability, but that would require another
compare_diff variant. BTW, I should be using compare_diff_raw not
compare_diff_patch here.
next prev parent reply other threads:[~2010-10-04 21:27 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-03 20:42 [RFC PATCH v4 0/4] Detection of directory renames Yann Dirson
2010-10-03 20:42 ` [PATCH v4 1/4] Introduce wholesame directory move detection in diffcore Yann Dirson
2010-10-03 20:42 ` [PATCH v4 2/4] Add testcases for the --detect-dir-renames diffcore flag Yann Dirson
2010-10-03 20:42 ` [PATCH v4 3/4] Allow hiding renames of individual files involved in a directory rename Yann Dirson
2010-10-03 20:42 ` [PATCH v4 4/4] Add testcases for the --hide-dir-rename-details diffcore flag Yann Dirson
2010-10-03 23:04 ` Sverre Rabbelier
2010-10-03 23:06 ` [PATCH v4 3/4] Allow hiding renames of individual files involved in a directory rename Sverre Rabbelier
2010-10-03 23:28 ` Junio C Hamano
2010-10-04 6:43 ` Sverre Rabbelier
2010-10-04 18:21 ` Yann Dirson
2010-10-04 3:03 ` [PATCH v4 2/4] Add testcases for the --detect-dir-renames diffcore flag Ævar Arnfjörð Bjarmason
2010-10-04 18:32 ` Yann Dirson
2010-10-04 20:32 ` Jonathan Nieder
2010-10-04 21:37 ` Yann Dirson [this message]
2010-10-04 22:09 ` Jonathan Nieder
2010-10-05 9:21 ` Andreas Ericsson
2010-10-04 2:59 ` [PATCH v4 1/4] Introduce wholesame directory move detection in diffcore Ævar Arnfjörð Bjarmason
2010-10-04 18:19 ` Yann Dirson
2010-10-04 7:28 ` Jonathan Nieder
2010-10-04 21:13 ` Yann Dirson
2010-10-05 1:06 ` Jonathan Nieder
2010-10-06 23:13 ` Yann Dirson
2010-10-04 6:20 ` [RFC PATCH v4 0/4] Detection of directory renames Jonathan Nieder
2010-10-05 1:42 ` Jonathan Nieder
2010-10-06 23:17 ` Yann Dirson
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=20101004213703.GW4983@home.lan \
--to=ydirson@free.fr \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.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.