t5573, t7612: clean up after unexpected success of 'pull' and 'merge'
authorJunio C Hamano <gitster@pobox.com>
Fri, 15 Dec 2017 19:42:36 +0000 (11:42 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Dec 2017 20:58:57 +0000 (12:58 -0800)
The previous steps added test_when_finished to tests that run 'git
pull' or 'git merge' with expectation of success, so that the test
after them can start from a known state even when their 'git pull'
invocation unexpectedly fails. However, tests that run 'git pull'
or 'git merge' expecting it not to succeed forgot to protect later
tests the same way---if they unexpectedly succeed, the test after
them would start from an unexpected state.

Reset and checkout the initial commit after all these tests, whether
they expect their invocations to succeed or fail.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5573-pull-verify-signatures.sh
t/t7612-merge-verify-signatures.sh
index 8ae331f40ed9e7c83dd91c35278b5dc2f5326a29..9594e891f45d4c0d29b73190c1b5345b4c4d54b6 100755 (executable)
@@ -43,33 +43,36 @@ test_expect_success GPG 'create repositories with signed commits' '
 '
 
 test_expect_success GPG 'pull unsigned commit with --verify-signatures' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_must_fail git pull --ff-only --verify-signatures unsigned 2>pullerror &&
        test_i18ngrep "does not have a GPG signature" pullerror
 '
 
 test_expect_success GPG 'pull commit with bad signature with --verify-signatures' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_must_fail git pull --ff-only --verify-signatures bad 2>pullerror &&
        test_i18ngrep "has a bad GPG signature" pullerror
 '
 
 test_expect_success GPG 'pull commit with untrusted signature with --verify-signatures' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_must_fail git pull --ff-only --verify-signatures untrusted 2>pullerror &&
        test_i18ngrep "has an untrusted GPG signature" pullerror
 '
 
 test_expect_success GPG 'pull signed commit with --verify-signatures' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        git pull --verify-signatures signed >pulloutput &&
        test_i18ngrep "has a good GPG signature" pulloutput
 '
 
 test_expect_success GPG 'pull commit with bad signature without verification' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        git pull --ff-only bad 2>pullerror
 '
 
 test_expect_success GPG 'pull commit with bad signature with --no-verify-signatures' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures true &&
        test_config pull.verifySignatures true &&
        git pull --ff-only --no-verify-signatures bad 2>pullerror
index 2344995a1157cdddc08102d06d73c04690cb67c0..e797c741124ef86eae0e3a8d6a5372b0a84c91e2 100755 (executable)
@@ -35,64 +35,70 @@ test_expect_success GPG 'create signed commits' '
 '
 
 test_expect_success GPG 'merge unsigned commit with verification' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_must_fail git merge --ff-only --verify-signatures side-unsigned 2>mergeerror &&
        test_i18ngrep "does not have a GPG signature" mergeerror
 '
 
 test_expect_success GPG 'merge unsigned commit with merge.verifySignatures=true' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures true &&
        test_must_fail git merge --ff-only side-unsigned 2>mergeerror &&
        test_i18ngrep "does not have a GPG signature" mergeerror
 '
 
 test_expect_success GPG 'merge commit with bad signature with verification' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_must_fail git merge --ff-only --verify-signatures $(cat forged.commit) 2>mergeerror &&
        test_i18ngrep "has a bad GPG signature" mergeerror
 '
 
 test_expect_success GPG 'merge commit with bad signature with merge.verifySignatures=true' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures true &&
        test_must_fail git merge --ff-only $(cat forged.commit) 2>mergeerror &&
        test_i18ngrep "has a bad GPG signature" mergeerror
 '
 
 test_expect_success GPG 'merge commit with untrusted signature with verification' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_must_fail git merge --ff-only --verify-signatures side-untrusted 2>mergeerror &&
        test_i18ngrep "has an untrusted GPG signature" mergeerror
 '
 
 test_expect_success GPG 'merge commit with untrusted signature with merge.verifySignatures=true' '
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures true &&
        test_must_fail git merge --ff-only side-untrusted 2>mergeerror &&
        test_i18ngrep "has an untrusted GPG signature" mergeerror
 '
 
 test_expect_success GPG 'merge signed commit with verification' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        git merge --verbose --ff-only --verify-signatures side-signed >mergeoutput &&
        test_i18ngrep "has a good GPG signature" mergeoutput
 '
 
 test_expect_success GPG 'merge signed commit with merge.verifySignatures=true' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures true &&
        git merge --verbose --ff-only side-signed >mergeoutput &&
        test_i18ngrep "has a good GPG signature" mergeoutput
 '
 
 test_expect_success GPG 'merge commit with bad signature without verification' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        git merge $(cat forged.commit)
 '
 
 test_expect_success GPG 'merge commit with bad signature with merge.verifySignatures=false' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures false &&
        git merge $(cat forged.commit)
 '
 
 test_expect_success GPG 'merge commit with bad signature with merge.verifySignatures=true and --no-verify-signatures' '
-       test_when_finished "git checkout initial" &&
+       test_when_finished "git reset --hard && git checkout initial" &&
        test_config merge.verifySignatures true &&
        git merge --no-verify-signatures $(cat forged.commit)
 '