aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2021-03-16 14:55:11 -0300
committerHisham Muhammad <hisham@gobolinux.org>2021-03-19 13:15:53 -0300
commit2efec770b1b1b27a4b15c3b06a2f5fcadc0b546d (patch)
treef7c2e34abe3314658df0970dde6e1bc346c1e627 /spec
parent08ae98e309c3f09be00b547bab74a5fd875bfa36 (diff)
downloadluarocks-2efec770b1b1b27a4b15c3b06a2f5fcadc0b546d.tar.gz
luarocks-2efec770b1b1b27a4b15c3b06a2f5fcadc0b546d.tar.bz2
luarocks-2efec770b1b1b27a4b15c3b06a2f5fcadc0b546d.zip
repos: double-check that all files from a rock are installed
Ensure that `luarocks` fails if an installation does not successfully deploy all files registered in the `rock_manifest`. See #1276.
Diffstat (limited to 'spec')
-rw-r--r--spec/remove_spec.lua35
1 files changed, 34 insertions, 1 deletions
diff --git a/spec/remove_spec.lua b/spec/remove_spec.lua
index 91b6a460..21a39696 100644
--- a/spec/remove_spec.lua
+++ b/spec/remove_spec.lua
@@ -2,6 +2,7 @@ local test_env = require("spec.util.test_env")
2local lfs = require("lfs") 2local lfs = require("lfs")
3local run = test_env.run 3local run = test_env.run
4local testing_paths = test_env.testing_paths 4local testing_paths = test_env.testing_paths
5local env_variables = test_env.env_variables
5 6
6test_env.unload_luarocks() 7test_env.unload_luarocks()
7 8
@@ -9,7 +10,9 @@ local extra_rocks = {
9 "/abelhas-1.1-1.src.rock", 10 "/abelhas-1.1-1.src.rock",
10 "/copas-2.0.1-1.src.rock", 11 "/copas-2.0.1-1.src.rock",
11 "/coxpcall-1.16.0-1.src.rock", 12 "/coxpcall-1.16.0-1.src.rock",
12 "/coxpcall-1.16.0-1.rockspec" 13 "/coxpcall-1.16.0-1.rockspec",
14 "/luafilesystem-1.7.0-1.src.rock",
15 "/luafilesystem-1.6.3-2.src.rock",
13} 16}
14 17
15describe("luarocks remove #integration", function() 18describe("luarocks remove #integration", function()
@@ -80,6 +83,36 @@ describe("luarocks remove #integration", function()
80 assert.is.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/coxpcall")) 83 assert.is.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/coxpcall"))
81 assert.is.falsy(output:find("Checking stability of dependencies")) 84 assert.is.falsy(output:find("Checking stability of dependencies"))
82 end) 85 end)
86
87 it("restores old versions", function()
88 assert.is_true(run.luarocks_bool("install luafilesystem 1.6.3"))
89 assert.is.truthy(lfs.attributes(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/lfs."..test_env.lib_extension))
90
91 if test_env.TEST_TARGET_OS ~= "windows" then
92 local fd = io.open(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/lfs."..test_env.lib_extension, "r")
93 assert(fd:read("*a"):match("LuaFileSystem 1.6.3", 1, true))
94 fd:close()
95 end
96
97 assert.is_true(run.luarocks_bool("install luafilesystem 1.7.0 --keep"))
98 assert.is.truthy(lfs.attributes(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/lfs."..test_env.lib_extension))
99 assert.is.truthy(lfs.attributes(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/luafilesystem_1_6_3_2-lfs."..test_env.lib_extension))
100
101 if test_env.TEST_TARGET_OS ~= "windows" then
102 local fd = io.open(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/lfs."..test_env.lib_extension, "r")
103 assert(fd:read("*a"):match("LuaFileSystem 1.7.0", 1, true))
104 fd:close()
105 end
106
107 assert.is_true(run.luarocks_bool("remove luafilesystem 1.7.0"))
108 assert.is.truthy(lfs.attributes(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/lfs."..test_env.lib_extension))
109
110 if test_env.TEST_TARGET_OS ~= "windows" then
111 local fd = io.open(testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION.."/lfs."..test_env.lib_extension, "r")
112 assert(fd:read("*a"):match("LuaFileSystem 1.6.3", 1, true))
113 fd:close()
114 end
115 end)
83 end) 116 end)
84 117
85 it("#admin remove #ssh", function() 118 it("#admin remove #ssh", function()