From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Johannes Schindelin <johannes.schindelin@gmx.de>
Cc: "SZEDER Gábor" <szeder.dev@gmail.com>,
git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>
Subject: Re: [PATCH] tests: introduce test_unset_prereq, for debugging
Date: Mon, 7 May 2018 13:59:50 +0200 [thread overview]
Message-ID: <20180507115950.3887-1-szeder.dev@gmail.com> (raw)
In-Reply-To: <b94af009c1bc9c9b96d977b1c5775ff73669138f.1524954814.git.johannes.schindelin@gmx.de>
> While working on the --convert-graft-file test, I missed that I was
> relying on the GPG prereq, by using output of test cases that were only
> run under that prereq.
That GPG vs --convert-graft-file thing really does have a bit of a
fallout, doesn't it? I'm at five patches and possibly counting...
> For debugging, it was really convenient to force that prereq to be
> unmet, but there was no easy way to do that.
Well, in case of the GPG prereq there is an easy way: you could have
just commented out that
. "$TEST_DIRECTORY/lib-gpg.sh"
line near the beginning of the test script. Just a single '#'
character, it can't get much easier than that :)
But yeah, this doesn't work with every prereq...
> So I came up with a way,
> and this patch reflects the cleaned-up version of that way.
>
> For convenience, the following two methods are now supported ways to
> pretend that a prereq is not met:
>
> test_set_prereq !GPG
>
> and
>
> test_unset_prereq GPG
I'm not sure this is the right way to do this.
I wanted to run the whole test suite with all GPG tests skipped the
other day. With this 'test_unset_prereq' I would have to modify all
test scripts containing tests depending on the GPG prereq and add
'test_unset_prereq GPG', right? I rather modified 't/lib-gpg.sh',
i.e. only a single file, instead of modifying the 13 test scripts that
match the 'test_expect_[a-z]*[ ,]GPG[ ,]' regexp.
I think we would be better served by an environment variable similar
to $GIT_SKIP_TESTS, e.g. $GIT_SKIP_PREREQS, to list all the prereqs
that should be skipped even if they were met.
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> Published-As: https://github.com/dscho/git/releases/tag/test-unset-prereq-v1
> Fetch-It-Via: git fetch https://github.com/dscho/git test-unset-prereq-v1
> t/test-lib-functions.sh | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
Anyway, please add a bit of documentation with docstrings and/or in
't/README'.
>
> diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
> index 7d620bf2a9a..76cd6630f29 100644
> --- a/t/test-lib-functions.sh
> +++ b/t/test-lib-functions.sh
> @@ -278,8 +278,20 @@ write_script () {
> # The single parameter is the prerequisite tag (a simple word, in all
> # capital letters by convention).
>
> +test_unset_prereq () {
> + ! test_have_prereq "$1" ||
> + satisfied_prereq="${satisfied_prereq% $1 *} ${satisfied_prereq#* $1 }"
> +}
> +
> test_set_prereq () {
> - satisfied_prereq="$satisfied_prereq$1 "
> + case "$1" in
> + !*)
> + test_unset_prereq "${1#!}"
> + ;;
> + *)
> + satisfied_prereq="$satisfied_prereq$1 "
> + ;;
> + esac
> }
> satisfied_prereq=" "
> lazily_testable_prereq= lazily_tested_prereq=
>
> base-commit: 1f1cddd558b54bb0ce19c8ace353fd07b758510d
> --
> 2.17.0.windows.1.36.gdf4ca5fb72a
>
next prev parent reply other threads:[~2018-05-07 12:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-28 22:33 [PATCH] tests: introduce test_unset_prereq, for debugging Johannes Schindelin
2018-04-30 0:38 ` Junio C Hamano
2018-05-07 11:59 ` SZEDER Gábor [this message]
2018-05-07 14:22 ` Junio C Hamano
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=20180507115950.3887-1-szeder.dev@gmail.com \
--to=szeder.dev@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmx.de \
/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.