Code

Merge branch 'js/maint-merge-use-prepare-commit-msg-hook'
[git.git] / t / t9800-git-p4.sh
1 #!/bin/sh
3 test_description='git-p4 tests'
5 . ./test-lib.sh
7 ( p4 -h && p4d -h ) >/dev/null 2>&1 || {
8         skip_all='skipping git-p4 tests; no p4 or p4d'
9         test_done
10 }
12 GITP4=$GIT_BUILD_DIR/contrib/fast-import/git-p4
13 P4DPORT=10669
15 db="$TRASH_DIRECTORY/db"
16 cli="$TRASH_DIRECTORY/cli"
17 git="$TRASH_DIRECTORY/git"
19 test_debug 'echo p4d -q -d -r "$db" -p $P4DPORT'
20 test_expect_success setup '
21         mkdir -p "$db" &&
22         p4d -q -d -r "$db" -p $P4DPORT &&
23         mkdir -p "$cli" &&
24         mkdir -p "$git" &&
25         export P4PORT=localhost:$P4DPORT
26 '
28 test_expect_success 'add p4 files' '
29         cd "$cli" &&
30         p4 client -i <<-EOF &&
31         Client: client
32         Description: client
33         Root: $cli
34         View: //depot/... //client/...
35         EOF
36         export P4CLIENT=client &&
37         echo file1 >file1 &&
38         p4 add file1 &&
39         p4 submit -d "file1" &&
40         cd "$TRASH_DIRECTORY"
41 '
43 test_expect_success 'basic git-p4 clone' '
44         "$GITP4" clone --dest="$git" //depot &&
45         rm -rf "$git" && mkdir "$git"
46 '
48 test_expect_success 'exit when p4 fails to produce marshaled output' '
49         badp4dir="$TRASH_DIRECTORY/badp4dir" &&
50         mkdir -p "$badp4dir" &&
51         cat >"$badp4dir"/p4 <<-EOF &&
52         #!$SHELL_PATH
53         exit 1
54         EOF
55         chmod 755 "$badp4dir"/p4 &&
56         PATH="$badp4dir:$PATH" "$GITP4" clone --dest="$git" //depot >errs 2>&1 ; retval=$? &&
57         test $retval -eq 1 &&
58         test_must_fail grep -q Traceback errs
59 '
61 test_expect_success 'add p4 files with wildcards in the names' '
62         cd "$cli" &&
63         echo file-wild-hash >file-wild#hash &&
64         echo file-wild-star >file-wild\*star &&
65         echo file-wild-at >file-wild@at &&
66         echo file-wild-percent >file-wild%percent &&
67         p4 add -f file-wild* &&
68         p4 submit -d "file wildcards" &&
69         cd "$TRASH_DIRECTORY"
70 '
72 test_expect_success 'wildcard files git-p4 clone' '
73         "$GITP4" clone --dest="$git" //depot &&
74         cd "$git" &&
75         test -f file-wild#hash &&
76         test -f file-wild\*star &&
77         test -f file-wild@at &&
78         test -f file-wild%percent &&
79         cd "$TRASH_DIRECTORY" &&
80         rm -rf "$git" && mkdir "$git"
81 '
83 test_expect_success 'clone bare' '
84         "$GITP4" clone --dest="$git" --bare //depot &&
85         cd "$git" &&
86         test ! -d .git &&
87         bare=`git config --get core.bare` &&
88         test "$bare" = true &&
89         cd "$TRASH_DIRECTORY" &&
90         rm -rf "$git" && mkdir "$git"
91 '
93 test_expect_success 'shutdown' '
94         pid=`pgrep -f p4d` &&
95         test -n "$pid" &&
96         test_debug "ps wl `echo $pid`" &&
97         kill $pid
98 '
100 test_done