aboutsummaryrefslogtreecommitdiff
path: root/spec/make_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/make_spec.lua')
-rw-r--r--spec/make_spec.lua119
1 files changed, 119 insertions, 0 deletions
diff --git a/spec/make_spec.lua b/spec/make_spec.lua
index 5ec99fa7..8baa3561 100644
--- a/spec/make_spec.lua
+++ b/spec/make_spec.lua
@@ -3,6 +3,7 @@ local 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 5local env_variables = test_env.env_variables
6local write_file = test_env.write_file
6 7
7test_env.unload_luarocks() 8test_env.unload_luarocks()
8 9
@@ -125,6 +126,124 @@ describe("LuaRocks make tests #integration", function()
125 end) 126 end)
126 end) 127 end)
127 128
129 it("supports --pin #pinning", function()
130 test_env.run_in_tmp(function(tmpdir)
131 write_file("test-1.0-1.rockspec", [[
132 package = "test"
133 version = "1.0-1"
134 source = {
135 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/test.lua"
136 }
137 dependencies = {
138 "a_rock 1.0"
139 }
140 build = {
141 type = "builtin",
142 modules = {
143 test = "test.lua"
144 }
145 }
146 ]], finally)
147 write_file("test.lua", "return {}", finally)
148
149 assert.is_true(run.luarocks_bool("make --server=" .. testing_paths.fixtures_dir .. "/a_repo --pin --tree=lua_modules"))
150 assert.is.truthy(lfs.attributes("./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/test/1.0-1/test-1.0-1.rockspec"))
151 assert.is.truthy(lfs.attributes("./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/a_rock/1.0-1/a_rock-1.0-1.rockspec"))
152 local lockfilename = "./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/test/1.0-1/luarocks.lock"
153 assert.is.truthy(lfs.attributes(lockfilename))
154 local lockdata = loadfile(lockfilename)()
155 assert.same({
156 dependencies = {
157 ["a_rock"] = "1.0-1",
158 ["lua"] = test_env.lua_version .. "-1",
159 }
160 }, lockdata)
161 end)
162 end)
163
164 it("respects luarocks.lock when present #pinning", function()
165 test_env.run_in_tmp(function(tmpdir)
166 write_file("test-2.0-1.rockspec", [[
167 package = "test"
168 version = "2.0-1"
169 source = {
170 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/test.lua"
171 }
172 dependencies = {
173 "a_rock >= 0.8"
174 }
175 build = {
176 type = "builtin",
177 modules = {
178 test = "test.lua"
179 }
180 }
181 ]], finally)
182 write_file("test.lua", "return {}", finally)
183 write_file("luarocks.lock", [[
184 return {
185 dependencies = {
186 ["a_rock"] = "1.0-1",
187 }
188 }
189 ]], finally)
190
191 print(run.luarocks("make --server=" .. testing_paths.fixtures_dir .. "/a_repo --tree=lua_modules"))
192 assert.is.truthy(lfs.attributes("./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/test/2.0-1/test-2.0-1.rockspec"))
193 assert.is.truthy(lfs.attributes("./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/a_rock/1.0-1/a_rock-1.0-1.rockspec"))
194 local lockfilename = "./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/test/2.0-1/luarocks.lock"
195 assert.is.truthy(lfs.attributes(lockfilename))
196 local lockdata = loadfile(lockfilename)()
197 assert.same({
198 dependencies = {
199 ["a_rock"] = "1.0-1",
200 }
201 }, lockdata)
202 end)
203 end)
204
205 it("overrides luarocks.lock with --pin #pinning", function()
206 test_env.run_in_tmp(function(tmpdir)
207 write_file("test-2.0-1.rockspec", [[
208 package = "test"
209 version = "2.0-1"
210 source = {
211 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/test.lua"
212 }
213 dependencies = {
214 "a_rock >= 0.8"
215 }
216 build = {
217 type = "builtin",
218 modules = {
219 test = "test.lua"
220 }
221 }
222 ]], finally)
223 write_file("test.lua", "return {}", finally)
224 write_file("luarocks.lock", [[
225 return {
226 dependencies = {
227 ["a_rock"] = "1.0-1",
228 }
229 }
230 ]], finally)
231
232 print(run.luarocks("make --server=" .. testing_paths.fixtures_dir .. "/a_repo --tree=lua_modules --pin"))
233 assert.is.truthy(lfs.attributes("./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/test/2.0-1/test-2.0-1.rockspec"))
234 assert.is.truthy(lfs.attributes("./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/a_rock/2.0-1/a_rock-2.0-1.rockspec"))
235 local lockfilename = "./lua_modules/lib/luarocks/rocks-" .. test_env.lua_version .. "/test/2.0-1/luarocks.lock"
236 assert.is.truthy(lfs.attributes(lockfilename))
237 local lockdata = loadfile(lockfilename)()
238 assert.same({
239 dependencies = {
240 ["a_rock"] = "2.0-1",
241 ["lua"] = test_env.lua_version .. "-1",
242 }
243 }, lockdata)
244 end)
245 end)
246
128 describe("#ddt LuaRocks make upgrading rockspecs with double deploy types", function() 247 describe("#ddt LuaRocks make upgrading rockspecs with double deploy types", function()
129 local deploy_lib_dir = testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION 248 local deploy_lib_dir = testing_paths.testing_sys_tree .. "/lib/lua/"..env_variables.LUA_VERSION
130 local deploy_lua_dir = testing_paths.testing_sys_tree .. "/share/lua/"..env_variables.LUA_VERSION 249 local deploy_lua_dir = testing_paths.testing_sys_tree .. "/share/lua/"..env_variables.LUA_VERSION