]>
Commit | Line | Data |
---|---|---|
ff3d656b ZJS |
1 | #!/bin/sh |
2 | ||
6ab1d76c | 3 | test_description='git p4 label tests' |
4139ecc2 LD |
4 | |
5 | . ./lib-git-p4.sh | |
6 | ||
7 | test_expect_success 'start p4d' ' | |
8 | start_p4d | |
9 | ' | |
10 | ||
11 | # Basic p4 label tests. | |
12 | # | |
13 | # Note: can't have more than one label per commit - others | |
14 | # are silently discarded. | |
15 | # | |
16 | test_expect_success 'basic p4 labels' ' | |
17 | test_when_finished cleanup_git && | |
18 | ( | |
19 | cd "$cli" && | |
20 | mkdir -p main && | |
21 | ||
22 | echo f1 >main/f1 && | |
23 | p4 add main/f1 && | |
24 | p4 submit -d "main/f1" && | |
25 | ||
26 | echo f2 >main/f2 && | |
27 | p4 add main/f2 && | |
28 | p4 submit -d "main/f2" && | |
29 | ||
30 | echo f3 >main/file_with_\$metachar && | |
31 | p4 add main/file_with_\$metachar && | |
32 | p4 submit -d "file with metachar" && | |
33 | ||
34 | p4 tag -l tag_f1_only main/f1 && | |
35 | p4 tag -l tag_with\$_shell_char main/... && | |
36 | ||
37 | echo f4 >main/f4 && | |
38 | p4 add main/f4 && | |
39 | p4 submit -d "main/f4" && | |
40 | ||
41 | p4 label -i <<-EOF && | |
42 | Label: long_label | |
43 | Description: | |
44 | A Label first line | |
45 | A Label second line | |
46 | View: //depot/... | |
47 | EOF | |
48 | ||
49 | p4 tag -l long_label ... && | |
50 | ||
51 | p4 labels ... && | |
52 | ||
6ab1d76c | 53 | git p4 clone --dest="$git" --detect-labels //depot@all && |
4139ecc2 LD |
54 | cd "$git" && |
55 | ||
56 | git tag && | |
57 | git tag >taglist && | |
58 | test_line_count = 3 taglist && | |
59 | ||
60 | cd main && | |
61 | git checkout tag_tag_f1_only && | |
62 | ! test -f f2 && | |
63 | git checkout tag_tag_with\$_shell_char && | |
64 | test -f f1 && test -f f2 && test -f file_with_\$metachar && | |
65 | ||
66 | git show tag_long_label | grep -q "A Label second line" | |
67 | ) | |
68 | ' | |
69 | ||
a080558e LD |
70 | # Test some label corner cases: |
71 | # | |
72 | # - two tags on the same file; both should be available | |
73 | # - a tag that is only on one file; this kind of tag | |
74 | # cannot be imported (at least not easily). | |
75 | ||
76 | test_expect_failure 'two labels on the same changelist' ' | |
77 | test_when_finished cleanup_git && | |
78 | ( | |
79 | cd "$cli" && | |
80 | mkdir -p main && | |
81 | ||
82 | p4 edit main/f1 main/f2 && | |
83 | echo "hello world" >main/f1 && | |
84 | echo "not in the tag" >main/f2 && | |
85 | p4 submit -d "main/f[12]: testing two labels" && | |
86 | ||
87 | p4 tag -l tag_f1_1 main/... && | |
88 | p4 tag -l tag_f1_2 main/... && | |
89 | ||
90 | p4 labels ... && | |
91 | ||
6ab1d76c | 92 | git p4 clone --dest="$git" --detect-labels //depot@all && |
a080558e LD |
93 | cd "$git" && |
94 | ||
95 | git tag | grep tag_f1 && | |
96 | git tag | grep -q tag_f1_1 && | |
97 | git tag | grep -q tag_f1_2 && | |
98 | ||
99 | cd main && | |
100 | ||
101 | git checkout tag_tag_f1_1 && | |
102 | ls && | |
103 | test -f f1 && | |
104 | ||
105 | git checkout tag_tag_f1_2 && | |
106 | ls && | |
107 | test -f f1 | |
108 | ) | |
109 | ' | |
110 | ||
4139ecc2 | 111 | test_done |