|
2 | 2 |
|
3 | 3 | load 'util/init.sh'
|
4 | 4 |
|
5 |
| -@test "links each file on the BINS config on package.sh to the install bin" { |
6 |
| - local package="username/package" |
| 5 | +@test "does not fail if there are no binaries" { |
| 6 | + local pkg='username/package' |
| 7 | + |
| 8 | + test_util.setup_pkg "$pkg"; { |
| 9 | + : |
| 10 | + }; test_util.finish_pkg |
| 11 | + test_util.fake_install "$pkg" |
| 12 | + |
| 13 | + run do-plumbing-link-bins "$pkg" |
| 14 | + |
| 15 | + assert_success |
| 16 | +} |
| 17 | + |
| 18 | +@test "adds bins determined from package.sh" { |
| 19 | + local pkg='username/package' |
| 20 | + |
| 21 | + test_util.setup_pkg "$pkg"; { |
| 22 | + echo 'BINS="binn/exec1:binn/exec2.sh"' > 'package.sh' |
| 23 | + mkdir 'binn' |
| 24 | + touch 'binn/exec1' |
| 25 | + touch 'binn/exec2.sh' |
| 26 | + }; test_util.finish_pkg |
| 27 | + test_util.fake_install "$pkg" |
| 28 | + |
| 29 | + run do-plumbing-link-bins "$pkg" |
| 30 | + |
| 31 | + assert_success |
| 32 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/$pkg/binn/exec1" ] |
| 33 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec2.sh)" = "$BPM_PACKAGES_PATH/$pkg/binn/exec2.sh" ] |
| 34 | +} |
| 35 | + |
| 36 | + |
| 37 | +@test "adds bins determined from package.sh (and not with heuristics)" { |
| 38 | + local pkg="username/package" |
7 | 39 |
|
8 |
| - create_package username/package |
9 |
| - create_package_exec username/package exec1 |
10 |
| - create_package_exec username/package exec2.sh |
11 |
| - test_util.fake_clone "$package" |
| 40 | + test_util.setup_pkg "$pkg"; { |
| 41 | + echo 'BINS="ff/exec3"' > 'package.sh' |
| 42 | + mkdir 'bin' |
| 43 | + touch 'bin/exec1' |
| 44 | + touch 'bin/exec2' |
| 45 | + mkdir 'ff' |
| 46 | + touch 'ff/exec3' |
| 47 | + }; test_util.finish_pkg |
| 48 | + test_util.fake_install "$pkg" |
12 | 49 |
|
13 |
| - run do-plumbing-link-bins username/package |
| 50 | + run do-plumbing-link-bins "$pkg" |
14 | 51 |
|
15 | 52 | assert_success
|
16 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/username/package/package_bin/exec1" ] |
17 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec2.sh)" = "$BPM_PACKAGES_PATH/username/package/package_bin/exec2.sh" ] |
| 53 | + assert [ ! -e "$(readlink $BPM_INSTALL_BIN/exec1)" ] |
| 54 | + assert [ ! -e "$(readlink $BPM_INSTALL_BIN/exec2)" ] |
| 55 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec3)" = "$BPM_PACKAGES_PATH/$pkg/ff/exec3" ] |
18 | 56 | }
|
19 | 57 |
|
20 |
| -@test "links each file on the binDirs config on bpm.toml to the install bin" { |
21 |
| - local package="username/package" |
| 58 | +@test "adds bins determined from bpm.toml" { |
| 59 | + local pkg='username/package' |
22 | 60 |
|
23 |
| - create_package "$package" |
24 |
| - cd "$BPM_ORIGIN_DIR/$package" |
25 |
| - mkdir 'weird_dir' |
26 |
| - touch 'weird_dir/exec1' |
27 |
| - touch 'weird_dir/exec2.sh' |
28 |
| - echo 'binDirs = [ "weird_dir" ]' > 'bpm.toml' |
29 |
| - git add . |
30 |
| - git commit -m "Add package exec: $exec" |
31 |
| - cd "$BPM_CWD" |
32 |
| - test_util.fake_clone "$package" |
| 61 | + test_util.setup_pkg "$pkg"; { |
| 62 | + echo 'binDirs = [ "weird_dir" ]' > 'bpm.toml' |
| 63 | + mkdir 'weird_dir' |
| 64 | + touch 'weird_dir/exec1' |
| 65 | + touch 'weird_dir/exec2.sh' |
| 66 | + }; test_util.finish_pkg |
| 67 | + test_util.fake_install "$pkg" |
33 | 68 |
|
34 |
| - run do-plumbing-link-bins "$package" |
| 69 | + run do-plumbing-link-bins "$pkg" |
35 | 70 |
|
36 | 71 | assert_success
|
37 |
| - assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$package/weird_dir/exec1" ] |
38 |
| - assert [ "$(readlink "$BPM_INSTALL_BIN/exec2.sh")" = "$BPM_PACKAGES_PATH/$package/weird_dir/exec2.sh" ] |
| 72 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/weird_dir/exec1" ] |
| 73 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec2.sh")" = "$BPM_PACKAGES_PATH/$pkg/weird_dir/exec2.sh" ] |
39 | 74 | }
|
40 | 75 |
|
41 |
| -@test "links each file inside bin folder to install bin" { |
42 |
| - local package="username/package" |
| 76 | +@test "adds bins determined from bpm.toml (and not heuristics)" { |
| 77 | + local pkg='username/package' |
43 | 78 |
|
44 |
| - create_package username/package |
45 |
| - create_exec username/package exec1 |
46 |
| - create_exec username/package exec2.sh |
47 |
| - test_util.fake_clone "$package" |
| 79 | + test_util.setup_pkg "$pkg"; { |
| 80 | + echo 'binDirs = [ "weird_dir" ]' > 'bpm.toml' |
| 81 | + mkdir 'bin' |
| 82 | + touch 'bin/exec1' |
| 83 | + touch 'bin/exec2' |
| 84 | + mkdir 'weird_dir' |
| 85 | + touch 'weird_dir/exec3' |
| 86 | + }; test_util.finish_pkg |
| 87 | + test_util.fake_install "$pkg" |
48 | 88 |
|
49 |
| - run do-plumbing-link-bins username/package |
| 89 | + run do-plumbing-link-bins "$pkg" |
50 | 90 |
|
51 | 91 | assert_success
|
52 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/username/package/bin/exec1" ] |
53 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec2.sh)" = "$BPM_PACKAGES_PATH/username/package/bin/exec2.sh" ] |
| 92 | + assert [ ! -e "$BPM_INSTALL_BIN/exec1" ] |
| 93 | + assert [ ! -e "$BPM_INSTALL_BIN/exec2" ] |
| 94 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec3")" = "$BPM_PACKAGES_PATH/$pkg/weird_dir/exec3" ] |
54 | 95 | }
|
55 | 96 |
|
56 |
| -@test "links each exec file in package root to install bin" { |
57 |
| - local package="username/package" |
| 97 | +@test "adds bins determined with heuristics (bin directory)" { |
| 98 | + local pkg='username/package' |
58 | 99 |
|
59 |
| - create_package username/package |
60 |
| - create_root_exec username/package exec3 |
61 |
| - create_root_exec username/package exec4.sh |
62 |
| - test_util.fake_clone "$package" |
| 100 | + test_util.setup_pkg "$pkg"; { |
| 101 | + mkdir 'bin' |
| 102 | + touch 'bin/exec1' |
| 103 | + touch 'bin/exec2.sh' |
| 104 | + }; test_util.finish_pkg |
| 105 | + test_util.fake_install "$pkg" |
63 | 106 |
|
64 |
| - run do-plumbing-link-bins username/package |
| 107 | + run do-plumbing-link-bins "$pkg" |
65 | 108 |
|
66 | 109 | assert_success
|
67 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec3)" = "$BPM_PACKAGES_PATH/username/package/exec3" ] |
68 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec4.sh)" = "$BPM_PACKAGES_PATH/username/package/exec4.sh" ] |
| 110 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 111 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec2.sh)" = "$BPM_PACKAGES_PATH/$pkg/bin/exec2.sh" ] |
| 112 | +} |
| 113 | + |
| 114 | +@test "adds bins determined with heuristics (root directory)" { |
| 115 | + local pkg='username/package' |
| 116 | + |
| 117 | + test_util.setup_pkg "$pkg"; { |
| 118 | + touch 'exec1' |
| 119 | + touch 'exec2.sh' |
| 120 | + chmod +x 'exec1' 'exec2.sh' |
| 121 | + }; test_util.finish_pkg |
| 122 | + test_util.fake_install "$pkg" |
| 123 | + |
| 124 | + run do-plumbing-link-bins "$pkg" |
| 125 | + |
| 126 | + assert_success |
| 127 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/exec1" ] |
| 128 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec2.sh")" = "$BPM_PACKAGES_PATH/$pkg/exec2.sh" ] |
| 129 | +} |
| 130 | + |
| 131 | +@test "does not add bins that are not executable in root directory)" { |
| 132 | + local pkg='username/package' |
| 133 | + |
| 134 | + test_util.setup_pkg "$pkg"; { |
| 135 | + touch 'exec1' |
| 136 | + touch 'exec2.sh' |
| 137 | + }; test_util.finish_pkg |
| 138 | + test_util.fake_install "$pkg" |
| 139 | + |
| 140 | + run do-plumbing-link-bins "$pkg" |
| 141 | + |
| 142 | + assert_success |
| 143 | + assert [ ! -e "$BPM_INSTALL_BIN/exec3" ] |
| 144 | + assert [ ! -e "$BPM_INSTALL_BIN/exec4.sh" ] |
69 | 145 | }
|
70 | 146 |
|
71 | 147 | @test "doesn't link root bins if there is a bin folder" {
|
72 |
| - local package="username/package" |
| 148 | + local pkg="username/package" |
73 | 149 |
|
74 |
| - create_package username/package |
75 |
| - create_exec username/package exec1 |
76 |
| - create_root_exec username/package exec2 |
77 |
| - test_util.fake_clone "$package" |
| 150 | + test_util.setup_pkg "$pkg"; { |
| 151 | + mkdir 'bin' |
| 152 | + touch 'bin/exec1' |
| 153 | + touch 'exec2' |
| 154 | + chmod +x 'exec2' |
| 155 | + }; test_util.finish_pkg |
| 156 | + test_util.fake_install "$pkg" |
78 | 157 |
|
79 |
| - run do-plumbing-link-bins username/package |
| 158 | + run do-plumbing-link-bins "$pkg" |
80 | 159 |
|
81 | 160 | assert_success
|
82 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/username/package/bin/exec1" ] |
83 |
| - assert [ ! -e "$(readlink $BPM_INSTALL_BIN/exec2)" ] |
| 161 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 162 | + assert [ ! -e "$(readlink "$BPM_INSTALL_BIN/exec2")" ] |
84 | 163 | }
|
85 | 164 |
|
86 |
| -@test "doesn't link root bins or files in bin folder if there is a BINS config on package.sh" { |
87 |
| - local package="username/package" |
| 165 | +@test "remove extensions if REMOVE_EXTENSION is true in package.sh" { |
| 166 | + local pkg="username/package" |
88 | 167 |
|
89 |
| - create_package username/package |
90 |
| - create_exec username/package exec1 |
91 |
| - create_root_exec username/package exec2 |
92 |
| - create_package_exec username/package exec3 |
93 |
| - test_util.fake_clone "$package" |
| 168 | + test_util.setup_pkg "$pkg"; { |
| 169 | + echo 'REMOVE_EXTENSION="true"' > 'package.sh' |
| 170 | + mkdir bin |
| 171 | + touch 'bin/exec1' |
| 172 | + touch 'bin/exec2.sh' |
| 173 | + }; test_util.finish_pkg |
| 174 | + test_util.fake_clone "$pkg" |
94 | 175 |
|
95 |
| - run do-plumbing-link-bins username/package |
| 176 | + run do-plumbing-link-bins "$pkg" |
96 | 177 |
|
97 | 178 | assert_success
|
98 |
| - assert [ ! -e "$(readlink $BPM_INSTALL_BIN/exec1)" ] |
99 |
| - assert [ ! -e "$(readlink $BPM_INSTALL_BIN/exec2)" ] |
100 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec3)" = "$BPM_PACKAGES_PATH/username/package/package_bin/exec3" ] |
| 179 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 180 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec2")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec2.sh" ] |
101 | 181 | }
|
102 | 182 |
|
103 |
| -@test "does not fail if there are no binaries" { |
104 |
| - local package="username/package" |
| 183 | +# Backwards compatiblity |
| 184 | +@test "does not remove extensions if REMOVE_EXTENSION is set in package.sh" { |
| 185 | + local pkg="username/package" |
105 | 186 |
|
106 |
| - create_package username/package |
107 |
| - test_util.fake_clone "$package" |
| 187 | + test_util.setup_pkg "$pkg"; { |
| 188 | + echo 'REMOVE_EXTENSION=' > 'package.sh' |
| 189 | + mkdir bin |
| 190 | + touch 'bin/exec1' |
| 191 | + touch 'bin/exec2.sh' |
| 192 | + }; test_util.finish_pkg |
| 193 | + test_util.fake_clone "$pkg" |
108 | 194 |
|
109 |
| - run do-plumbing-link-bins username/package |
| 195 | + run do-plumbing-link-bins "$pkg" |
110 | 196 |
|
111 | 197 | assert_success
|
| 198 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 199 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec2.sh")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec2.sh" ] |
| 200 | + assert [ ! -e "$BPM_INSTALL_BIN/exec2" ] |
112 | 201 | }
|
113 | 202 |
|
114 |
| -@test "remove extension if REMOVE_EXTENSION is true" { |
115 |
| - local package="username/package" |
| 203 | +@test "does not remove extensions if REMOVE_EXTENSION is false in package.sh" { |
| 204 | + local pkg="username/package" |
116 | 205 |
|
117 |
| - create_package username/package |
118 |
| - create_exec username/package exec1 |
119 |
| - create_exec username/package exec2.sh |
120 |
| - set_remove_extension username/package true |
121 |
| - test_util.fake_clone "$package" |
| 206 | + test_util.setup_pkg "$pkg"; { |
| 207 | + echo 'REMOVE_EXTENSION="false"' > 'package.sh' |
| 208 | + mkdir bin |
| 209 | + touch 'bin/exec1' |
| 210 | + touch 'bin/exec2.sh' |
| 211 | + }; test_util.finish_pkg |
| 212 | + test_util.fake_clone "$pkg" |
122 | 213 |
|
123 |
| - run do-plumbing-link-bins username/package |
| 214 | + run do-plumbing-link-bins "$pkg" |
124 | 215 |
|
125 | 216 | assert_success
|
126 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/username/package/bin/exec1" ] |
127 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec2)" = "$BPM_PACKAGES_PATH/username/package/bin/exec2.sh" ] |
| 217 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 218 | + assert [ "$(readlink $BPM_INSTALL_BIN/exec2.sh)" = "$BPM_PACKAGES_PATH/$pkg/bin/exec2.sh" ] |
128 | 219 | }
|
129 | 220 |
|
130 |
| -@test "remove extension if binRemoveExtensions is true in bpm.toml" { |
131 |
| - local package="username/package" |
| 221 | +@test "remove extensions if binRemoveExtensions is 'yes' in bpm.toml" { |
| 222 | + local pkg="username/package" |
132 | 223 |
|
133 |
| - test_util.setup_pkg "$package"; { |
| 224 | + test_util.setup_pkg "$pkg"; { |
134 | 225 | echo 'binRemoveExtensions = "yes"' > 'bpm.toml'
|
135 | 226 | mkdir bin
|
136 | 227 | touch 'bin/exec1'
|
137 | 228 | touch 'bin/exec2.sh'
|
138 | 229 | }; test_util.finish_pkg
|
139 |
| - test_util.fake_clone "$package" |
| 230 | + test_util.fake_clone "$pkg" |
140 | 231 |
|
141 |
| - run do-plumbing-link-bins username/package |
| 232 | + run do-plumbing-link-bins "$pkg" |
142 | 233 |
|
143 | 234 | assert_success
|
144 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/username/package/bin/exec1" ] |
145 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec2)" = "$BPM_PACKAGES_PATH/username/package/bin/exec2.sh" ] |
| 235 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 236 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec2")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec2.sh" ] |
146 | 237 | }
|
147 | 238 |
|
| 239 | +@test "do not remove extensions if binRemoveExtensions is 'no' in bpm.toml" { |
| 240 | + local pkg="username/package" |
148 | 241 |
|
149 |
| -@test "does not remove extension if REMOVE_EXTENSION is false" { |
150 |
| - local package="username/package" |
151 |
| - |
152 |
| - create_package username/package |
153 |
| - create_exec username/package exec1 |
154 |
| - create_exec username/package exec2.sh |
155 |
| - set_remove_extension username/package false |
156 |
| - test_util.fake_clone "$package" |
| 242 | + test_util.setup_pkg "$pkg"; { |
| 243 | + echo 'binRemoveExtensions = "no"' > 'bpm.toml' |
| 244 | + mkdir bin |
| 245 | + touch 'bin/exec1' |
| 246 | + touch 'bin/exec2.sh' |
| 247 | + }; test_util.finish_pkg |
| 248 | + test_util.fake_clone "$pkg" |
157 | 249 |
|
158 |
| - run do-plumbing-link-bins username/package |
| 250 | + run do-plumbing-link-bins "$pkg" |
159 | 251 |
|
160 | 252 | assert_success
|
161 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec1)" = "$BPM_PACKAGES_PATH/username/package/bin/exec1" ] |
162 |
| - assert [ "$(readlink $BPM_INSTALL_BIN/exec2.sh)" = "$BPM_PACKAGES_PATH/username/package/bin/exec2.sh" ] |
| 253 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec1")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec1" ] |
| 254 | + assert [ "$(readlink "$BPM_INSTALL_BIN/exec2.sh")" = "$BPM_PACKAGES_PATH/$pkg/bin/exec2.sh" ] |
163 | 255 | }
|
164 | 256 |
|
165 | 257 | @test "does not symlink package itself as bin when linked with bpm link" {
|
|
0 commit comments