diff mbox series

[1/2] t3400: make test clean up after itself

Message ID 20200223101407.77036-2-sunshine@sunshineco.com (mailing list archive)
State New, archived
Headers show
Series git-rebase: refuse to switch to branch checked out elsewhere | expand

Commit Message

Eric Sunshine Feb. 23, 2020, 10:14 a.m. UTC
This test intentionally creates a file which causes rebase to fail, thus
it is important that this file be deleted before subsequent tests are
run which are not expecting such a failure. In the past, the common way
to ensure cleanup (regardless of whether the test succeeded or failed)
was either for the next test to perform the previous test's cleanup as
its first step or to do the cleanup at global scope outside of any
tests. With the introduction of 'test_when_finished', however, tests can
be responsible for their own cleanup. Therefore, update this test to
clean up after itself.

A bit of history: This 'rm' invocation was moved from within the body of
the following test to global scope by bffd750adf (rebase: improve error
message when upstream argument is missing, 2010-05-31), which postdates,
by about a month, introduction of 'test_when_finished' in 3bf7886705
(test-lib: Let tests specify commands to be run at end of test,
2010-05-02).
---
 t/t3400-rebase.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Eric Sunshine Feb. 24, 2020, 9:19 a.m. UTC | #1
On Sun, Feb 23, 2020 at 5:15 AM Eric Sunshine <sunshine@sunshineco.com> wrote:
> This test intentionally creates a file which causes rebase to fail, thus
> it is important that this file be deleted before subsequent tests are
> run which are not expecting such a failure. In the past, the common way
> to ensure cleanup (regardless of whether the test succeeded or failed)
> was either for the next test to perform the previous test's cleanup as
> its first step or to do the cleanup at global scope outside of any
> tests. With the introduction of 'test_when_finished', however, tests can
> be responsible for their own cleanup. Therefore, update this test to
> clean up after itself.
>
> A bit of history: This 'rm' invocation was moved from within the body of
> the following test to global scope by bffd750adf (rebase: improve error
> message when upstream argument is missing, 2010-05-31), which postdates,
> by about a month, introduction of 'test_when_finished' in 3bf7886705
> (test-lib: Let tests specify commands to be run at end of test,
> 2010-05-02).
> ---

Missing sign-off, so here it is:

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
diff mbox series

Patch

diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
index 221b35f2df..6e746dca00 100755
--- a/t/t3400-rebase.sh
+++ b/t/t3400-rebase.sh
@@ -143,11 +143,11 @@  test_expect_success 'setup: recover' '
 
 test_expect_success 'Show verbose error when HEAD could not be detached' '
 	>B &&
+	test_when_finished "rm -f B" &&
 	test_must_fail git rebase topic 2>output.err >output.out &&
 	test_i18ngrep "The following untracked working tree files would be overwritten by checkout:" output.err &&
 	test_i18ngrep B output.err
 '
-rm -f B
 
 test_expect_success 'fail when upstream arg is missing and not on branch' '
 	git checkout topic &&