]>
Commit | Line | Data |
---|---|---|
fc002330 | 1 | # |
6ab1d76c | 2 | # Library code for git p4 tests |
fc002330 PW |
3 | # |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | if ! test_have_prereq PYTHON; then | |
6ab1d76c | 8 | skip_all='skipping git p4 tests; python not available' |
fc002330 PW |
9 | test_done |
10 | fi | |
11 | ( p4 -h && p4d -h ) >/dev/null 2>&1 || { | |
6ab1d76c | 12 | skip_all='skipping git p4 tests; no p4 or p4d' |
fc002330 PW |
13 | test_done |
14 | } | |
15 | ||
fc002330 PW |
16 | # Try to pick a unique port: guess a large number, then hope |
17 | # no more than one of each test is running. | |
18 | # | |
19 | # This does not handle the case where somebody else is running the | |
20 | # same tests and has chosen the same ports. | |
21 | testid=${this_test#t} | |
22 | git_p4_test_start=9800 | |
23 | P4DPORT=$((10669 + ($testid - $git_p4_test_start))) | |
24 | ||
25 | export P4PORT=localhost:$P4DPORT | |
26 | export P4CLIENT=client | |
1e3e7180 | 27 | export P4EDITOR=: |
fc002330 PW |
28 | |
29 | db="$TRASH_DIRECTORY/db" | |
30 | cli="$TRASH_DIRECTORY/cli" | |
31 | git="$TRASH_DIRECTORY/git" | |
32 | pidfile="$TRASH_DIRECTORY/p4d.pid" | |
33 | ||
34 | start_p4d() { | |
35 | mkdir -p "$db" "$cli" "$git" && | |
36 | ( | |
37 | p4d -q -r "$db" -p $P4DPORT & | |
38 | echo $! >"$pidfile" | |
39 | ) && | |
40 | for i in 1 2 3 4 5 ; do | |
41 | p4 info >/dev/null 2>&1 && break || true && | |
42 | echo waiting for p4d to start && | |
43 | sleep 1 | |
44 | done && | |
45 | # complain if it never started | |
46 | p4 info >/dev/null && | |
47 | ( | |
48 | cd "$cli" && | |
49 | p4 client -i <<-EOF | |
50 | Client: client | |
51 | Description: client | |
52 | Root: $cli | |
53 | View: //depot/... //client/... | |
54 | EOF | |
55 | ) | |
56 | } | |
57 | ||
58 | kill_p4d() { | |
59 | pid=$(cat "$pidfile") | |
60 | # it had better exist for the first kill | |
61 | kill $pid && | |
62 | for i in 1 2 3 4 5 ; do | |
63 | kill $pid >/dev/null 2>&1 || break | |
64 | sleep 1 | |
65 | done && | |
66 | # complain if it would not die | |
67 | test_must_fail kill $pid >/dev/null 2>&1 && | |
68 | rm -rf "$db" "$cli" "$pidfile" | |
69 | } | |
70 | ||
71 | cleanup_git() { | |
72 | rm -rf "$git" | |
73 | } |