remote-hg: add check_push() helper

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Felipe Contreras committed May 24, 2013 at 21:29 UTC 42cbbcc73b312e2306f051f89702799546aa7953
1 file changed +49 -17
contrib/remote-helpers/test-hg.sh
+49 -17
@@ -48,6 +48,38 @@ check_bookmark () {
48 fi
49 }
50
51 +check_push () {
52 + local expected_ret=$1 ret=0 ref_ret=0 IFS=':'
53 +
54 + shift
55 + git push origin "$@" 2> error
56 + ret=$?
57 + cat error
58 +
59 + while read branch kind
60 + do
61 + case "$kind" in
62 + 'new')
63 + grep "^ \* \[new branch\] *${branch} -> ${branch}$" error || ref_ret=1
64 + ;;
65 + 'non-fast-forward')
66 + grep "^ ! \[rejected\] *${branch} -> ${branch} (non-fast-forward)$" error || ref_ret=1
67 + ;;
68 + '')
69 + grep "^ [a-f0-9]*\.\.[a-f0-9]* *${branch} -> ${branch}$" error || ref_ret=1
70 + ;;
71 + esac
72 + let 'ref_ret' && echo "match for '$branch' failed" && break
73 + done
74 +
75 + if let 'expected_ret != ret || ref_ret'
76 + then
77 + return 1
78 + fi
79 +
80 + return 0
81 +}
82 +
83 setup () {
84 (
85 echo "[ui]"
@@ -344,8 +376,9 @@ test_expect_success 'remote push diverged' '
376 cd gitrepo &&
377 echo diverge > content &&
378 git commit -a -m diverged &&
347 - test_expect_code 1 git push 2> error &&
348 - grep "^ ! \[rejected\] *master -> master (non-fast-forward)$" error
379 + check_push 1 <<-EOF
380 + master:non-fast-forward
381 + EOF
382 ) &&
383
384 check_branch hgrepo default bump
@@ -373,8 +406,9 @@ test_expect_success 'remote update bookmark diverge' '
406 git checkout --quiet diverge &&
407 echo diverge > content &&
408 git commit -a -m diverge &&
376 - test_expect_code 1 git push 2> error &&
377 - grep "^ ! \[rejected\] *diverge -> diverge (non-fast-forward)$" error
409 + check_push 1 <<-EOF
410 + diverge:non-fast-forward
411 + EOF
412 ) &&
413
414 check_bookmark hgrepo diverge "bump bookmark"
@@ -468,19 +502,17 @@ test_expect_success 'remote big push' '
502
503 (
504 cd gitrepo &&
471 - test_expect_code 1 git push origin master \
472 - good_bmark bad_bmark1 bad_bmark2 new_bmark \
473 - branches/good_branch branches/bad_branch \
474 - branches/new_branch 2> error &&
475 -
476 - grep "^ [a-f0-9]*\.\.[a-f0-9]* *master -> master$" error &&
477 - grep "^ [a-f0-9]*\.\.[a-f0-9]* *good_bmark -> good_bmark$" error &&
478 - grep "^ \* \[new branch\] *new_bmark -> new_bmark$" error &&
479 - grep "^ ! \[rejected\] *bad_bmark2 -> bad_bmark2 (non-fast-forward)$" error &&
480 - grep "^ ! \[rejected\] *bad_bmark1 -> bad_bmark1 (non-fast-forward)$" error &&
481 - grep "^ [a-f0-9]*\.\.[a-f0-9]* *branches/good_branch -> branches/good_branch$" error &&
482 - grep "^ ! \[rejected\] *branches/bad_branch -> branches/bad_branch (non-fast-forward)$" error &&
483 - grep "^ \* \[new branch\] *branches/new_branch -> branches/new_branch$" error
505 +
506 + check_push 1 --all <<-EOF
507 + master
508 + good_bmark
509 + branches/good_branch
510 + new_bmark:new
511 + branches/new_branch:new
512 + bad_bmark1:non-fast-forward
513 + bad_bmark2:non-fast-forward
514 + branches/bad_branch:non-fast-forward
515 + EOF
516 ) &&
517
518 check_branch hgrepo default one &&