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 &&