diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2024-03-05 23:27:56 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2024-03-06 06:33:56 +0000 |
| commit | 6662898679d15b7e361b4de1f5cdda4a7656b35b (patch) | |
| tree | 462c5c75b2949946391283816051a687e022d01b /spec | |
| parent | 78d40e304be182b7e07be449ebda668b8b9d0fcd (diff) | |
| download | luarocks-6662898679d15b7e361b4de1f5cdda4a7656b35b.tar.gz luarocks-6662898679d15b7e361b4de1f5cdda4a7656b35b.tar.bz2 luarocks-6662898679d15b7e361b4de1f5cdda4a7656b35b.zip | |
tests(quick): more consistent processing of tmpdir
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/quick/admin_make_manifest.q | 2 | ||||
| -rw-r--r-- | spec/quick/build.q | 4 | ||||
| -rw-r--r-- | spec/quick/install.q | 14 | ||||
| -rw-r--r-- | spec/quick/purge.q | 4 | ||||
| -rw-r--r-- | spec/util/quick.lua | 49 |
5 files changed, 37 insertions, 36 deletions
diff --git a/spec/quick/admin_make_manifest.q b/spec/quick/admin_make_manifest.q index da203a05..527e86a0 100644 --- a/spec/quick/admin_make_manifest.q +++ b/spec/quick/admin_make_manifest.q | |||
| @@ -8,7 +8,7 @@ FILE: test-1.0-1.rockspec | |||
| 8 | package = "test" | 8 | package = "test" |
| 9 | version = "1.0-1" | 9 | version = "1.0-1" |
| 10 | source = { | 10 | source = { |
| 11 | url = "file://%{url(tmpdir)}/test.lua" | 11 | url = "file://%{url(%{tmpdir})}/test.lua" |
| 12 | } | 12 | } |
| 13 | build = { | 13 | build = { |
| 14 | type = "builtin", | 14 | type = "builtin", |
diff --git a/spec/quick/build.q b/spec/quick/build.q index 7cbc526b..958ce5d1 100644 --- a/spec/quick/build.q +++ b/spec/quick/build.q | |||
| @@ -223,7 +223,7 @@ FILE: test-1.0-1.rockspec | |||
| 223 | package = "test" | 223 | package = "test" |
| 224 | version = "1.0-1" | 224 | version = "1.0-1" |
| 225 | source = { | 225 | source = { |
| 226 | url = "file://%{url(tmpdir)}/test.lua" | 226 | url = "file://%{url(%{tmpdir})}/test.lua" |
| 227 | } | 227 | } |
| 228 | dependencies = { | 228 | dependencies = { |
| 229 | "a_rock >= 0.8" | 229 | "a_rock >= 0.8" |
| @@ -268,7 +268,7 @@ FILE: test-1.0-1.rockspec | |||
| 268 | package = "test" | 268 | package = "test" |
| 269 | version = "1.0-1" | 269 | version = "1.0-1" |
| 270 | source = { | 270 | source = { |
| 271 | url = "file://%{url(tmpdir)}/test.lua" | 271 | url = "file://%{url(%{tmpdir})}/test.lua" |
| 272 | } | 272 | } |
| 273 | dependencies = { | 273 | dependencies = { |
| 274 | "a_rock >= 0.8" | 274 | "a_rock >= 0.8" |
diff --git a/spec/quick/install.q b/spec/quick/install.q index 72795504..31544470 100644 --- a/spec/quick/install.q +++ b/spec/quick/install.q | |||
| @@ -93,7 +93,7 @@ rockspec_format = "3.0" | |||
| 93 | package = "myrock" | 93 | package = "myrock" |
| 94 | version = "1.0-1" | 94 | version = "1.0-1" |
| 95 | source = { | 95 | source = { |
| 96 | url = "file://%{url(tmpdir)}/rock.lua" | 96 | url = "file://%{url(%{tmpdir})}/rock.lua" |
| 97 | } | 97 | } |
| 98 | build = { | 98 | build = { |
| 99 | modules = { rock = "rock.lua" } | 99 | modules = { rock = "rock.lua" } |
| @@ -106,7 +106,7 @@ rockspec_format = "3.0" | |||
| 106 | package = "myrock" | 106 | package = "myrock" |
| 107 | version = "2.0-1" | 107 | version = "2.0-1" |
| 108 | source = { | 108 | source = { |
| 109 | url = "file://%{url(tmpdir)}/rock.lua" | 109 | url = "file://%{url(%{tmpdir})}/rock.lua" |
| 110 | } | 110 | } |
| 111 | build = { | 111 | build = { |
| 112 | modules = { rock = "rock.lua" } | 112 | modules = { rock = "rock.lua" } |
| @@ -151,7 +151,7 @@ rockspec_format = "3.0" | |||
| 151 | package = "myrock" | 151 | package = "myrock" |
| 152 | version = "1.0-1" | 152 | version = "1.0-1" |
| 153 | source = { | 153 | source = { |
| 154 | url = "file://%{url(tmpdir)}/c_module.c" | 154 | url = "file://%{url(%{tmpdir})}/c_module.c" |
| 155 | } | 155 | } |
| 156 | build = { | 156 | build = { |
| 157 | modules = { | 157 | modules = { |
| @@ -166,7 +166,7 @@ rockspec_format = "3.0" | |||
| 166 | package = "myrock" | 166 | package = "myrock" |
| 167 | version = "2.0-1" | 167 | version = "2.0-1" |
| 168 | source = { | 168 | source = { |
| 169 | url = "file://%{url(tmpdir)}/c_module.c" | 169 | url = "file://%{url(%{tmpdir})}/c_module.c" |
| 170 | } | 170 | } |
| 171 | build = { | 171 | build = { |
| 172 | modules = { | 172 | modules = { |
| @@ -220,7 +220,7 @@ rockspec_format = "3.0" | |||
| 220 | package = "myrock" | 220 | package = "myrock" |
| 221 | version = "1.0-1" | 221 | version = "1.0-1" |
| 222 | source = { | 222 | source = { |
| 223 | url = "file://%{url(tmpdir)}/rock.lua" | 223 | url = "file://%{url(%{tmpdir})}/rock.lua" |
| 224 | } | 224 | } |
| 225 | build = { | 225 | build = { |
| 226 | modules = { rock = "rock.lua" }, | 226 | modules = { rock = "rock.lua" }, |
| @@ -385,7 +385,7 @@ rockspec_format = "3.0" | |||
| 385 | package = "myrock" | 385 | package = "myrock" |
| 386 | version = "1.0-1" | 386 | version = "1.0-1" |
| 387 | source = { | 387 | source = { |
| 388 | url = "file://%{url(tmpdir)}/rock.lua" | 388 | url = "file://%{url(%{tmpdir})}/rock.lua" |
| 389 | } | 389 | } |
| 390 | build = { | 390 | build = { |
| 391 | modules = { rock = "rock.lua" } | 391 | modules = { rock = "rock.lua" } |
| @@ -427,7 +427,7 @@ rockspec_format = "3.0" | |||
| 427 | package = "myrock" | 427 | package = "myrock" |
| 428 | version = "1.0-1" | 428 | version = "1.0-1" |
| 429 | source = { | 429 | source = { |
| 430 | url = "file://%{url(tmpdir)}/rock.lua" | 430 | url = "file://%{url(%{tmpdir})}/rock.lua" |
| 431 | } | 431 | } |
| 432 | build = { | 432 | build = { |
| 433 | modules = { | 433 | modules = { |
diff --git a/spec/quick/purge.q b/spec/quick/purge.q index a3f24b99..1fb61293 100644 --- a/spec/quick/purge.q +++ b/spec/quick/purge.q | |||
| @@ -24,7 +24,7 @@ FILE: testrock-1.0-1.rockspec | |||
| 24 | package = "testrock" | 24 | package = "testrock" |
| 25 | version = "1.0-1" | 25 | version = "1.0-1" |
| 26 | source = { | 26 | source = { |
| 27 | url = "file://%{url(tmpdir)}/testrock.lua" | 27 | url = "file://%{url(%{tmpdir})}/testrock.lua" |
| 28 | } | 28 | } |
| 29 | dependencies = { | 29 | dependencies = { |
| 30 | "a_rock >= 0.8" | 30 | "a_rock >= 0.8" |
| @@ -62,7 +62,7 @@ FILE: testrock-1.0-1.rockspec | |||
| 62 | package = "testrock" | 62 | package = "testrock" |
| 63 | version = "1.0-1" | 63 | version = "1.0-1" |
| 64 | source = { | 64 | source = { |
| 65 | url = "file://%{url(tmpdir)}/testrock.lua" | 65 | url = "file://%{url(%{tmpdir})}/testrock.lua" |
| 66 | } | 66 | } |
| 67 | dependencies = { | 67 | dependencies = { |
| 68 | "a_rock >= 0.8" | 68 | "a_rock >= 0.8" |
diff --git a/spec/util/quick.lua b/spec/util/quick.lua index 5c49fff9..80c75848 100644 --- a/spec/util/quick.lua +++ b/spec/util/quick.lua | |||
| @@ -103,8 +103,8 @@ local function parse(filename) | |||
| 103 | local value | 103 | local value |
| 104 | if var == "tmpdir" then | 104 | if var == "tmpdir" then |
| 105 | value = "%{tmpdir}" | 105 | value = "%{tmpdir}" |
| 106 | elseif var == "url(tmpdir)" then | 106 | elseif var == "url(%{tmpdir})" then |
| 107 | value = "%{url(tmpdir)}" | 107 | value = "%{url(%{tmpdir})}" |
| 108 | elseif fn == "url" then | 108 | elseif fn == "url" then |
| 109 | value = expand_vars(fnarg) | 109 | value = expand_vars(fnarg) |
| 110 | value = value:gsub("\\", "/") | 110 | value = value:gsub("\\", "/") |
| @@ -187,35 +187,35 @@ local function parse(filename) | |||
| 187 | elseif cmd == "EXISTS" then | 187 | elseif cmd == "EXISTS" then |
| 188 | cur_op = { | 188 | cur_op = { |
| 189 | op = "EXISTS", | 189 | op = "EXISTS", |
| 190 | file = dir.normalize(arg), | 190 | name = dir.normalize(arg), |
| 191 | line = cur_line, | 191 | line = cur_line, |
| 192 | } | 192 | } |
| 193 | table.insert(cur_test.ops, cur_op) | 193 | table.insert(cur_test.ops, cur_op) |
| 194 | elseif cmd == "NOT_EXISTS" then | 194 | elseif cmd == "NOT_EXISTS" then |
| 195 | cur_op = { | 195 | cur_op = { |
| 196 | op = "NOT_EXISTS", | 196 | op = "NOT_EXISTS", |
| 197 | file = dir.normalize(arg), | 197 | name = dir.normalize(arg), |
| 198 | line = cur_line, | 198 | line = cur_line, |
| 199 | } | 199 | } |
| 200 | table.insert(cur_test.ops, cur_op) | 200 | table.insert(cur_test.ops, cur_op) |
| 201 | elseif cmd == "MKDIR" then | 201 | elseif cmd == "MKDIR" then |
| 202 | cur_op = { | 202 | cur_op = { |
| 203 | op = "MKDIR", | 203 | op = "MKDIR", |
| 204 | file = dir.normalize(arg), | 204 | name = dir.normalize(arg), |
| 205 | line = cur_line, | 205 | line = cur_line, |
| 206 | } | 206 | } |
| 207 | table.insert(cur_test.ops, cur_op) | 207 | table.insert(cur_test.ops, cur_op) |
| 208 | elseif cmd == "RMDIR" then | 208 | elseif cmd == "RMDIR" then |
| 209 | cur_op = { | 209 | cur_op = { |
| 210 | op = "RMDIR", | 210 | op = "RMDIR", |
| 211 | file = dir.normalize(arg), | 211 | name = dir.normalize(arg), |
| 212 | line = cur_line, | 212 | line = cur_line, |
| 213 | } | 213 | } |
| 214 | table.insert(cur_test.ops, cur_op) | 214 | table.insert(cur_test.ops, cur_op) |
| 215 | elseif cmd == "RM" then | 215 | elseif cmd == "RM" then |
| 216 | cur_op = { | 216 | cur_op = { |
| 217 | op = "RM", | 217 | op = "RM", |
| 218 | file = dir.normalize(arg), | 218 | name = dir.normalize(arg), |
| 219 | line = cur_line, | 219 | line = cur_line, |
| 220 | } | 220 | } |
| 221 | table.insert(cur_test.ops, cur_op) | 221 | table.insert(cur_test.ops, cur_op) |
| @@ -347,40 +347,41 @@ function quick.compile(filename, env) | |||
| 347 | write([=[ return function() ]=]) | 347 | write([=[ return function() ]=]) |
| 348 | write([=[ test_env.run_in_tmp(function(tmpdir) ]=]) | 348 | write([=[ test_env.run_in_tmp(function(tmpdir) ]=]) |
| 349 | write([=[ local function handle_tmpdir(s) ]=]) | 349 | write([=[ local function handle_tmpdir(s) ]=]) |
| 350 | write([=[ return (s:gsub("%%{url%(tmpdir%)}", (tmpdir:gsub("\\", "/"))) ]=]) | 350 | write([=[ return (s:gsub("%%{url%(%%{tmpdir}%)}", (tmpdir:gsub("\\", "/"))) ]=]) |
| 351 | write([=[ :gsub("%%{tmpdir}", (tmpdir:gsub("[\\/]", dir_sep)))) ]=]) | 351 | write([=[ :gsub("%%{tmpdir}", (tmpdir:gsub("[\\/]", dir_sep)))) ]=]) |
| 352 | write([=[ end ]=]) | 352 | write([=[ end ]=]) |
| 353 | write([=[ local ok, err ]=]) | 353 | write([=[ local ok, err ]=]) |
| 354 | for _, op in ipairs(t.ops) do | 354 | for _, op in ipairs(t.ops) do |
| 355 | if op.name then | ||
| 356 | op.name = native_slash(op.name) | ||
| 357 | write(([=[ local name = handle_tmpdir(%q) ]=]):format(op.name)) | ||
| 358 | end | ||
| 355 | if op.op == "FILE" then | 359 | if op.op == "FILE" then |
| 356 | if op.name:match("[\\/]") then | 360 | if op.name:match("[\\/]") then |
| 357 | write(([=[ make_dir(%q) ]=]):format(dir.dir_name(op.name))) | 361 | write(([=[ make_dir(handle_tmpdir(%q)) ]=]):format(dir.dir_name(op.name))) |
| 358 | end | 362 | end |
| 359 | write(([=[ test_env.write_file(handle_tmpdir(%q), handle_tmpdir([=====[ ]=]):format(op.name)) | 363 | write([=[ test_env.write_file(name, handle_tmpdir([=====[ ]=]) |
| 360 | for _, line in ipairs(op.data) do | 364 | for _, line in ipairs(op.data) do |
| 361 | write(line) | 365 | write(line) |
| 362 | end | 366 | end |
| 363 | write([=[ ]=====]), finally) ]=]) | 367 | write([=[ ]=====]), finally) ]=]) |
| 364 | elseif op.op == "EXISTS" then | 368 | elseif op.op == "EXISTS" then |
| 365 | write(([=[ ok, err = lfs.attributes(%q) ]=]):format(op.file)) | 369 | write(([=[ ok, err = lfs.attributes(name) ]=])) |
| 366 | write(([=[ assert.truthy(ok, error_message(%d, "EXISTS failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.line, op.file)) | 370 | write(([=[ assert.truthy(ok, error_message(%d, "EXISTS failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) |
| 367 | elseif op.op == "NOT_EXISTS" then | 371 | elseif op.op == "NOT_EXISTS" then |
| 368 | write(([=[ assert.falsy(lfs.attributes(%q), error_message(%d, "NOT_EXISTS failed: " .. %q .. " exists" )) ]=]):format(op.file, op.line, op.file)) | 372 | write(([=[ assert.falsy(lfs.attributes(name), error_message(%d, "NOT_EXISTS failed: " .. name .. " exists" )) ]=]):format(op.line)) |
| 369 | elseif op.op == "MKDIR" then | 373 | elseif op.op == "MKDIR" then |
| 370 | op.file = native_slash(op.file) | 374 | write(([=[ ok, err = make_dir(name) ]=])) |
| 371 | write(([=[ ok, err = make_dir(%q) ]=]):format(op.file)) | 375 | write(([=[ assert.truthy((lfs.attributes(name) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) |
| 372 | write(([=[ assert.truthy((lfs.attributes(%q) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.file, op.line, op.file)) | ||
| 373 | elseif op.op == "RMDIR" then | 376 | elseif op.op == "RMDIR" then |
| 374 | op.file = native_slash(op.file) | 377 | write(([=[ ok, err = test_env.remove_dir(name) ]=])) |
| 375 | write(([=[ ok, err = test_env.remove_dir(%q) ]=]):format(op.file)) | 378 | write(([=[ assert.falsy((lfs.attributes(name) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) |
| 376 | write(([=[ assert.falsy((lfs.attributes(%q) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.file, op.line, op.file)) | ||
| 377 | elseif op.op == "RM" then | 379 | elseif op.op == "RM" then |
| 378 | op.file = native_slash(op.file) | 380 | write(([=[ ok, err = os.remove(name) ]=])) |
| 379 | write(([=[ ok, err = os.remove(%q) ]=]):format(op.file)) | 381 | write(([=[ assert.falsy((lfs.attributes(name) or {}).mode == "file", error_message(%d, "RM failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) |
| 380 | write(([=[ assert.falsy((lfs.attributes(%q) or {}).mode == "file", error_message(%d, "RM failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.file, op.line, op.file)) | ||
| 381 | elseif op.op == "FILE_CONTENTS" then | 382 | elseif op.op == "FILE_CONTENTS" then |
| 382 | write(([=[ do ]=])) | 383 | write(([=[ do ]=])) |
| 383 | write(([=[ local fd_file = assert(io.open(%q, "rb")) ]=]):format(op.name)) | 384 | write(([=[ local fd_file = assert(io.open(name, "rb")) ]=])) |
| 384 | write(([=[ local file_data = fd_file:read("*a") ]=])) | 385 | write(([=[ local file_data = fd_file:read("*a") ]=])) |
| 385 | write(([=[ fd_file:close() ]=])) | 386 | write(([=[ fd_file:close() ]=])) |
| 386 | write([=[ local block_at = 1 ]=]) | 387 | write([=[ local block_at = 1 ]=]) |
| @@ -388,7 +389,7 @@ function quick.compile(filename, env) | |||
| 388 | for i, line in ipairs(op.data) do | 389 | for i, line in ipairs(op.data) do |
| 389 | write(([=[ line = %q ]=]):format(line)) | 390 | write(([=[ line = %q ]=]):format(line)) |
| 390 | write(([=[ s, e = string.find(file_data, line, 1, true) ]=])) | 391 | write(([=[ s, e = string.find(file_data, line, 1, true) ]=])) |
| 391 | write(([=[ assert(s, error_message(%d, "FILE_CONTENTS %s did not match: " .. line, file_data)) ]=]):format(op.start + i, op.name)) | 392 | write(([=[ assert(s, error_message(%d, "FILE_CONTENTS " .. name .. " did not match: " .. line, file_data)) ]=]):format(op.start + i)) |
| 392 | write(([=[ block_at = e + 1 ]=]):format(i)) | 393 | write(([=[ block_at = e + 1 ]=]):format(i)) |
| 393 | end | 394 | end |
| 394 | write([=[ end ]=]) | 395 | write([=[ end ]=]) |
