Browse Source

t554[01]-http-push: refactor, add non-ff tests

Move non-fast forward tests to lib-httpd.sh so that we don't have to
duplicate the tests in both t5540 and t5541.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Tay Ray Chuan 15 years ago committed by Junio C Hamano
parent
commit
6cbd6e9261
  1. 29
      t/lib-httpd.sh
  2. 3
      t/t5540-http-push.sh
  3. 24
      t/t5541-http-push.sh

29
t/lib-httpd.sh

@ -131,3 +131,32 @@ stop_httpd() { @@ -131,3 +131,32 @@ stop_httpd() {
"$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
-f "$TEST_PATH/apache.conf" $HTTPD_PARA -k stop
}

test_http_push_nonff() {
REMOTE_REPO=$1
LOCAL_REPO=$2
BRANCH=$3

test_expect_success 'non-fast-forward push fails' '
cd "$REMOTE_REPO" &&
HEAD=$(git rev-parse --verify HEAD) &&

cd "$LOCAL_REPO" &&
git checkout $BRANCH &&
echo "changed" > path2 &&
git commit -a -m path2 --amend &&

!(git push -v origin >output 2>&1) &&
(cd "$REMOTE_REPO" &&
test $HEAD = $(git rev-parse --verify HEAD))
'

test_expect_success 'non-fast-forward push show ref status' '
grep "^ ! \[rejected\][ ]*$BRANCH -> $BRANCH (non-fast-forward)$" output
'

test_expect_success 'non-fast-forward push shows help message' '
grep "To prevent you from losing history, non-fast-forward updates were rejected" \
output
'
}

3
t/t5540-http-push.sh

@ -137,6 +137,9 @@ test_expect_success 'PUT and MOVE sends object to URLs with SHA-1 hash suffix' ' @@ -137,6 +137,9 @@ test_expect_success 'PUT and MOVE sends object to URLs with SHA-1 hash suffix' '

'

test_http_push_nonff "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git \
"$ROOT_PATH"/test_repo_clone master

stop_httpd

test_done

24
t/t5541-http-push.sh

@ -88,28 +88,8 @@ test_expect_success 'used receive-pack service' ' @@ -88,28 +88,8 @@ test_expect_success 'used receive-pack service' '
test_cmp exp act
'

test_expect_success 'non-fast-forward push fails' '
cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
HEAD=$(git rev-parse --verify HEAD) &&

cd "$ROOT_PATH"/test_repo_clone &&
git checkout master &&
echo "changed" > path2 &&
git commit -a -m path2 --amend &&

!(git push -v origin >output 2>&1) &&
(cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
test $HEAD = $(git rev-parse --verify HEAD))
'

test_expect_success 'non-fast-forward push show ref status' '
grep "^ ! \[rejected\][ ]*master -> master (non-fast-forward)$" output
'

test_expect_success 'non-fast-forward push shows help message' '
grep "To prevent you from losing history, non-fast-forward updates were rejected" \
output
'
test_http_push_nonff "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git \
"$ROOT_PATH"/test_repo_clone master

test_expect_success 'push fails for non-fast-forward refs unmatched by remote helper' '
# create a dissimilarly-named remote ref so that git is unable to match the

Loading…
Cancel
Save