diff options
-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 ]=]) |