From: Sean Allred <allred.sean@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Sean Allred via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org, Sean Allred <code@seanallred.com>
Subject: Re: [PATCH v2 2/2] var: allow GIT_EDITOR to return null
Date: Sat, 26 Nov 2022 07:54:22 -0600 [thread overview]
Message-ID: <87fse5ssyo.fsf@gmail.com> (raw)
In-Reply-To: <221125.86pmdamyv5.gmgdl@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> Negate git with "test_must_fail", not "!", this would e.g. hide
> segfaults. See t/README's discussion about it.
>
>> + test_cmp expect actual
>
> Looks like this should be:
>
> test_must_fail git ... >out &&
> test_must_be_empty out
Nice! I don't know why I didn't look for t/README, but I also found
test_expect_code, which seems to be even more specific as to what is
being expected. I assume it has the same segfault detection.
This has now been incorporated in my branch; I'll submit it in v3 later
today.
>> +test_expect_success 'get GIT_EDITOR with configuration and environment variable EDITOR' '
>> + test_config core.editor foo &&
>> + (
>> + sane_unset GIT_EDITOR &&
>> + sane_unset VISUAL &&
>> + sane_unset EDITOR &&
>> + echo foo >expect &&
>> + EDITOR=bar git var GIT_EDITOR >actual &&
>> + test_cmp expect actual
>> + )
>
> Perhaps these can all be factored into a helper to hide this repetition
> in a function, but maybe not. E.g:
>
> test_git_var () {
> cat >expect &&
> (
> [...common part of subshell ...]
> "$@" >actual &&
> test_cmp expect actual
> )
> }
>
> (untested)
In all honesty, I think too much abstraction would do more harm than
good here. I definitely share the instinct to factor out the common
pieces, but in other codebases I've worked in, that tends to stifle
future changes in the tests themselves.
That said, I can't realistically imagine a world where a
'sane_unset_all_editors' would stifle code changes -- and I think that
accounts for the lion's share of the repetition. I've incorporated such
a helper in my branch now.
If you're not convinced there should be further abstraction, I'd rather
leave things 'stupid simple' -- but if you think this would block merge,
I'd be happy to take a crack at further factoring out what I can.
--
Sean Allred
next prev parent reply other threads:[~2022-11-26 14:15 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-24 20:22 [PATCH 0/3] Improve consistency of git-var Sean Allred via GitGitGadget
2022-11-24 20:22 ` [PATCH 1/3] var: do not print usage() with a correct invocation Sean Allred via GitGitGadget
2022-11-24 20:22 ` [PATCH 2/3] var: remove read_var Sean Allred via GitGitGadget
2022-11-25 5:48 ` Junio C Hamano
2022-11-24 20:22 ` [PATCH 3/3] var: allow GIT_EDITOR to return null Sean Allred via GitGitGadget
2022-11-25 16:52 ` [PATCH v2 0/2] Improve consistency of git-var Sean Allred via GitGitGadget
2022-11-25 16:52 ` [PATCH v2 1/2] var: do not print usage() with a correct invocation Sean Allred via GitGitGadget
2022-11-25 22:45 ` Ævar Arnfjörð Bjarmason
2022-11-26 13:19 ` Sean Allred
2022-11-25 16:52 ` [PATCH v2 2/2] var: allow GIT_EDITOR to return null Sean Allred via GitGitGadget
2022-11-25 22:48 ` Ævar Arnfjörð Bjarmason
2022-11-26 13:54 ` Sean Allred [this message]
2022-11-26 14:17 ` [PATCH v3 0/2] Improve consistency of git-var Sean Allred via GitGitGadget
2022-11-26 14:17 ` [PATCH v3 1/2] var: do not print usage() with a correct invocation Sean Allred via GitGitGadget
2022-11-26 14:17 ` [PATCH v3 2/2] var: allow GIT_EDITOR to return null Sean Allred via GitGitGadget
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=87fse5ssyo.fsf@gmail.com \
--to=allred.sean@gmail.com \
--cc=avarab@gmail.com \
--cc=code@seanallred.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@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.