From 6662898679d15b7e361b4de1f5cdda4a7656b35b Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 5 Mar 2024 23:27:56 -0300 Subject: tests(quick): more consistent processing of tmpdir --- spec/quick/admin_make_manifest.q | 2 +- spec/quick/build.q | 4 ++-- spec/quick/install.q | 14 ++++++------ spec/quick/purge.q | 4 ++-- spec/util/quick.lua | 49 ++++++++++++++++++++-------------------- 5 files changed, 37 insertions(+), 36 deletions(-) (limited to 'spec') 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 package = "test" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/test.lua" + url = "file://%{url(%{tmpdir})}/test.lua" } build = { 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 package = "test" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/test.lua" + url = "file://%{url(%{tmpdir})}/test.lua" } dependencies = { "a_rock >= 0.8" @@ -268,7 +268,7 @@ FILE: test-1.0-1.rockspec package = "test" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/test.lua" + url = "file://%{url(%{tmpdir})}/test.lua" } dependencies = { "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" package = "myrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/rock.lua" + url = "file://%{url(%{tmpdir})}/rock.lua" } build = { modules = { rock = "rock.lua" } @@ -106,7 +106,7 @@ rockspec_format = "3.0" package = "myrock" version = "2.0-1" source = { - url = "file://%{url(tmpdir)}/rock.lua" + url = "file://%{url(%{tmpdir})}/rock.lua" } build = { modules = { rock = "rock.lua" } @@ -151,7 +151,7 @@ rockspec_format = "3.0" package = "myrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/c_module.c" + url = "file://%{url(%{tmpdir})}/c_module.c" } build = { modules = { @@ -166,7 +166,7 @@ rockspec_format = "3.0" package = "myrock" version = "2.0-1" source = { - url = "file://%{url(tmpdir)}/c_module.c" + url = "file://%{url(%{tmpdir})}/c_module.c" } build = { modules = { @@ -220,7 +220,7 @@ rockspec_format = "3.0" package = "myrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/rock.lua" + url = "file://%{url(%{tmpdir})}/rock.lua" } build = { modules = { rock = "rock.lua" }, @@ -385,7 +385,7 @@ rockspec_format = "3.0" package = "myrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/rock.lua" + url = "file://%{url(%{tmpdir})}/rock.lua" } build = { modules = { rock = "rock.lua" } @@ -427,7 +427,7 @@ rockspec_format = "3.0" package = "myrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/rock.lua" + url = "file://%{url(%{tmpdir})}/rock.lua" } build = { 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 package = "testrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/testrock.lua" + url = "file://%{url(%{tmpdir})}/testrock.lua" } dependencies = { "a_rock >= 0.8" @@ -62,7 +62,7 @@ FILE: testrock-1.0-1.rockspec package = "testrock" version = "1.0-1" source = { - url = "file://%{url(tmpdir)}/testrock.lua" + url = "file://%{url(%{tmpdir})}/testrock.lua" } dependencies = { "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) local value if var == "tmpdir" then value = "%{tmpdir}" - elseif var == "url(tmpdir)" then - value = "%{url(tmpdir)}" + elseif var == "url(%{tmpdir})" then + value = "%{url(%{tmpdir})}" elseif fn == "url" then value = expand_vars(fnarg) value = value:gsub("\\", "/") @@ -187,35 +187,35 @@ local function parse(filename) elseif cmd == "EXISTS" then cur_op = { op = "EXISTS", - file = dir.normalize(arg), + name = dir.normalize(arg), line = cur_line, } table.insert(cur_test.ops, cur_op) elseif cmd == "NOT_EXISTS" then cur_op = { op = "NOT_EXISTS", - file = dir.normalize(arg), + name = dir.normalize(arg), line = cur_line, } table.insert(cur_test.ops, cur_op) elseif cmd == "MKDIR" then cur_op = { op = "MKDIR", - file = dir.normalize(arg), + name = dir.normalize(arg), line = cur_line, } table.insert(cur_test.ops, cur_op) elseif cmd == "RMDIR" then cur_op = { op = "RMDIR", - file = dir.normalize(arg), + name = dir.normalize(arg), line = cur_line, } table.insert(cur_test.ops, cur_op) elseif cmd == "RM" then cur_op = { op = "RM", - file = dir.normalize(arg), + name = dir.normalize(arg), line = cur_line, } table.insert(cur_test.ops, cur_op) @@ -347,40 +347,41 @@ function quick.compile(filename, env) write([=[ return function() ]=]) write([=[ test_env.run_in_tmp(function(tmpdir) ]=]) write([=[ local function handle_tmpdir(s) ]=]) - write([=[ return (s:gsub("%%{url%(tmpdir%)}", (tmpdir:gsub("\\", "/"))) ]=]) + write([=[ return (s:gsub("%%{url%(%%{tmpdir}%)}", (tmpdir:gsub("\\", "/"))) ]=]) write([=[ :gsub("%%{tmpdir}", (tmpdir:gsub("[\\/]", dir_sep)))) ]=]) write([=[ end ]=]) write([=[ local ok, err ]=]) for _, op in ipairs(t.ops) do + if op.name then + op.name = native_slash(op.name) + write(([=[ local name = handle_tmpdir(%q) ]=]):format(op.name)) + end if op.op == "FILE" then if op.name:match("[\\/]") then - write(([=[ make_dir(%q) ]=]):format(dir.dir_name(op.name))) + write(([=[ make_dir(handle_tmpdir(%q)) ]=]):format(dir.dir_name(op.name))) end - write(([=[ test_env.write_file(handle_tmpdir(%q), handle_tmpdir([=====[ ]=]):format(op.name)) + write([=[ test_env.write_file(name, handle_tmpdir([=====[ ]=]) for _, line in ipairs(op.data) do write(line) end write([=[ ]=====]), finally) ]=]) elseif op.op == "EXISTS" then - write(([=[ ok, err = lfs.attributes(%q) ]=]):format(op.file)) - write(([=[ assert.truthy(ok, error_message(%d, "EXISTS failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.line, op.file)) + write(([=[ ok, err = lfs.attributes(name) ]=])) + write(([=[ assert.truthy(ok, error_message(%d, "EXISTS failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) elseif op.op == "NOT_EXISTS" then - write(([=[ assert.falsy(lfs.attributes(%q), error_message(%d, "NOT_EXISTS failed: " .. %q .. " exists" )) ]=]):format(op.file, op.line, op.file)) + write(([=[ assert.falsy(lfs.attributes(name), error_message(%d, "NOT_EXISTS failed: " .. name .. " exists" )) ]=]):format(op.line)) elseif op.op == "MKDIR" then - op.file = native_slash(op.file) - write(([=[ ok, err = make_dir(%q) ]=]):format(op.file)) - write(([=[ assert.truthy((lfs.attributes(%q) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.file, op.line, op.file)) + write(([=[ ok, err = make_dir(name) ]=])) + write(([=[ assert.truthy((lfs.attributes(name) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) elseif op.op == "RMDIR" then - op.file = native_slash(op.file) - write(([=[ ok, err = test_env.remove_dir(%q) ]=]):format(op.file)) - write(([=[ assert.falsy((lfs.attributes(%q) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.file, op.line, op.file)) + write(([=[ ok, err = test_env.remove_dir(name) ]=])) + write(([=[ assert.falsy((lfs.attributes(name) or {}).mode == "directory", error_message(%d, "MKDIR failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) elseif op.op == "RM" then - op.file = native_slash(op.file) - write(([=[ ok, err = os.remove(%q) ]=]):format(op.file)) - write(([=[ assert.falsy((lfs.attributes(%q) or {}).mode == "file", error_message(%d, "RM failed: " .. %q .. " - " .. (err or "") )) ]=]):format(op.file, op.line, op.file)) + write(([=[ ok, err = os.remove(name) ]=])) + write(([=[ assert.falsy((lfs.attributes(name) or {}).mode == "file", error_message(%d, "RM failed: " .. name .. " - " .. (err or "") )) ]=]):format(op.line)) elseif op.op == "FILE_CONTENTS" then write(([=[ do ]=])) - write(([=[ local fd_file = assert(io.open(%q, "rb")) ]=]):format(op.name)) + write(([=[ local fd_file = assert(io.open(name, "rb")) ]=])) write(([=[ local file_data = fd_file:read("*a") ]=])) write(([=[ fd_file:close() ]=])) write([=[ local block_at = 1 ]=]) @@ -388,7 +389,7 @@ function quick.compile(filename, env) for i, line in ipairs(op.data) do write(([=[ line = %q ]=]):format(line)) write(([=[ s, e = string.find(file_data, line, 1, true) ]=])) - write(([=[ assert(s, error_message(%d, "FILE_CONTENTS %s did not match: " .. line, file_data)) ]=]):format(op.start + i, op.name)) + write(([=[ assert(s, error_message(%d, "FILE_CONTENTS " .. name .. " did not match: " .. line, file_data)) ]=]):format(op.start + i)) write(([=[ block_at = e + 1 ]=]):format(i)) end write([=[ end ]=]) -- cgit v1.2.3-55-g6feb