diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2015-04-07 23:13:13 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2015-04-07 23:13:13 -0300 |
commit | 79addc7fb60a0f84c37fedfc6fa945c483be7b9a (patch) | |
tree | da1cdc0d730156528d614e2db70787d75e4bc627 /test | |
parent | 58fb6b92bc488660ebacf4312801b0a9e3ba86bf (diff) | |
download | luarocks-79addc7fb60a0f84c37fedfc6fa945c483be7b9a.tar.gz luarocks-79addc7fb60a0f84c37fedfc6fa945c483be7b9a.tar.bz2 luarocks-79addc7fb60a0f84c37fedfc6fa945c483be7b9a.zip |
Continuing slowly. Distracted by code golf. :)
Diffstat (limited to 'test')
-rw-r--r-- | test/testing.lua | 86 |
1 files changed, 59 insertions, 27 deletions
diff --git a/test/testing.lua b/test/testing.lua index 1572c130..9103c19a 100644 --- a/test/testing.lua +++ b/test/testing.lua | |||
@@ -1,14 +1,31 @@ | |||
1 | 1 | ||
2 | local variables = {} | ||
3 | |||
4 | -- Expand variables in the format $foo or ${foo} according | ||
5 | -- to the variables table. | ||
2 | local function expand_variables(str) | 6 | local function expand_variables(str) |
3 | -- TODO | 7 | return str:gsub("%$({?)([A-Za-z0-9_]+)(}?)", function(o, v, c) |
4 | return str | 8 | return #o <= #c and (variables[v] or "") .. (#o < #c and c or "") |
9 | end) | ||
5 | end | 10 | end |
6 | 11 | ||
7 | -- @param cmd command to run | 12 | -- @param cmd command to run |
8 | -- @param envtable optional table of temporary environment variables | 13 | -- @param envtable optional table of temporary environment variables |
9 | local function run(cmd, envtable) | 14 | local function run(cmd, envtable) |
10 | cmd = expand_variables(cmd) | 15 | cmd = expand_variables(cmd) |
11 | -- TODO | 16 | local env = {} |
17 | for var, val in pairs(envtable) do | ||
18 | table.insert(env, var.."='"..expand_variables(val).."' ") | ||
19 | end | ||
20 | local code = os.execute(table.concat(env)..cmd) | ||
21 | return (code == 0 or code == true) | ||
22 | end | ||
23 | |||
24 | local function cd_run(dir, cmd, envtable) | ||
25 | return run("cd "..dir.." && "..cmd, envtable) | ||
26 | end | ||
27 | |||
28 | local function run_get_contents(cmd) | ||
12 | end | 29 | end |
13 | 30 | ||
14 | local function mkdir(dirname) | 31 | local function mkdir(dirname) |
@@ -16,10 +33,26 @@ local function mkdir(dirname) | |||
16 | -- TODO | 33 | -- TODO |
17 | end | 34 | end |
18 | 35 | ||
36 | local function rm_rf(...) | ||
37 | -- TODO | ||
38 | end | ||
39 | |||
40 | local function mv(src, dst) | ||
41 | -- TODO | ||
42 | end | ||
43 | |||
44 | local function exists(filename) | ||
45 | filename = expand_variables(filename) | ||
46 | -- TODO | ||
47 | end | ||
48 | |||
49 | local function glob(patt) | ||
50 | -- TODO | ||
51 | end | ||
52 | |||
19 | local function rm(...) | 53 | local function rm(...) |
20 | for _, filename in ipairs {...} do | 54 | for _, filename in ipairs {...} do |
21 | filename = expand_variables(filename) | 55 | filename = expand_variables(filename) |
22 | -- TODO globbing | ||
23 | -- TODO | 56 | -- TODO |
24 | end | 57 | end |
25 | return true | 58 | return true |
@@ -35,6 +68,10 @@ local function file_set_contents(filename, contents) | |||
35 | return true | 68 | return true |
36 | end | 69 | end |
37 | 70 | ||
71 | local function need_luasocket() | ||
72 | -- TODO | ||
73 | end | ||
74 | |||
38 | local tests = { | 75 | local tests = { |
39 | 76 | ||
40 | test_version = function() return run "$luarocks --version" end, | 77 | test_version = function() return run "$luarocks --version" end, |
@@ -46,14 +83,10 @@ local tests = { | |||
46 | fail_arg_string_unknown = function() return run "$luarocks --invalid-flag=abc" end, | 83 | fail_arg_string_unknown = function() return run "$luarocks --invalid-flag=abc" end, |
47 | test_empty_list = function() return run "$luarocks list" end, | 84 | test_empty_list = function() return run "$luarocks list" end, |
48 | fail_bad_sysconfig = function() | 85 | fail_bad_sysconfig = function() |
49 | local err=0 | 86 | mkdir "$testing_lrprefix/etc/luarocks" |
50 | local scdir=testing_lrprefix.."/etc/luarocks/" | 87 | file_set_contents("$testing_lrprefix/etc/luarocks/config.lua", "aoeui") |
51 | mkdir(scdir) | 88 | return run "$luarocks list" |
52 | local sysconfig=scdir.."/config.lua" | 89 | and rm "$testing_lrprefix/etc/luarocks/config.lua" |
53 | file_set_contents(sysconfig, "aoeui") | ||
54 | local err = run "$luarocks list" | ||
55 | rm(sysconfig) | ||
56 | return err | ||
57 | end, | 90 | end, |
58 | fail_build_noarg = function() return run "$luarocks build" end, | 91 | fail_build_noarg = function() return run "$luarocks build" end, |
59 | fail_download_noarg = function() return run "$luarocks download" end, | 92 | fail_download_noarg = function() return run "$luarocks download" end, |
@@ -88,16 +121,16 @@ local tests = { | |||
88 | test_build_install_bin = function() return run "$luarocks build luarepl" end, | 121 | test_build_install_bin = function() return run "$luarocks build luarepl" end, |
89 | test_build_nohttps = function() | 122 | test_build_nohttps = function() |
90 | need_luasocket() | 123 | need_luasocket() |
91 | return (run "$luarocks download --rockspec validate-args ${verrev_validate_args}") | 124 | return run "$luarocks download --rockspec validate-args ${verrev_validate_args}" |
92 | and (run "$luarocks build ./validate-args-${version_validate_args}-1.rockspec") | 125 | and run "$luarocks build ./validate-args-${version_validate_args}-1.rockspec" |
93 | and (rm "./validate-args-${version_validate_args}-1.rockspec") | 126 | and rm "./validate-args-${version_validate_args}-1.rockspec" |
94 | end, | 127 | end, |
95 | test_build_https = function() | 128 | test_build_https = function() |
96 | need_luasocket() | 129 | need_luasocket() |
97 | return (run "$luarocks download --rockspec validate-args ${verrev_validate_args}") | 130 | return run "$luarocks download --rockspec validate-args ${verrev_validate_args}" |
98 | and (run "$luarocks install luasec") | 131 | and run "$luarocks install luasec" |
99 | and (run "$luarocks build ./validate-args-${verrev_validate_args}.rockspec") | 132 | and run "$luarocks build ./validate-args-${verrev_validate_args}.rockspec" |
100 | and (rm "./validate-args-${verrev_validate_args}.rockspec") | 133 | and rm "./validate-args-${verrev_validate_args}.rockspec" |
101 | end, | 134 | end, |
102 | test_build_supported_platforms = function() return run "$luarocks build lpty" end, | 135 | test_build_supported_platforms = function() return run "$luarocks build lpty" end, |
103 | fail_build_missing_external = function() return run '$luarocks build "$testing_dir/testfiles/missing_external-0.1-1.rockspec" INEXISTENT_INCDIR="/invalid/dir"' end, | 136 | fail_build_missing_external = function() return run '$luarocks build "$testing_dir/testfiles/missing_external-0.1-1.rockspec" INEXISTENT_INCDIR="/invalid/dir"' end, |
@@ -111,11 +144,11 @@ local tests = { | |||
111 | end, | 144 | end, |
112 | test_download_all = function() | 145 | test_download_all = function() |
113 | return run "$luarocks download --all validate-args" | 146 | return run "$luarocks download --all validate-args" |
114 | and rm "validate-args-*" | 147 | and rm(glob("validate-args-*")) |
115 | end, | 148 | end, |
116 | test_download_rockspecversion = function() | 149 | test_download_rockspecversion = function() |
117 | return run "$luarocks download --rockspec validate-args ${verrev_validate_args}" | 150 | return run "$luarocks download --rockspec validate-args ${verrev_validate_args}" |
118 | and rm "validate-args-*" | 151 | and rm(glob("validate-args-*")) |
119 | end, | 152 | end, |
120 | test_help = function() return run "$luarocks help" end, | 153 | test_help = function() return run "$luarocks help" end, |
121 | fail_help_invalid = function() return run "$luarocks help invalid" end, | 154 | fail_help_invalid = function() return run "$luarocks help invalid" end, |
@@ -179,30 +212,30 @@ local tests = { | |||
179 | rm_rf "./luasocket-${verrev_luasocket}" | 212 | rm_rf "./luasocket-${verrev_luasocket}" |
180 | run "$luarocks download --source luasocket" | 213 | run "$luarocks download --source luasocket" |
181 | run "$luarocks unpack ./luasocket-${verrev_luasocket}.src.rock" | 214 | run "$luarocks unpack ./luasocket-${verrev_luasocket}.src.rock" |
182 | local ok = at_run("luasocket-${verrev_luasocket}/${srcdir_luasocket}", "$luarocks make") | 215 | local ok = cd_run("luasocket-${verrev_luasocket}/${srcdir_luasocket}", "$luarocks make") |
183 | rm_rf "./luasocket-${verrev_luasocket}" | 216 | rm_rf "./luasocket-${verrev_luasocket}" |
184 | return ok | 217 | return ok |
185 | end, | 218 | end, |
186 | test_new_version = function() | 219 | test_new_version = function() |
187 | return run "$luarocks download --rockspec luacov ${version_luacov}" | 220 | return run "$luarocks download --rockspec luacov ${version_luacov}" |
188 | and run "$luarocks new_version ./luacov-${version_luacov}-1.rockspec 0.2" | 221 | and run "$luarocks new_version ./luacov-${version_luacov}-1.rockspec 0.2" |
189 | and rm "./luacov-0.*" | 222 | and rm(glob("./luacov-0.*")) |
190 | end, | 223 | end, |
191 | test_new_version_url = function() | 224 | test_new_version_url = function() |
192 | return run "$luarocks download --rockspec abelhas 1.0" | 225 | return run "$luarocks download --rockspec abelhas 1.0" |
193 | and run "$luarocks new_version ./abelhas-1.0-1.rockspec 1.1 https://github.com/downloads/ittner/abelhas/abelhas-1.1.tar.gz" | 226 | and run "$luarocks new_version ./abelhas-1.0-1.rockspec 1.1 https://github.com/downloads/ittner/abelhas/abelhas-1.1.tar.gz" |
194 | and rm "./abelhas-*" | 227 | and rm(glob("./abelhas-*")) |
195 | end, | 228 | end, |
196 | test_pack = function() | 229 | test_pack = function() |
197 | return run "$luarocks list" | 230 | return run "$luarocks list" |
198 | and run "$luarocks pack luacov" | 231 | and run "$luarocks pack luacov" |
199 | and rm "./luacov-*.rock" | 232 | and rm(glob("./luacov-*.rock")) |
200 | end, | 233 | end, |
201 | test_pack_src = function() | 234 | test_pack_src = function() |
202 | return run "$luarocks install luasec" | 235 | return run "$luarocks install luasec" |
203 | and run "$luarocks download --rockspec luasocket" | 236 | and run "$luarocks download --rockspec luasocket" |
204 | and run "$luarocks pack ./luasocket-${verrev_luasocket}.rockspec" | 237 | and run "$luarocks pack ./luasocket-${verrev_luasocket}.rockspec" |
205 | and rm "./luasocket-${version_luasocket}-*.rock" | 238 | and rm(glob("./luasocket-${version_luasocket}-*.rock")) |
206 | end, | 239 | end, |
207 | test_path = function() return run "$luarocks path --bin" end, | 240 | test_path = function() return run "$luarocks path --bin" end, |
208 | test_path_lr_path = function() return run "$luarocks path --lr-path" end, | 241 | test_path_lr_path = function() return run "$luarocks path --lr-path" end, |
@@ -288,7 +321,6 @@ local tests = { | |||
288 | fail_admin_remove_missing = function() return run "$luarocks_admin --server=testing remove" end, | 321 | fail_admin_remove_missing = function() return run "$luarocks_admin --server=testing remove" end, |
289 | fail_deps_mode_invalid_arg = function() return run "$luarocks remove luacov --deps-mode" end, | 322 | fail_deps_mode_invalid_arg = function() return run "$luarocks remove luacov --deps-mode" end, |
290 | 323 | ||
291 | -- TODO: | ||
292 | test_deps_mode_one = function() | 324 | test_deps_mode_one = function() |
293 | return run '$luarocks build --tree="system" lpeg' | 325 | return run '$luarocks build --tree="system" lpeg' |
294 | and run '$luarocks list' | 326 | and run '$luarocks list' |