From: "Zbigniew Jędrzejewski-Szmek" <zbyszek@in.waw.pl>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH 1/2] t0303: set reason for skipping tests
Date: Mon, 12 Mar 2012 22:07:58 +0100 [thread overview]
Message-ID: <4F5E65AE.8050401@in.waw.pl> (raw)
In-Reply-To: <20120312123031.GA14456@sigill.intra.peff.net>
On 03/12/2012 01:30 PM, Jeff King wrote:
> On Mon, Mar 12, 2012 at 01:05:06PM +0100, Zbigniew Jędrzejewski-Szmek wrote:
>
>> t0300-credential-helpers.sh runs two sets of tests. Each set is
>> controlled by an environment variable and is skipped if the variable
>> is not defined. If both sets are skipped, prove will say:
>> ./t0303-credential-external.sh .. skipped: (no reason given)
>> which isn't very nice.
>>
>> Use skip_all="..." to set the reason when both sets are skipped.
>
> Sounds reasonable. A few nits:
OK, it seems this might be more complicated than I expected. I admit
that I didn't test this (apart from failing without the variables
defined) and assumed that it more or less works already.
I think that the tests are not very robust:
ln -s /bin/true ~/bin/git-credential-fooooooo
GIT_TEST_CREDENTIAL_HELPER=fooooooo\
GIT_TEST_CREDENTIAL_HELPER_TIMEOUT=fooooooo\
./t0303-credential-external.sh
gives me:
ok 1 - helper (fooooooo) has no existing data
ok 2 - helper (fooooooo) stores password
not ok - 3 helper (fooooooo) can retrieve password
ok 4 - helper (fooooooo) requires matching protocol
ok 5 - helper (fooooooo) requires matching host
ok 6 - helper (fooooooo) requires matching username
ok 7 - helper (fooooooo) requires matching path
ok 8 - helper (fooooooo) can forget host
not ok - 9 helper (fooooooo) can store multiple users
ok 10 - helper (fooooooo) can forget user
not ok - 11 helper (fooooooo) remembers other user
ok 12 - helper (fooooooo) times out
# failed 3 among 12 test(s)
1..12
I guess that the fact that #1 succeeds reflects reality, but e.g.
4-7 and 12 probably should fail.
>> if test -z "$GIT_TEST_CREDENTIAL_HELPER"; then
>> - say "# skipping external helper tests (set GIT_TEST_CREDENTIAL_HELPER)"
>> + say "# skipping external helper tests (GIT_TEST_CREDENTIAL_HELPER not set)"
>> else
>> [...]
>> if test -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then
>> - say "# skipping external helper timeout tests"
>> + say "# skipping external helper timeout tests (GIT_TEST_CREDENTIAL_HELPER_TIMEOUT not set)"
>
> These don't affect prove at all, do they? I'm OK with the changes, but I
> was confused to see them after reading the commit message.
Right, this was just for symmetry when running test directly. Forgot
to mention this in the commit message.
> Should they actually say "# SKIP ..." to tell prove what's going on? I
> don't know very much about TAP.
# SKIP is used when skipping individual tests (IIUC), but when we skip a
group of tests, we simply jump over them and this message is purely
informative output that is not interpreted by the harness.
>> +if test -z "$GIT_TEST_CREDENTIAL_HELPER" \
>> + -o -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then
>> + skip_all="used to test external credential helpers"
>> +fi
>
> Actually, I think it is not OK to run t0303 with HELPER_TIMEOUT set, but
> HELPER not set. The "helper_test_clean" bits will fail badly. The
> documentation given in the commit message is actually wrong (I added the
> clean bits to the patch later, and failed to realize the dependency or
> update the commit message).
>
> Also, our usual idiom is to check the prerequisites at the top of the
> script and bail immediately.
>
> So maybe the whole script should be restructured as:
>
> if test -z "$GIT_TEST_CREDENTIAL_HELPER"; then
> skip_all="GIT_TEST_CREDENTIAL_HELPER not set"
> test_done
> fi
>
> pre_test
> helper_test "$GIT_TEST_CREDENTIAL_HELPER"
> if test -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then
> say "# skipping timeout tests (GIT_TEST_CREDENTIAL_HELPER_TIMEOUT not set)"
> else
> helper_test_timeout "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"
> fi
> post_test
Yeah, this seems to be the right approach. I'll repost with a proper
commit message once my doubts about the tests are cleared up.
-
Zbyszek
next prev parent reply other threads:[~2012-03-12 21:08 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-12 12:05 [PATCH 0/2] prettify t0303-credential-helpers.sh Zbigniew Jędrzejewski-Szmek
2012-03-12 12:05 ` [PATCH 1/2] t0303: set reason for skipping tests Zbigniew Jędrzejewski-Szmek
2012-03-12 12:30 ` Jeff King
2012-03-12 21:07 ` Zbigniew Jędrzejewski-Szmek [this message]
2012-03-13 21:53 ` Jeff King
2012-03-14 14:14 ` Zbigniew Jędrzejewski-Szmek
2012-03-14 14:18 ` [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER Zbigniew Jędrzejewski-Szmek
2012-03-14 14:18 ` [PATCH v2 2/2] t0303: resurrect commit message as test documentation Zbigniew Jędrzejewski-Szmek
2012-03-14 22:17 ` [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER Junio C Hamano
2012-03-15 3:54 ` Jeff King
2012-03-15 6:55 ` Junio C Hamano
2012-03-15 10:44 ` Zbigniew Jędrzejewski-Szmek
2012-03-15 11:08 ` [PATCH v3 " Zbigniew Jędrzejewski-Szmek
2012-03-15 11:08 ` [PATCH v3 2/2] t0303: resurrect commit message as test documentation Zbigniew Jędrzejewski-Szmek
2012-03-15 17:51 ` [PATCH v3 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER Junio C Hamano
2012-03-15 13:24 ` [PATCH v2 " Jeff King
2012-03-15 13:26 ` Jeff King
2012-03-15 17:50 ` Junio C Hamano
2012-03-15 3:56 ` Jeff King
2012-03-12 12:05 ` [PATCH 2/2] t0303: resurrect commit message as test documentation Zbigniew Jędrzejewski-Szmek
2012-03-12 12:31 ` Jeff King
2012-03-12 20:43 ` Jonathan Nieder
2012-03-13 21:38 ` Jeff King
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=4F5E65AE.8050401@in.waw.pl \
--to=zbyszek@in.waw.pl \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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).