t / t5561-http-backend.shon commit tests: use 'test_atexit' to stop httpd (8c3b9f7)
   1#!/bin/sh
   2
   3test_description='test git-http-backend'
   4. ./test-lib.sh
   5. "$TEST_DIRECTORY"/lib-httpd.sh
   6
   7if ! test_have_prereq CURL; then
   8        skip_all='skipping raw http-backend tests, curl not available'
   9        test_done
  10fi
  11
  12start_httpd
  13
  14GET() {
  15        curl --include "$HTTPD_URL/$SMART/repo.git/$1" >out &&
  16        tr '\015' Q <out |
  17        sed '
  18                s/Q$//
  19                1q
  20        ' >act &&
  21        echo "HTTP/1.1 $2" >exp &&
  22        test_cmp exp act
  23}
  24
  25POST() {
  26        curl --include --data "$2" \
  27        --header "Content-Type: application/x-$1-request" \
  28        "$HTTPD_URL/smart/repo.git/$1" >out &&
  29        tr '\015' Q <out |
  30        sed '
  31                s/Q$//
  32                1q
  33        ' >act &&
  34        echo "HTTP/1.1 $3" >exp &&
  35        test_cmp exp act
  36}
  37
  38. "$TEST_DIRECTORY"/t556x_common
  39
  40grep '^[^#]' >exp <<EOF
  41
  42###  refs/heads/master
  43###
  44GET  /smart/repo.git/refs/heads/master HTTP/1.1 404 -
  45
  46###  getanyfile default
  47###
  48GET  /smart/repo.git/HEAD HTTP/1.1 200
  49GET  /smart/repo.git/info/refs HTTP/1.1 200
  50GET  /smart/repo.git/objects/info/packs HTTP/1.1 200
  51GET  /smart/repo.git/objects/info/alternates HTTP/1.1 200 -
  52GET  /smart/repo.git/objects/info/http-alternates HTTP/1.1 200 -
  53GET  /smart/repo.git/$LOOSE_URL HTTP/1.1 200
  54GET  /smart/repo.git/$PACK_URL HTTP/1.1 200
  55GET  /smart/repo.git/$IDX_URL HTTP/1.1 200
  56
  57###  no git-daemon-export-ok
  58###
  59GET  /smart_noexport/repo.git/HEAD HTTP/1.1 404 -
  60GET  /smart_noexport/repo.git/info/refs HTTP/1.1 404 -
  61GET  /smart_noexport/repo.git/objects/info/packs HTTP/1.1 404 -
  62GET  /smart_noexport/repo.git/objects/info/alternates HTTP/1.1 404 -
  63GET  /smart_noexport/repo.git/objects/info/http-alternates HTTP/1.1 404 -
  64GET  /smart_noexport/repo.git/$LOOSE_URL HTTP/1.1 404 -
  65GET  /smart_noexport/repo.git/$PACK_URL HTTP/1.1 404 -
  66GET  /smart_noexport/repo.git/$IDX_URL HTTP/1.1 404 -
  67
  68###  git-daemon-export-ok
  69###
  70GET  /smart_noexport/repo.git/HEAD HTTP/1.1 200
  71GET  /smart_noexport/repo.git/info/refs HTTP/1.1 200
  72GET  /smart_noexport/repo.git/objects/info/packs HTTP/1.1 200
  73GET  /smart_noexport/repo.git/objects/info/alternates HTTP/1.1 200 -
  74GET  /smart_noexport/repo.git/objects/info/http-alternates HTTP/1.1 200 -
  75GET  /smart_noexport/repo.git/$LOOSE_URL HTTP/1.1 200
  76GET  /smart_noexport/repo.git/$PACK_URL HTTP/1.1 200
  77GET  /smart_noexport/repo.git/$IDX_URL HTTP/1.1 200
  78
  79###  getanyfile true
  80###
  81GET  /smart/repo.git/HEAD HTTP/1.1 200
  82GET  /smart/repo.git/info/refs HTTP/1.1 200
  83GET  /smart/repo.git/objects/info/packs HTTP/1.1 200
  84GET  /smart/repo.git/objects/info/alternates HTTP/1.1 200 -
  85GET  /smart/repo.git/objects/info/http-alternates HTTP/1.1 200 -
  86GET  /smart/repo.git/$LOOSE_URL HTTP/1.1 200
  87GET  /smart/repo.git/$PACK_URL HTTP/1.1 200
  88GET  /smart/repo.git/$IDX_URL HTTP/1.1 200
  89
  90###  getanyfile false
  91###
  92GET  /smart/repo.git/HEAD HTTP/1.1 403 -
  93GET  /smart/repo.git/info/refs HTTP/1.1 403 -
  94GET  /smart/repo.git/objects/info/packs HTTP/1.1 403 -
  95GET  /smart/repo.git/objects/info/alternates HTTP/1.1 403 -
  96GET  /smart/repo.git/objects/info/http-alternates HTTP/1.1 403 -
  97GET  /smart/repo.git/$LOOSE_URL HTTP/1.1 403 -
  98GET  /smart/repo.git/$PACK_URL HTTP/1.1 403 -
  99GET  /smart/repo.git/$IDX_URL HTTP/1.1 403 -
 100
 101###  uploadpack default
 102###
 103GET  /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
 104POST /smart/repo.git/git-upload-pack HTTP/1.1 200 -
 105
 106###  uploadpack true
 107###
 108GET  /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
 109POST /smart/repo.git/git-upload-pack HTTP/1.1 200 -
 110
 111###  uploadpack false
 112###
 113GET  /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1 403 -
 114POST /smart/repo.git/git-upload-pack HTTP/1.1 403 -
 115
 116###  receivepack default
 117###
 118GET  /smart/repo.git/info/refs?service=git-receive-pack HTTP/1.1 403 -
 119POST /smart/repo.git/git-receive-pack HTTP/1.1 403 -
 120
 121###  receivepack true
 122###
 123GET  /smart/repo.git/info/refs?service=git-receive-pack HTTP/1.1 200
 124POST /smart/repo.git/git-receive-pack HTTP/1.1 200 -
 125
 126###  receivepack false
 127###
 128GET  /smart/repo.git/info/refs?service=git-receive-pack HTTP/1.1 403 -
 129POST /smart/repo.git/git-receive-pack HTTP/1.1 403 -
 130EOF
 131test_expect_success 'server request log matches test results' '
 132        check_access_log exp
 133'
 134
 135test_done