upload-pack: feed "kind [clone|fetch]" to post-upload-pack hook
[alt-git.git] / t / t5501-post-upload-pack.sh
blobd89fb51bad36acd9affc862a5086674aad5847d9
1 #!/bin/sh
3 test_description='post upload-hook'
5 . ./test-lib.sh
7 LOGFILE=".git/post-upload-pack-log"
9 test_expect_success setup '
10 test_commit A &&
11 test_commit B &&
12 git reset --hard A &&
13 test_commit C &&
14 git branch prev B &&
15 mkdir -p .git/hooks &&
17 echo "#!$SHELL_PATH" &&
18 echo "cat >post-upload-pack-log"
19 } >".git/hooks/post-upload-pack" &&
20 chmod +x .git/hooks/post-upload-pack
23 test_expect_success initial '
24 rm -fr sub &&
25 git init sub &&
27 cd sub &&
28 git fetch --no-tags .. prev
29 ) &&
30 want=$(sed -n "s/^want //p" "$LOGFILE") &&
31 test "$want" = "$(git rev-parse --verify B)" &&
32 ! grep "^have " "$LOGFILE" &&
33 kind=$(sed -n "s/^kind //p" "$LOGFILE") &&
34 test "$kind" = fetch
37 test_expect_success second '
38 rm -fr sub &&
39 git init sub &&
41 cd sub &&
42 git fetch --no-tags .. prev:refs/remotes/prev &&
43 git fetch --no-tags .. master
44 ) &&
45 want=$(sed -n "s/^want //p" "$LOGFILE") &&
46 test "$want" = "$(git rev-parse --verify C)" &&
47 have=$(sed -n "s/^have //p" "$LOGFILE") &&
48 test "$have" = "$(git rev-parse --verify B)" &&
49 kind=$(sed -n "s/^kind //p" "$LOGFILE") &&
50 test "$kind" = fetch
53 test_expect_success all '
54 rm -fr sub &&
55 HERE=$(pwd) &&
56 git init sub &&
58 cd sub &&
59 git clone "file://$HERE/.git" new
60 ) &&
61 sed -n "s/^want //p" "$LOGFILE" | sort >actual &&
62 git rev-parse A B C | sort >expect &&
63 test_cmp expect actual &&
64 ! grep "^have " "$LOGFILE" &&
65 kind=$(sed -n "s/^kind //p" "$LOGFILE") &&
66 test "$kind" = clone
69 test_done