aboutsummaryrefslogtreecommitdiff
path: root/spec/quick/install.q
diff options
context:
space:
mode:
Diffstat (limited to 'spec/quick/install.q')
-rw-r--r--spec/quick/install.q257
1 files changed, 254 insertions, 3 deletions
diff --git a/spec/quick/install.q b/spec/quick/install.q
index 2bccf2f1..ab576605 100644
--- a/spec/quick/install.q
+++ b/spec/quick/install.q
@@ -1,5 +1,91 @@
1SUITE: luarocks install
2
3===============================================================================
4TEST: fails with no flags or arguments
5RUN: luarocks install
6EXIT: 1
7
8
9
10===============================================================================
11TEST: fails with an unknown rock
12RUN: luarocks install aoeuaoeuaoeiaoeuaoeua
13EXIT: 1
14
15
16
17===============================================================================
18TEST: fails with an invalid .rock argument
19RUN: luarocks install "invalid.rock"
20EXIT: 1
21
22
23
24===============================================================================
25TEST: fails with incompatible architecture
26RUN: luarocks install foo-1.0-1.impossible-x86.rock
27EXIT: 1
28STDERR:
29--------------------------------------------------------------------------------
30Incompatible architecture
31--------------------------------------------------------------------------------
32
33
34
1=============================================================================== 35===============================================================================
2TEST: luarocks install: handle versioned modules when installing another version with --keep #268 36TEST: fails if not a zip file
37
38FILE: not_a_zipfile-1.0-1.src.rock
39--------------------------------------------------------------------------------
40I am not a zip file!
41--------------------------------------------------------------------------------
42RUN: luarocks install not_a_zipfile-1.0-1.src.rock
43EXIT: 1
44
45
46
47===============================================================================
48TEST: fails with an invalid patch
49
50FILE: invalid_patch-0.1-1.rockspec
51--------------------------------------------------------------------------------
52package = "invalid_patch"
53version = "0.1-1"
54source = {
55 -- any valid URL
56 url = "https://raw.github.com/keplerproject/luarocks/master/src/luarocks/build.lua"
57}
58description = {
59 summary = "A rockspec with an invalid patch",
60}
61dependencies = {
62 "lua >= 5.1"
63}
64build = {
65 type = "builtin",
66 modules = {
67 build = "build.lua"
68 },
69 patches = {
70 ["I_am_an_invalid_patch.patch"] =
71[[
72diff -Naur luadoc-3.0.1/src/luadoc/doclet/html.lua luadoc-3.0.1-new/src/luadoc/doclet/html.lua
73--- luadoc-3.0.1/src/luadoc/doclet/html.lua2007-12-21 15:50:48.000000000 -0200
74+++ luadoc-3.0.1-new/src/luadoc/doclet/html.lua2008-02-28 01:59:53.000000000 -0300
75@@ -18,6 +18,7 @@
76- gabba gabba gabba
77+ gobo gobo gobo
78]]
79 }
80}
81--------------------------------------------------------------------------------
82RUN: luarocks invalid_patch-0.1-1.rockspec
83EXIT: 1
84
85
86
87================================================================================
88TEST: handle versioned modules when installing another version with --keep #268
3 89
4FILE: myrock-1.0-1.rockspec 90FILE: myrock-1.0-1.rockspec
5-------------------------------------------------------------------------------- 91--------------------------------------------------------------------------------
@@ -56,8 +142,8 @@ NOT_EXISTS: %{testing_sys_tree}/share/lua/%{LUA_VERSION}/myrock_1_0_1-rock.lua
56 142
57 143
58 144
59=============================================================================== 145================================================================================
60TEST: luarocks install: handle versioned libraries when installing another version with --keep #268 146TEST: handle versioned libraries when installing another version with --keep #268
61 147
62FILE: myrock-1.0-1.rockspec 148FILE: myrock-1.0-1.rockspec
63-------------------------------------------------------------------------------- 149--------------------------------------------------------------------------------
@@ -122,3 +208,168 @@ RUN: luarocks install ./myrock-2.0-1.%{platform}.rock
122 208
123EXISTS: %{testing_sys_tree}/lib/lua/%{LUA_VERSION}/c_module.%{lib_extension} 209EXISTS: %{testing_sys_tree}/lib/lua/%{LUA_VERSION}/c_module.%{lib_extension}
124NOT_EXISTS: %{testing_sys_tree}/lib/lua/%{LUA_VERSION}/myrock_1_0_1-c_module.%{lib_extension} 210NOT_EXISTS: %{testing_sys_tree}/lib/lua/%{LUA_VERSION}/myrock_1_0_1-c_module.%{lib_extension}
211
212
213
214================================================================================
215TEST: installs a package with a bin entry
216
217FILE: myrock-1.0-1.rockspec
218--------------------------------------------------------------------------------
219rockspec_format = "3.0"
220package = "myrock"
221version = "1.0-1"
222source = {
223 url = "file://%{url(tmpdir)}/rock.lua"
224}
225build = {
226 modules = { rock = "rock.lua" },
227 install = {
228 bin = {
229 ["scripty"] = "rock.lua",
230 }
231 }
232}
233--------------------------------------------------------------------------------
234
235FILE: rock.lua
236--------------------------------------------------------------------------------
237return "hello"
238--------------------------------------------------------------------------------
239
240RUN: luarocks build myrock-1.0-1.rockspec
241EXISTS: %{testing_sys_tree}/bin/scripty%{wrapper_extension}
242RUN: luarocks pack myrock
243RUN: luarocks remove myrock
244NOT_EXISTS: %{testing_sys_tree}/bin/scripty%{wrapper_extension}
245
246RUN: luarocks install myrock-1.0-1.all.rock
247EXISTS: %{testing_sys_tree}/bin/scripty%{wrapper_extension}
248
249
250
251================================================================================
252TEST: installs a package without its documentation using --no-doc
253
254FILE: myrock-1.0-1.rockspec
255--------------------------------------------------------------------------------
256rockspec_format = "3.0"
257package = "myrock"
258version = "1.0-1"
259source = {
260 url = "."
261}
262build = {
263 modules = { rock = "rock.lua" },
264 install = {
265 bin = {
266 ["scripty"] = "rock.lua",
267 }
268 }
269}
270--------------------------------------------------------------------------------
271
272FILE: rock.lua
273--------------------------------------------------------------------------------
274return "hello"
275--------------------------------------------------------------------------------
276
277FILE: doc/something
278--------------------------------------------------------------------------------
279a doc
280--------------------------------------------------------------------------------
281
282RUN: luarocks make
283EXISTS: %{testing_sys_rocks}/myrock/1.0-1/doc/something
284RUN: luarocks pack myrock
285RUN: luarocks remove myrock
286NOT_EXISTS: %{testing_sys_rocks}/myrock/1.0-1/doc/something
287
288RUN: luarocks install myrock-1.0-1.all.rock
289EXISTS: %{testing_sys_rocks}/myrock/1.0-1/doc/something
290RUN: luarocks remove myrock
291NOT_EXISTS: %{testing_sys_rocks}/myrock/1.0-1/doc/something
292
293RUN: luarocks install myrock-1.0-1.all.rock --no-doc
294NOT_EXISTS: %{testing_sys_rocks}/myrock/1.0-1/doc/something
295
296
297
298================================================================================
299TEST: handle non-Lua files in build.install.lua when upgrading sailorproject/sailor#138
300
301FILE: myrock-1.0-1.rockspec
302--------------------------------------------------------------------------------
303rockspec_format = "3.0"
304package = "myrock"
305version = "1.0-1"
306source = {
307 url = "."
308}
309build = {
310 modules = {
311 rock = "rock.lua",
312 },
313 install = {
314 lua = {
315 ["sailor.blank-app.htaccess"] = "src/sailor/blank-app/.htaccess",
316 }
317 }
318}
319--------------------------------------------------------------------------------
320
321FILE: myrock-1.0-2.rockspec
322--------------------------------------------------------------------------------
323rockspec_format = "3.0"
324package = "myrock"
325version = "1.0-2"
326source = {
327 url = "."
328}
329build = {
330 modules = {
331 rock = "rock.lua",
332 },
333 install = {
334 lua = {
335 ["sailor.blank-app.htaccess"] = "src/sailor/blank-app/.htaccess",
336 }
337 }
338}
339--------------------------------------------------------------------------------
340
341FILE: rock.lua
342--------------------------------------------------------------------------------
343return "hello"
344--------------------------------------------------------------------------------
345
346FILE: src/sailor/blank-app/.htaccess
347--------------------------------------------------------------------------------
348# I am just a file
349--------------------------------------------------------------------------------
350
351Prepare two versions as .rock packages with the same non-Lua asset:
352
353RUN: luarocks make ./myrock-1.0-1.rockspec
354RUN: luarocks pack myrock
355RUN: luarocks remove myrock
356
357RUN: luarocks make ./myrock-1.0-2.rockspec
358RUN: luarocks pack myrock
359RUN: luarocks remove myrock
360
361Now install the first one, and check that the asset was installed, with no "~"
362backup leftover:
363
364RUN: luarocks install myrock-1.0-1.all.rock --no-doc
365
366EXISTS: %{testing_sys_tree}/share/lua/%{LUA_VERSION}/sailor/blank-app/.htaccess
367NOT_EXISTS: %{testing_sys_tree}/share/lua/%{LUA_VERSION}/sailor/blank-app/.htaccess~
368
369Then install the second one, and the asset should be replaced, again with no
370"~" backup leftover:
371
372RUN: luarocks install myrock-1.0-2.all.rock --no-doc
373
374EXISTS: %{testing_sys_tree}/share/lua/%{LUA_VERSION}/sailor/blank-app/.htaccess
375NOT_EXISTS: %{testing_sys_tree}/share/lua/%{LUA_VERSION}/sailor/blank-app/.htaccess~