tvl-depot/third_party/git/t/t3514-cherry-pick-revert-gpg.sh
Vincent Ambo f4609b896f merge(3p/git): Merge git subtree at v2.29.2
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because
there is some breakage in the git build related to the netrc
credentials helper which someone has taken care of in nixpkgs.

The stable channel is not used for anything other than git, so this
should be fine.

Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
2020-11-21 19:45:56 +01:00

86 lines
2.9 KiB
Bash
Executable file

#!/bin/sh
#
# Copyright (c) 2020 Doan Tran Cong Danh
#
test_description='test {cherry-pick,revert} --[no-]gpg-sign'
. ./test-lib.sh
. "$TEST_DIRECTORY/lib-gpg.sh"
if ! test_have_prereq GPG
then
skip_all='skip all test {cherry-pick,revert} --[no-]gpg-sign, gpg not available'
test_done
fi
test_gpg_sign () {
local must_fail= will=will fake_editor=
if test "x$1" = "x!"
then
must_fail=test_must_fail
will="won't"
shift
fi
conf=$1
cmd=$2
cmit=$3
shift 3
test_expect_success "$cmd $* $cmit with commit.gpgsign=$conf $will sign commit" "
git reset --hard tip &&
git config commit.gpgsign $conf &&
git $cmd $* $cmit &&
git rev-list tip.. >rev-list &&
$must_fail git verify-commit \$(cat rev-list)
"
}
test_expect_success 'setup' '
test_commit one &&
git switch -c side &&
test_commit side1 &&
test_commit side2 &&
git switch - &&
test_commit two &&
test_commit three &&
test_commit tip
'
test_gpg_sign ! false cherry-pick side
test_gpg_sign ! false cherry-pick ..side
test_gpg_sign true cherry-pick side
test_gpg_sign true cherry-pick ..side
test_gpg_sign ! true cherry-pick side --no-gpg-sign
test_gpg_sign ! true cherry-pick ..side --no-gpg-sign
test_gpg_sign ! true cherry-pick side --gpg-sign --no-gpg-sign
test_gpg_sign ! true cherry-pick ..side --gpg-sign --no-gpg-sign
test_gpg_sign false cherry-pick side --no-gpg-sign --gpg-sign
test_gpg_sign false cherry-pick ..side --no-gpg-sign --gpg-sign
test_gpg_sign true cherry-pick side --edit
test_gpg_sign true cherry-pick ..side --edit
test_gpg_sign ! true cherry-pick side --edit --no-gpg-sign
test_gpg_sign ! true cherry-pick ..side --edit --no-gpg-sign
test_gpg_sign ! true cherry-pick side --edit --gpg-sign --no-gpg-sign
test_gpg_sign ! true cherry-pick ..side --edit --gpg-sign --no-gpg-sign
test_gpg_sign false cherry-pick side --edit --no-gpg-sign --gpg-sign
test_gpg_sign false cherry-pick ..side --edit --no-gpg-sign --gpg-sign
test_gpg_sign ! false revert HEAD --edit
test_gpg_sign ! false revert two.. --edit
test_gpg_sign true revert HEAD --edit
test_gpg_sign true revert two.. --edit
test_gpg_sign ! true revert HEAD --edit --no-gpg-sign
test_gpg_sign ! true revert two.. --edit --no-gpg-sign
test_gpg_sign ! true revert HEAD --edit --gpg-sign --no-gpg-sign
test_gpg_sign ! true revert two.. --edit --gpg-sign --no-gpg-sign
test_gpg_sign false revert HEAD --edit --no-gpg-sign --gpg-sign
test_gpg_sign false revert two.. --edit --no-gpg-sign --gpg-sign
test_gpg_sign true revert HEAD --no-edit
test_gpg_sign true revert two.. --no-edit
test_gpg_sign ! true revert HEAD --no-edit --no-gpg-sign
test_gpg_sign ! true revert two.. --no-edit --no-gpg-sign
test_gpg_sign ! true revert HEAD --no-edit --gpg-sign --no-gpg-sign
test_gpg_sign ! true revert two.. --no-edit --gpg-sign --no-gpg-sign
test_gpg_sign false revert HEAD --no-edit --no-gpg-sign --gpg-sign
test_done