From: Caleb Thompson <caleb@calebthompson.io>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v5 3/4] commit test: test_set_editor in each test
Date: Fri, 13 Jun 2014 11:36:44 -0500 [thread overview]
Message-ID: <20140613163644.GB85151@sirius.local> (raw)
In-Reply-To: <20140613065942.GB7908@sigill.intra.peff.net>
[-- Attachment #1: Type: text/plain, Size: 2438 bytes --]
On Fri, Jun 13, 2014 at 02:59:42AM -0400, Jeff King wrote:
> On Thu, Jun 12, 2014 at 02:39:01PM -0500, Caleb Thompson wrote:
>
> > t/t7507-commit-verbose.sh was using a global test_set_editor call to
> > build its environment.
> >
> > Improve robustness against global state changes by having only tests
> > which intend to use the $EDITOR to check for presence of a diff in the
> > editor set up the test-editor to use check-for-diff rather than relying
> > upon the editor set once at script start.
>
> This implies to me that EDITOR is unset after leaving these tests. I
> don't think that is how it works, though. The tests themselves run in
> the main environment of the test script. A call to test_set_editor from
> one of them will still affect the other tests[1].
>
> I think it works anyway because every subsequent test that cares
> actually sets the editor itself.
>
> Or did you just mean that the new rule is "every test sets the editor as
> they need", which means that we do not have to worry anymore about
> polluting the environment for other tests?
That's exactly what I meant. We can stop relying on the global state *as
it is initially set* and instead move the setup into the tests which
rely on it.
>
> -Peff
>
> [1] It might make sense for test_set_editor, when run from within a
> test, to behave more like test_config, and do:
>
> test_when_finished '
> sane_unset FAKE_EDITOR &&
> sane_unset EDITOR
> '
It might, but it's a little out of scope in addition to your concern
about other test scripts.
>
> I don't know if there would be fallouts with other test scripts,
> though.
How is this for a reword of that commit description:
t/t7507-commit-verbose.sh was using a global test_set_editor call to
build its environment. The $EDITOR being used was not necessary for
all tests, and was in fact circumvented using subshells in some
cases.
To improve robustness against global state changes and avoid the
use of subshells to temporarily switch the editor, set the editor
explicitly wherever it will be important.
Specifically, in tests that need to check for the presence of a diff in the
editor, make calls to set_test_editor to set $EDITOR to check-for-diff
rather than relying on that editor being configured globally. This also
helps readers grok the tests as the setup is closer to the verification.
Caleb Thompson
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2014-06-13 16:36 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-12 19:38 [PATCH v5 0/4] commit: Add commit.verbose configuration Caleb Thompson
2014-06-12 19:38 ` [PATCH v5 1/4] commit test: Use test_config instead of git-config Caleb Thompson
2014-06-12 19:39 ` [PATCH v5 2/4] commit test: Use write_script Caleb Thompson
2014-06-13 6:50 ` Jeff King
2014-06-13 16:26 ` Caleb Thompson
2014-06-13 23:28 ` Jeff King
2014-06-12 19:39 ` [PATCH v5 3/4] commit test: test_set_editor in each test Caleb Thompson
2014-06-13 6:59 ` Jeff King
2014-06-13 16:36 ` Caleb Thompson [this message]
2014-06-13 17:16 ` Jakub Narębski
2014-06-13 17:47 ` Caleb Thompson
2014-06-13 18:52 ` Jakub Narębski
2014-06-13 23:39 ` Jeff King
2014-06-13 17:42 ` Junio C Hamano
2014-06-13 23:41 ` Jeff King
2014-06-16 17:46 ` Caleb Thompson
2014-06-16 18:58 ` Junio C Hamano
2014-06-12 20:00 ` [PATCH v5 4/4] commit: Add commit.verbose configuration Caleb Thompson
2014-06-13 17:48 ` Junio C Hamano
2014-06-16 19:50 ` Caleb Thompson
2014-06-16 20:05 ` Caleb Thompson
2014-06-16 20:06 ` Junio C Hamano
2014-06-16 20:10 ` Caleb Thompson
2014-06-16 22:25 ` Junio C Hamano
2014-06-12 20:30 ` [PATCH v5 0/4] " Jeremiah Mahler
2014-06-13 16:49 ` Caleb Thompson
2014-06-14 4:14 ` Jeremiah Mahler
2014-06-16 20:28 ` 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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140613163644.GB85151@sirius.local \
--to=caleb@calebthompson.io \
--cc=git@vger.kernel.org \
--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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).