remote-hg: add check_push() helper
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
2b02a40587
commit
42cbbcc73b
@ -48,6 +48,38 @@ check_bookmark () {
|
||||
fi
|
||||
}
|
||||
|
||||
check_push () {
|
||||
local expected_ret=$1 ret=0 ref_ret=0 IFS=':'
|
||||
|
||||
shift
|
||||
git push origin "$@" 2> error
|
||||
ret=$?
|
||||
cat error
|
||||
|
||||
while read branch kind
|
||||
do
|
||||
case "$kind" in
|
||||
'new')
|
||||
grep "^ \* \[new branch\] *${branch} -> ${branch}$" error || ref_ret=1
|
||||
;;
|
||||
'non-fast-forward')
|
||||
grep "^ ! \[rejected\] *${branch} -> ${branch} (non-fast-forward)$" error || ref_ret=1
|
||||
;;
|
||||
'')
|
||||
grep "^ [a-f0-9]*\.\.[a-f0-9]* *${branch} -> ${branch}$" error || ref_ret=1
|
||||
;;
|
||||
esac
|
||||
let 'ref_ret' && echo "match for '$branch' failed" && break
|
||||
done
|
||||
|
||||
if let 'expected_ret != ret || ref_ret'
|
||||
then
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
setup () {
|
||||
(
|
||||
echo "[ui]"
|
||||
@ -344,8 +376,9 @@ test_expect_success 'remote push diverged' '
|
||||
cd gitrepo &&
|
||||
echo diverge > content &&
|
||||
git commit -a -m diverged &&
|
||||
test_expect_code 1 git push 2> error &&
|
||||
grep "^ ! \[rejected\] *master -> master (non-fast-forward)$" error
|
||||
check_push 1 <<-EOF
|
||||
master:non-fast-forward
|
||||
EOF
|
||||
) &&
|
||||
|
||||
check_branch hgrepo default bump
|
||||
@ -373,8 +406,9 @@ test_expect_success 'remote update bookmark diverge' '
|
||||
git checkout --quiet diverge &&
|
||||
echo diverge > content &&
|
||||
git commit -a -m diverge &&
|
||||
test_expect_code 1 git push 2> error &&
|
||||
grep "^ ! \[rejected\] *diverge -> diverge (non-fast-forward)$" error
|
||||
check_push 1 <<-EOF
|
||||
diverge:non-fast-forward
|
||||
EOF
|
||||
) &&
|
||||
|
||||
check_bookmark hgrepo diverge "bump bookmark"
|
||||
@ -468,19 +502,17 @@ test_expect_success 'remote big push' '
|
||||
|
||||
(
|
||||
cd gitrepo &&
|
||||
test_expect_code 1 git push origin master \
|
||||
good_bmark bad_bmark1 bad_bmark2 new_bmark \
|
||||
branches/good_branch branches/bad_branch \
|
||||
branches/new_branch 2> error &&
|
||||
|
||||
grep "^ [a-f0-9]*\.\.[a-f0-9]* *master -> master$" error &&
|
||||
grep "^ [a-f0-9]*\.\.[a-f0-9]* *good_bmark -> good_bmark$" error &&
|
||||
grep "^ \* \[new branch\] *new_bmark -> new_bmark$" error &&
|
||||
grep "^ ! \[rejected\] *bad_bmark2 -> bad_bmark2 (non-fast-forward)$" error &&
|
||||
grep "^ ! \[rejected\] *bad_bmark1 -> bad_bmark1 (non-fast-forward)$" error &&
|
||||
grep "^ [a-f0-9]*\.\.[a-f0-9]* *branches/good_branch -> branches/good_branch$" error &&
|
||||
grep "^ ! \[rejected\] *branches/bad_branch -> branches/bad_branch (non-fast-forward)$" error &&
|
||||
grep "^ \* \[new branch\] *branches/new_branch -> branches/new_branch$" error
|
||||
check_push 1 --all <<-EOF
|
||||
master
|
||||
good_bmark
|
||||
branches/good_branch
|
||||
new_bmark:new
|
||||
branches/new_branch:new
|
||||
bad_bmark1:non-fast-forward
|
||||
bad_bmark2:non-fast-forward
|
||||
branches/bad_branch:non-fast-forward
|
||||
EOF
|
||||
) &&
|
||||
|
||||
check_branch hgrepo default one &&
|
||||
|
Loading…
Reference in New Issue
Block a user