Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at> |
| 4 | # |
| 5 | |
| 6 | test_description='test http-push |
| 7 | |
| 8 | This test runs various sanity checks on http-push.' |
| 9 | |
| 10 | . ./test-lib.sh |
| 11 | |
| 12 | ROOT_PATH="$PWD" |
| 13 | LIB_HTTPD_DAV=t |
| 14 | |
Mike Hommey | 9608626 | 2008-07-07 21:02:50 +0200 | [diff] [blame] | 15 | if git http-push > /dev/null 2>&1 || [ $? -eq 128 ] |
| 16 | then |
| 17 | say "skipping test, USE_CURL_MULTI is not defined" |
| 18 | test_done |
| 19 | exit |
| 20 | fi |
| 21 | |
Junio C Hamano | bfdbee9 | 2008-08-08 02:26:28 -0700 | [diff] [blame] | 22 | . "$TEST_DIRECTORY"/lib-httpd.sh |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 23 | |
| 24 | if ! start_httpd >&3 2>&4 |
| 25 | then |
| 26 | say "skipping test, web server setup failed" |
| 27 | test_done |
| 28 | exit |
| 29 | fi |
| 30 | |
| 31 | test_expect_success 'setup remote repository' ' |
| 32 | cd "$ROOT_PATH" && |
| 33 | mkdir test_repo && |
| 34 | cd test_repo && |
| 35 | git init && |
| 36 | : >path1 && |
| 37 | git add path1 && |
| 38 | test_tick && |
| 39 | git commit -m initial && |
| 40 | cd - && |
| 41 | git clone --bare test_repo test_repo.git && |
| 42 | cd test_repo.git && |
| 43 | git --bare update-server-info && |
Petr Baudis | 7dce991 | 2008-08-12 00:34:46 +0200 | [diff] [blame] | 44 | mv hooks/post-update.sample hooks/post-update && |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 45 | cd - && |
Mike Hommey | 13b5481 | 2008-07-07 21:02:37 +0200 | [diff] [blame] | 46 | mv test_repo.git "$HTTPD_DOCUMENT_ROOT_PATH" |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 47 | ' |
Jeff King | 3b2eb18 | 2008-06-14 03:25:56 -0400 | [diff] [blame] | 48 | |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 49 | test_expect_success 'clone remote repository' ' |
| 50 | cd "$ROOT_PATH" && |
| 51 | git clone $HTTPD_URL/test_repo.git test_repo_clone |
| 52 | ' |
| 53 | |
Johannes Schindelin | 8ee09ac | 2009-01-17 16:41:41 +0100 | [diff] [blame] | 54 | test_expect_failure 'push to remote repository with packed refs' ' |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 55 | cd "$ROOT_PATH"/test_repo_clone && |
| 56 | : >path2 && |
| 57 | git add path2 && |
| 58 | test_tick && |
| 59 | git commit -m path2 && |
Johannes Schindelin | 8ee09ac | 2009-01-17 16:41:41 +0100 | [diff] [blame] | 60 | HEAD=$(git rev-parse --verify HEAD) && |
Mike Hommey | b5cd2d1 | 2008-07-07 23:06:46 +0200 | [diff] [blame] | 61 | git push && |
Johannes Schindelin | 8ee09ac | 2009-01-17 16:41:41 +0100 | [diff] [blame] | 62 | (cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git && |
| 63 | test $HEAD = $(git rev-parse --verify HEAD)) |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 64 | ' |
| 65 | |
Johannes Schindelin | 8ee09ac | 2009-01-17 16:41:41 +0100 | [diff] [blame] | 66 | test_expect_success ' push to remote repository with unpacked refs' ' |
| 67 | (cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git && |
| 68 | rm packed-refs && |
| 69 | git update-ref refs/heads/master \ |
| 70 | 0c973ae9bd51902a28466f3850b543fa66a6aaf4) && |
| 71 | git push && |
| 72 | (cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git && |
| 73 | test $HEAD = $(git rev-parse --verify HEAD)) |
| 74 | ' |
| 75 | |
| 76 | test_expect_success 'create and delete remote branch' ' |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 77 | cd "$ROOT_PATH"/test_repo_clone && |
| 78 | git checkout -b dev && |
| 79 | : >path3 && |
| 80 | git add path3 && |
| 81 | test_tick && |
| 82 | git commit -m dev && |
| 83 | git push origin dev && |
| 84 | git fetch && |
| 85 | git push origin :dev && |
| 86 | git branch -d -r origin/dev && |
| 87 | git fetch && |
Stephan Beyer | d492b31 | 2008-07-12 17:47:52 +0200 | [diff] [blame] | 88 | test_must_fail git show-ref --verify refs/remotes/origin/dev |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 89 | ' |
| 90 | |
Johannes Schindelin | 466ddf9 | 2009-01-17 16:11:51 +0100 | [diff] [blame] | 91 | test_expect_success 'MKCOL sends directory names with trailing slashes' ' |
| 92 | |
| 93 | ! grep "\"MKCOL.*[^/] HTTP/[^ ]*\"" < "$HTTPD_ROOT_PATH"/access.log |
| 94 | |
| 95 | ' |
| 96 | |
Tay Ray Chuan | dfab7c1 | 2009-02-14 17:52:14 +0800 | [diff] [blame^] | 97 | test_expect_success 'PUT and MOVE sends object to URLs with SHA-1 hash suffix' ' |
| 98 | |
| 99 | grep -P "\"(?:PUT|MOVE) .+objects/[\da-z]{2}/[\da-z]{38}_[\da-z\-]{40} HTTP/[0-9.]+\" 20\d" \ |
| 100 | < "$HTTPD_ROOT_PATH"/access.log |
| 101 | |
| 102 | ' |
| 103 | |
Clemens Buchacher | faa4bc3 | 2008-02-27 20:28:45 +0100 | [diff] [blame] | 104 | stop_httpd |
| 105 | |
| 106 | test_done |