diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2018-01-08 16:26:48 -0200 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2018-01-08 16:26:48 -0200 |
| commit | d80124af9cd929b395b4d4c353b51ccc902a3f9e (patch) | |
| tree | a738a509039b286697819db762916cfda0384413 /spec | |
| parent | 98a0bd9a97190be8ba10f14a3d67e42de827b04a (diff) | |
| download | luarocks-d80124af9cd929b395b4d4c353b51ccc902a3f9e.tar.gz luarocks-d80124af9cd929b395b4d4c353b51ccc902a3f9e.tar.bz2 luarocks-d80124af9cd929b395b4d4c353b51ccc902a3f9e.zip | |
Reorganize test suite files
Diffstat (limited to 'spec')
52 files changed, 1246 insertions, 56 deletions
diff --git a/spec/add_spec.lua b/spec/add_spec.lua index d42a97d0..1bc9e2a3 100644 --- a/spec/add_spec.lua +++ b/spec/add_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
| @@ -34,7 +34,7 @@ describe("LuaRocks add tests #blackbox #b_add", function() | |||
| 34 | 34 | ||
| 35 | --TODO This test fails, sftp support not yet implemented | 35 | --TODO This test fails, sftp support not yet implemented |
| 36 | it("LuaRocks-admin add invalid server", function() | 36 | it("LuaRocks-admin add invalid server", function() |
| 37 | assert.is_false(run.luarocks_admin_bool("--server=testing add luasocket-3.0rc1-2.src.rock", { LUAROCKS_CONFIG = testing_paths.testing_dir .. "/testing_config_sftp.lua" } )) | 37 | assert.is_false(run.luarocks_admin_bool("--server=testing add luasocket-3.0rc1-2.src.rock", { LUAROCKS_CONFIG = testing_paths.testrun_dir .. "/testing_config_sftp.lua" } )) |
| 38 | end) | 38 | end) |
| 39 | 39 | ||
| 40 | it("LuaRocks-admin add, split server url", function() | 40 | it("LuaRocks-admin add, split server url", function() |
diff --git a/spec/build_spec.lua b/spec/build_spec.lua index 459a7292..2de05879 100644 --- a/spec/build_spec.lua +++ b/spec/build_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
| @@ -140,7 +140,7 @@ describe("LuaRocks build tests #blackbox #b_build", function() | |||
| 140 | describe("LuaRocks build - more complex tests", function() | 140 | describe("LuaRocks build - more complex tests", function() |
| 141 | if test_env.TYPE_TEST_ENV == "full" then | 141 | if test_env.TYPE_TEST_ENV == "full" then |
| 142 | it("LuaRocks build luacheck show downloads test_config", function() | 142 | it("LuaRocks build luacheck show downloads test_config", function() |
| 143 | local output = run.luarocks("build luacheck", { LUAROCKS_CONFIG = testing_paths.testing_dir .. "/testing_config_show_downloads.lua"} ) | 143 | local output = run.luarocks("build luacheck", { LUAROCKS_CONFIG = testing_paths.testrun_dir .. "/testing_config_show_downloads.lua"} ) |
| 144 | assert.is.truthy(output:match("%.%.%.")) | 144 | assert.is.truthy(output:match("%.%.%.")) |
| 145 | end) | 145 | end) |
| 146 | end | 146 | end |
| @@ -190,7 +190,7 @@ describe("LuaRocks build tests #blackbox #b_build", function() | |||
| 190 | end) | 190 | end) |
| 191 | 191 | ||
| 192 | it("LuaRocks build invalid patch", function() | 192 | it("LuaRocks build invalid patch", function() |
| 193 | assert.is_false(run.luarocks_bool("build " .. testing_paths.testing_dir .. "/testfiles/invalid_patch-0.1-1.rockspec")) | 193 | assert.is_false(run.luarocks_bool("build " .. testing_paths.fixtures_dir .. "/invalid_patch-0.1-1.rockspec")) |
| 194 | end) | 194 | end) |
| 195 | end) | 195 | end) |
| 196 | 196 | ||
| @@ -204,12 +204,12 @@ describe("LuaRocks build tests #blackbox #b_build", function() | |||
| 204 | end) | 204 | end) |
| 205 | 205 | ||
| 206 | it("fails when missing external dependency", function() | 206 | it("fails when missing external dependency", function() |
| 207 | assert.is_false(run.luarocks_bool("build " .. testing_paths.testing_dir .. "/testfiles/missing_external-0.1-1.rockspec INEXISTENT_INCDIR=\"/invalid/dir\"")) | 207 | assert.is_false(run.luarocks_bool("build " .. testing_paths.fixtures_dir .. "/missing_external-0.1-1.rockspec INEXISTENT_INCDIR=\"/invalid/dir\"")) |
| 208 | end) | 208 | end) |
| 209 | 209 | ||
| 210 | it("builds with external dependency", function() | 210 | it("builds with external dependency", function() |
| 211 | local rockspec = testing_paths.testing_dir .. "/testfiles/with_external_dep-0.1-1.rockspec" | 211 | local rockspec = testing_paths.fixtures_dir .. "/with_external_dep-0.1-1.rockspec" |
| 212 | local foo_incdir = testing_paths.testing_dir .. "/testfiles/with_external_dep" | 212 | local foo_incdir = testing_paths.fixtures_dir .. "/with_external_dep" |
| 213 | assert.is_truthy(run.luarocks_bool("build " .. rockspec .. " FOO_INCDIR=\"" .. foo_incdir .. "\"")) | 213 | assert.is_truthy(run.luarocks_bool("build " .. rockspec .. " FOO_INCDIR=\"" .. foo_incdir .. "\"")) |
| 214 | assert.is.truthy(run.luarocks("show with_external_dep")) | 214 | assert.is.truthy(run.luarocks("show with_external_dep")) |
| 215 | end) | 215 | end) |
diff --git a/spec/config_spec.lua b/spec/config_spec.lua index 6be586c2..fae68474 100644 --- a/spec/config_spec.lua +++ b/spec/config_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
diff --git a/spec/deps_spec.lua b/spec/deps_spec.lua index 8c4effcd..76ee68a7 100644 --- a/spec/deps_spec.lua +++ b/spec/deps_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
diff --git a/spec/doc_spec.lua b/spec/doc_spec.lua index ea42cd6b..5f503af2 100644 --- a/spec/doc_spec.lua +++ b/spec/doc_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
diff --git a/spec/download_spec.lua b/spec/download_spec.lua index 320d9304..64443922 100644 --- a/spec/download_spec.lua +++ b/spec/download_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | 4 | ||
diff --git a/spec/fetch_spec.lua b/spec/fetch_spec.lua index ab2cd54e..59f73b57 100644 --- a/spec/fetch_spec.lua +++ b/spec/fetch_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | 2 | ||
| 3 | test_env.unload_luarocks() | 3 | test_env.unload_luarocks() |
| 4 | local fetch = require("luarocks.fetch") | 4 | local fetch = require("luarocks.fetch") |
diff --git a/spec/fixtures/a_rock-1.0-1.rockspec b/spec/fixtures/a_rock-1.0-1.rockspec new file mode 100644 index 00000000..9f15e87a --- /dev/null +++ b/spec/fixtures/a_rock-1.0-1.rockspec | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | package = "a_rock" | ||
| 2 | version = "1.0-1" | ||
| 3 | source = { | ||
| 4 | url = "http://localhost:8080/file/a_rock.lua" | ||
| 5 | } | ||
| 6 | description = { | ||
| 7 | summary = "An example rockspec", | ||
| 8 | } | ||
| 9 | dependencies = { | ||
| 10 | "lua >= 5.1" | ||
| 11 | } | ||
| 12 | build = { | ||
| 13 | type = "builtin", | ||
| 14 | modules = { | ||
| 15 | build = "a_rock.lua" | ||
| 16 | }, | ||
| 17 | } | ||
diff --git a/spec/fixtures/a_rock.lua b/spec/fixtures/a_rock.lua new file mode 100644 index 00000000..a5647075 --- /dev/null +++ b/spec/fixtures/a_rock.lua | |||
| @@ -0,0 +1 @@ | |||
| return {} | |||
diff --git a/spec/fixtures/invalid_patch-0.1-1.rockspec b/spec/fixtures/invalid_patch-0.1-1.rockspec new file mode 100644 index 00000000..c2ecd160 --- /dev/null +++ b/spec/fixtures/invalid_patch-0.1-1.rockspec | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | package = "invalid_patch" | ||
| 2 | version = "0.1-1" | ||
| 3 | source = { | ||
| 4 | -- any valid URL | ||
| 5 | url = "https://raw.github.com/keplerproject/luarocks/master/src/luarocks/build.lua" | ||
| 6 | } | ||
| 7 | description = { | ||
| 8 | summary = "A rockspec with an invalid patch", | ||
| 9 | } | ||
| 10 | dependencies = { | ||
| 11 | "lua >= 5.1" | ||
| 12 | } | ||
| 13 | build = { | ||
| 14 | type = "builtin", | ||
| 15 | modules = { | ||
| 16 | build = "build.lua" | ||
| 17 | }, | ||
| 18 | patches = { | ||
| 19 | ["I_am_an_invalid_patch.patch"] = | ||
| 20 | [[ | ||
| 21 | diff -Naur luadoc-3.0.1/src/luadoc/doclet/html.lua luadoc-3.0.1-new/src/luadoc/doclet/html.lua | ||
| 22 | --- luadoc-3.0.1/src/luadoc/doclet/html.lua2007-12-21 15:50:48.000000000 -0200 | ||
| 23 | +++ luadoc-3.0.1-new/src/luadoc/doclet/html.lua2008-02-28 01:59:53.000000000 -0300 | ||
| 24 | @@ -18,6 +18,7 @@ | ||
| 25 | - gabba gabba gabba | ||
| 26 | + gobo gobo gobo | ||
| 27 | ]] | ||
| 28 | } | ||
| 29 | } | ||
diff --git a/spec/fixtures/invalid_validate-args-1.5.4-1.rockspec b/spec/fixtures/invalid_validate-args-1.5.4-1.rockspec new file mode 100644 index 00000000..0b4d807d --- /dev/null +++ b/spec/fixtures/invalid_validate-args-1.5.4-1.rockspec | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | package = 'validate-args' | ||
| 2 | version = '1.5.4-1' | ||
| 3 | source = {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{++{ | ||
| 4 | url = "https://bitbucket.org/djerius/validate.args/downloads/validate-args-1.5.4.tar.gz" | ||
| 5 | } | ||
| 6 | |||
| 7 | description = { | ||
| 8 | summary = "Function argument validation", | ||
| 9 | detailed = [[ | ||
| 10 | validate.args is a Lua module that provides a framework for | ||
| 11 | validation of arguments to Lua functions as well as complex data | ||
| 12 | structures. The included validate.inplace module provides "live" | ||
| 13 | validation during assignment of values to elements in tables. ]], | ||
| 14 | license = "GPL-3", | ||
| 15 | |||
| 16 | } | ||
| 17 | |||
| 18 | dependencies = { | ||
| 19 | "lua >= 5.1" | ||
| 20 | } | ||
| 21 | |||
| 22 | build = { | ||
| 23 | |||
| 24 | type = "builtin", | ||
| 25 | |||
| 26 | modules = { | ||
| 27 | ["validate.args"] = "validate/args.lua", | ||
| 28 | ["validate.inplace"] = "validate/inplace.lua", | ||
| 29 | }, | ||
| 30 | |||
| 31 | copy_directories = { | ||
| 32 | "doc", "tests" | ||
| 33 | } | ||
| 34 | |||
| 35 | } | ||
diff --git a/spec/fixtures/luajit-fail-1.0-1.rockspec b/spec/fixtures/luajit-fail-1.0-1.rockspec new file mode 100644 index 00000000..f8204600 --- /dev/null +++ b/spec/fixtures/luajit-fail-1.0-1.rockspec | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | package = "luajit-fail" | ||
| 2 | version = "1.0-1" | ||
| 3 | source = { | ||
| 4 | url = "https://raw.githubusercontent.com/keplerproject/luarocks/master/test/testing.lua", | ||
| 5 | } | ||
| 6 | description = { | ||
| 7 | summary = "Test luajit dependency fail", | ||
| 8 | detailed = [[ | ||
| 9 | Fail luajit dependency when running with rockspec_format < 3.0. | ||
| 10 | ]], | ||
| 11 | homepage = "http://luarocks.org/", | ||
| 12 | license = "MIT/X license" | ||
| 13 | } | ||
| 14 | dependencies = { | ||
| 15 | "luajit >= 2.0" | ||
| 16 | } | ||
| 17 | build = { | ||
| 18 | type = "builtin", | ||
| 19 | modules = { | ||
| 20 | testing = "testing.lua" | ||
| 21 | } | ||
| 22 | } | ||
diff --git a/spec/fixtures/luajit-success-1.0-1.rockspec b/spec/fixtures/luajit-success-1.0-1.rockspec new file mode 100644 index 00000000..31c930c3 --- /dev/null +++ b/spec/fixtures/luajit-success-1.0-1.rockspec | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | rockspec_format = "3.0" | ||
| 2 | package = "luajit-success" | ||
| 3 | version = "1.0-1" | ||
| 4 | source = { | ||
| 5 | url = "https://raw.githubusercontent.com/keplerproject/luarocks/master/test/testing.lua", | ||
| 6 | } | ||
| 7 | description = { | ||
| 8 | summary = "Test luajit dependency fail", | ||
| 9 | detailed = [[ | ||
| 10 | Use luajit dependency when running with rockspec_format >= 3.0. | ||
| 11 | ]], | ||
| 12 | homepage = "http://luarocks.org/", | ||
| 13 | license = "MIT/X license" | ||
| 14 | } | ||
| 15 | dependencies = { | ||
| 16 | "luajit >= 2.0" | ||
| 17 | } | ||
| 18 | build = { | ||
| 19 | type = "builtin", | ||
| 20 | modules = { | ||
| 21 | testing = "testing.lua" | ||
| 22 | } | ||
| 23 | } | ||
diff --git a/spec/fixtures/missing_external-0.1-1.rockspec b/spec/fixtures/missing_external-0.1-1.rockspec new file mode 100644 index 00000000..5f8e6219 --- /dev/null +++ b/spec/fixtures/missing_external-0.1-1.rockspec | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | package = "missing_external" | ||
| 2 | version = "0.1-1" | ||
| 3 | source = { | ||
| 4 | -- any valid URL | ||
| 5 | url = "https://raw.github.com/keplerproject/luarocks/master/src/luarocks/build.lua" | ||
| 6 | } | ||
| 7 | description = { | ||
| 8 | summary = "Missing external dependency", | ||
| 9 | } | ||
| 10 | external_dependencies = { | ||
| 11 | INEXISTENT = { | ||
| 12 | library = "inexistentlib*", | ||
| 13 | header = "inexistentheader*.h", | ||
| 14 | } | ||
| 15 | } | ||
| 16 | dependencies = { | ||
| 17 | "lua >= 5.1" | ||
| 18 | } | ||
| 19 | build = { | ||
| 20 | type = "builtin", | ||
| 21 | modules = { | ||
| 22 | build = "build.lua" | ||
| 23 | } | ||
| 24 | } | ||
diff --git a/spec/fixtures/mixed_deploy_type/mdt.c b/spec/fixtures/mixed_deploy_type/mdt.c new file mode 100644 index 00000000..a162ce23 --- /dev/null +++ b/spec/fixtures/mixed_deploy_type/mdt.c | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #include "lua.h" | ||
| 2 | |||
| 3 | int luaopen_mdt(lua_State *L) { | ||
| 4 | lua_pushstring(L, "mdt.c"); | ||
| 5 | return 1; | ||
| 6 | } | ||
diff --git a/spec/fixtures/mixed_deploy_type/mdt.lua b/spec/fixtures/mixed_deploy_type/mdt.lua new file mode 100644 index 00000000..c9ca9c68 --- /dev/null +++ b/spec/fixtures/mixed_deploy_type/mdt.lua | |||
| @@ -0,0 +1 @@ | |||
| return "mdt.lua" | |||
diff --git a/spec/fixtures/mixed_deploy_type/mdt_file b/spec/fixtures/mixed_deploy_type/mdt_file new file mode 100644 index 00000000..1a15f7d7 --- /dev/null +++ b/spec/fixtures/mixed_deploy_type/mdt_file | |||
| @@ -0,0 +1 @@ | |||
| return "mdt_file" | |||
diff --git a/spec/fixtures/mixed_deploy_type/mixed_deploy_type-0.1.0-1.rockspec b/spec/fixtures/mixed_deploy_type/mixed_deploy_type-0.1.0-1.rockspec new file mode 100644 index 00000000..91b725da --- /dev/null +++ b/spec/fixtures/mixed_deploy_type/mixed_deploy_type-0.1.0-1.rockspec | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | package = "mixed_deploy_type" | ||
| 2 | version = "0.1.0-1" | ||
| 3 | source = { | ||
| 4 | url = "http://example.com" | ||
| 5 | } | ||
| 6 | description = { | ||
| 7 | homepage = "http://example.com", | ||
| 8 | license = "*** please specify a license ***" | ||
| 9 | } | ||
| 10 | dependencies = {} | ||
| 11 | build = { | ||
| 12 | type = "builtin", | ||
| 13 | modules = { | ||
| 14 | mdt = "mdt/mdt.lua" | ||
| 15 | }, | ||
| 16 | install = { | ||
| 17 | lua = { | ||
| 18 | mdt_file = "mdt/mdt_file" | ||
| 19 | } | ||
| 20 | } | ||
| 21 | } | ||
diff --git a/spec/fixtures/mixed_deploy_type/mixed_deploy_type-0.2.0-1.rockspec b/spec/fixtures/mixed_deploy_type/mixed_deploy_type-0.2.0-1.rockspec new file mode 100644 index 00000000..9ca03180 --- /dev/null +++ b/spec/fixtures/mixed_deploy_type/mixed_deploy_type-0.2.0-1.rockspec | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | package = "mixed_deploy_type" | ||
| 2 | version = "0.2.0-1" | ||
| 3 | source = { | ||
| 4 | url = "http://example.com" | ||
| 5 | } | ||
| 6 | description = { | ||
| 7 | homepage = "http://example.com", | ||
| 8 | license = "*** please specify a license ***" | ||
| 9 | } | ||
| 10 | dependencies = {} | ||
| 11 | build = { | ||
| 12 | type = "builtin", | ||
| 13 | modules = { | ||
| 14 | mdt = "mdt/mdt.c" | ||
| 15 | }, | ||
| 16 | install = { | ||
| 17 | lib = { | ||
| 18 | mdt_file = "mdt/mdt_file" | ||
| 19 | } | ||
| 20 | } | ||
| 21 | } | ||
diff --git a/spec/fixtures/no_build_table-0.1-1.rockspec b/spec/fixtures/no_build_table-0.1-1.rockspec new file mode 100644 index 00000000..5d79e9a0 --- /dev/null +++ b/spec/fixtures/no_build_table-0.1-1.rockspec | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | package = "no_build_table" | ||
| 2 | version = "0.1-1" | ||
| 3 | source = { | ||
| 4 | -- any valid URL | ||
| 5 | url = "https://raw.github.com/keplerproject/luarocks/master/src/luarocks/build.lua" | ||
| 6 | } | ||
| 7 | description = { | ||
| 8 | summary = "A rockspec with no build field", | ||
| 9 | } | ||
| 10 | dependencies = { | ||
| 11 | "lua >= 5.1" | ||
| 12 | } | ||
diff --git a/spec/fixtures/not_a_zipfile-1.0-1.src.rock b/spec/fixtures/not_a_zipfile-1.0-1.src.rock new file mode 100644 index 00000000..e36f8bbe --- /dev/null +++ b/spec/fixtures/not_a_zipfile-1.0-1.src.rock | |||
| @@ -0,0 +1 @@ | |||
| I am not a .zip file! | |||
diff --git a/spec/fixtures/patch_create_delete-0.1-1.rockspec b/spec/fixtures/patch_create_delete-0.1-1.rockspec new file mode 100644 index 00000000..3d55da58 --- /dev/null +++ b/spec/fixtures/patch_create_delete-0.1-1.rockspec | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | rockspec_format = "3.0" | ||
| 2 | package = "patch_create_delete" | ||
| 3 | version = "0.1-1" | ||
| 4 | source = { | ||
| 5 | -- any valid URL | ||
| 6 | url = "git://github.com/luarocks/luarocks" | ||
| 7 | } | ||
| 8 | description = { | ||
| 9 | summary = "A rockspec with a patch that creates and deletes files", | ||
| 10 | } | ||
| 11 | dependencies = { | ||
| 12 | "lua >= 5.1" | ||
| 13 | } | ||
| 14 | build = { | ||
| 15 | type = "builtin", | ||
| 16 | modules = { | ||
| 17 | ["luarocks.loader"] = "src/luarocks/loader.lua" | ||
| 18 | }, | ||
| 19 | patches = { | ||
| 20 | ["create_delete.patch"] = | ||
| 21 | [[ | ||
| 22 | diff -Naur luarocks/spec/fixtures/patch_create_delete/a_file.txt luarocks-patch/spec/fixtures/patch_create_delete/a_file.txt | ||
| 23 | --- luarocks/spec/fixtures/patch_create_delete/a_file.txt 2017-10-04 15:39:44.179306674 -0300 | ||
| 24 | +++ luarocks-patch/spec/fixtures/patch_create_delete/a_file.txt 1969-12-31 21:00:00.000000000 -0300 | ||
| 25 | @@ -1 +0,0 @@ | ||
| 26 | -I am a file. | ||
| 27 | diff -Naur luarocks/spec/fixtures/patch_create_delete/another_file.txt luarocks-patch/spec/fixtures/patch_create_delete/another_file.txt | ||
| 28 | --- luarocks/spec/fixtures/patch_create_delete/another_file.txt 1969-12-31 21:00:00.000000000 -0300 | ||
| 29 | +++ luarocks-patch/spec/fixtures/patch_create_delete/another_file.txt 2017-10-04 15:40:12.836306564 -0300 | ||
| 30 | @@ -0,0 +1 @@ | ||
| 31 | +I am another file. | ||
| 32 | ]] | ||
| 33 | } | ||
| 34 | } | ||
diff --git a/spec/fixtures/patch_create_delete/a_file.txt b/spec/fixtures/patch_create_delete/a_file.txt new file mode 100644 index 00000000..6539c24e --- /dev/null +++ b/spec/fixtures/patch_create_delete/a_file.txt | |||
| @@ -0,0 +1 @@ | |||
| I am a file. | |||
diff --git a/spec/fixtures/type_mismatch_string-1.0-1.rockspec b/spec/fixtures/type_mismatch_string-1.0-1.rockspec new file mode 100644 index 00000000..7a607cfd --- /dev/null +++ b/spec/fixtures/type_mismatch_string-1.0-1.rockspec | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | |||
| 2 | package="type_mismatch_version" | ||
| 3 | version=1.0 | ||
| 4 | |||
diff --git a/spec/fixtures/type_mismatch_table-1.0-1.rockspec b/spec/fixtures/type_mismatch_table-1.0-1.rockspec new file mode 100644 index 00000000..f348b798 --- /dev/null +++ b/spec/fixtures/type_mismatch_table-1.0-1.rockspec | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | |||
| 2 | package="type_mismatch_table" | ||
| 3 | version="1.0-1" | ||
| 4 | |||
| 5 | source = "not a table" | ||
diff --git a/spec/fixtures/type_mismatch_version-1.0-1.rockspec b/spec/fixtures/type_mismatch_version-1.0-1.rockspec new file mode 100644 index 00000000..5e30dae6 --- /dev/null +++ b/spec/fixtures/type_mismatch_version-1.0-1.rockspec | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | |||
| 2 | package="type_mismatch_version" | ||
| 3 | version="1.0" | ||
| 4 | |||
diff --git a/spec/fixtures/with_external_dep-0.1-1.rockspec b/spec/fixtures/with_external_dep-0.1-1.rockspec new file mode 100644 index 00000000..45fea4bd --- /dev/null +++ b/spec/fixtures/with_external_dep-0.1-1.rockspec | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | package = "with_external_dep" | ||
| 2 | version = "0.1-1" | ||
| 3 | source = { | ||
| 4 | url = "http://localhost:8080/file/with_external_dep.c" | ||
| 5 | } | ||
| 6 | description = { | ||
| 7 | summary = "An example rockspec", | ||
| 8 | } | ||
| 9 | external_dependencies = { | ||
| 10 | FOO = { | ||
| 11 | header = "foo/foo.h" | ||
| 12 | } | ||
| 13 | } | ||
| 14 | dependencies = { | ||
| 15 | "lua >= 5.1" | ||
| 16 | } | ||
| 17 | build = { | ||
| 18 | type = "builtin", | ||
| 19 | modules = { | ||
| 20 | with_external_dep = { | ||
| 21 | sources = "with_external_dep.c", | ||
| 22 | incdirs = "$(FOO_INCDIR)", | ||
| 23 | } | ||
| 24 | } | ||
| 25 | } | ||
diff --git a/spec/fixtures/with_external_dep.c b/spec/fixtures/with_external_dep.c new file mode 100644 index 00000000..16435d8f --- /dev/null +++ b/spec/fixtures/with_external_dep.c | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | #include <foo/foo.h> | ||
| 2 | #include <lua.h> | ||
| 3 | #include <lauxlib.h> | ||
| 4 | |||
| 5 | int luaopen_with_external_dep(lua_State* L) { | ||
| 6 | lua_newtable(L); | ||
| 7 | lua_pushinteger(L, FOO); | ||
| 8 | lua_setfield(L, -2, "foo"); | ||
| 9 | return 1; | ||
| 10 | } | ||
diff --git a/spec/fixtures/with_external_dep/foo/foo.h b/spec/fixtures/with_external_dep/foo/foo.h new file mode 100644 index 00000000..eedd558f --- /dev/null +++ b/spec/fixtures/with_external_dep/foo/foo.h | |||
| @@ -0,0 +1 @@ | |||
| #define FOO 42 | |||
diff --git a/spec/fixtures/with_external_dep/foo/foo.h.gch b/spec/fixtures/with_external_dep/foo/foo.h.gch new file mode 100644 index 00000000..66165c9e --- /dev/null +++ b/spec/fixtures/with_external_dep/foo/foo.h.gch | |||
| Binary files differ | |||
diff --git a/spec/fs_spec.lua b/spec/fs_spec.lua index c76f47a4..17ac90ab 100644 --- a/spec/fs_spec.lua +++ b/spec/fs_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | 2 | ||
| 3 | test_env.unload_luarocks() | 3 | test_env.unload_luarocks() |
| 4 | local fs = require("luarocks.fs") | 4 | local fs = require("luarocks.fs") |
diff --git a/spec/help_spec.lua b/spec/help_spec.lua index 71b1b9f6..f7bb79b3 100644 --- a/spec/help_spec.lua +++ b/spec/help_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | 3 | ||
| 4 | test_env.unload_luarocks() | 4 | test_env.unload_luarocks() |
diff --git a/spec/install_spec.lua b/spec/install_spec.lua index 92b780d3..d72d88ba 100644 --- a/spec/install_spec.lua +++ b/spec/install_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
| @@ -43,7 +43,7 @@ describe("LuaRocks install tests #blackbox #b_install", function() | |||
| 43 | end) | 43 | end) |
| 44 | 44 | ||
| 45 | it("LuaRocks install invalid patch", function() | 45 | it("LuaRocks install invalid patch", function() |
| 46 | assert.is_false(run.luarocks_bool("install " .. testing_paths.testing_dir .. "/testfiles/invalid_patch-0.1-1.rockspec")) | 46 | assert.is_false(run.luarocks_bool("install " .. testing_paths.fixtures_dir .. "/invalid_patch-0.1-1.rockspec")) |
| 47 | end) | 47 | end) |
| 48 | 48 | ||
| 49 | it("LuaRocks install invalid rock", function() | 49 | it("LuaRocks install invalid rock", function() |
| @@ -55,7 +55,7 @@ describe("LuaRocks install tests #blackbox #b_install", function() | |||
| 55 | end) | 55 | end) |
| 56 | 56 | ||
| 57 | it("LuaRocks install not a zip file", function() | 57 | it("LuaRocks install not a zip file", function() |
| 58 | assert.is_false(run.luarocks_bool("install " .. testing_paths.testing_dir .. "/testfiles/not_a_zipfile-1.0-1.src.rock")) | 58 | assert.is_false(run.luarocks_bool("install " .. testing_paths.fixtures_dir .. "/not_a_zipfile-1.0-1.src.rock")) |
| 59 | end) | 59 | end) |
| 60 | 60 | ||
| 61 | it("LuaRocks install only-deps of lxsh show there is no lxsh", function() | 61 | it("LuaRocks install only-deps of lxsh show there is no lxsh", function() |
diff --git a/spec/lint_spec.lua b/spec/lint_spec.lua index f7496037..1c082b2a 100644 --- a/spec/lint_spec.lua +++ b/spec/lint_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
| @@ -31,19 +31,19 @@ describe("LuaRocks lint tests #blackbox #b_lint", function() | |||
| 31 | 31 | ||
| 32 | describe("LuaRocks lint mismatch set", function() | 32 | describe("LuaRocks lint mismatch set", function() |
| 33 | it("LuaRocks lint mismatch string", function() | 33 | it("LuaRocks lint mismatch string", function() |
| 34 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.testing_dir .. "/testfiles/type_mismatch_string-1.0-1.rockspec")) | 34 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.fixtures_dir .. "/type_mismatch_string-1.0-1.rockspec")) |
| 35 | end) | 35 | end) |
| 36 | 36 | ||
| 37 | it("LuaRocks lint mismatch version", function() | 37 | it("LuaRocks lint mismatch version", function() |
| 38 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.testing_dir .. "/testfiles/type_mismatch_version-1.0-1.rockspec")) | 38 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.fixtures_dir .. "/type_mismatch_version-1.0-1.rockspec")) |
| 39 | end) | 39 | end) |
| 40 | 40 | ||
| 41 | it("LuaRocks lint mismatch table", function() | 41 | it("LuaRocks lint mismatch table", function() |
| 42 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.testing_dir .. "/testfiles/type_mismatch_table-1.0-1.rockspec")) | 42 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.fixtures_dir .. "/type_mismatch_table-1.0-1.rockspec")) |
| 43 | end) | 43 | end) |
| 44 | 44 | ||
| 45 | it("LuaRocks lint mismatch no build table", function() | 45 | it("LuaRocks lint mismatch no build table", function() |
| 46 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.testing_dir .. "/testfiles/no_build_table-1.0-1.rockspec")) | 46 | assert.is_false(run.luarocks_bool("lint " .. testing_paths.fixtures_dir .. "/no_build_table-1.0-1.rockspec")) |
| 47 | end) | 47 | end) |
| 48 | end) | 48 | end) |
| 49 | end) | 49 | end) |
diff --git a/spec/list_spec.lua b/spec/list_spec.lua index b9a8e4c4..9f221b90 100644 --- a/spec/list_spec.lua +++ b/spec/list_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
diff --git a/spec/make_manifest_spec.lua b/spec/make_manifest_spec.lua index 3e998cbf..2b109fa7 100644 --- a/spec/make_manifest_spec.lua +++ b/spec/make_manifest_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | 3 | ||
| 4 | test_env.unload_luarocks() | 4 | test_env.unload_luarocks() |
diff --git a/spec/make_spec.lua b/spec/make_spec.lua index 4c406c68..88b35b22 100644 --- a/spec/make_spec.lua +++ b/spec/make_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
| @@ -102,7 +102,7 @@ describe("LuaRocks make tests #blackbox #b_make", function() | |||
| 102 | 102 | ||
| 103 | describe("LuaRocks make upgrading rockspecs with mixed deploy types", function() | 103 | describe("LuaRocks make upgrading rockspecs with mixed deploy types", function() |
| 104 | before_each(function() | 104 | before_each(function() |
| 105 | test_env.copy_dir(testing_paths.testing_dir .. "/testfiles/mixed_deploy_type", "mdt") | 105 | test_env.copy_dir(testing_paths.fixtures_dir .. "/mixed_deploy_type", "mdt") |
| 106 | end) | 106 | end) |
| 107 | 107 | ||
| 108 | after_each(function() | 108 | after_each(function() |
diff --git a/spec/new_version_spec.lua b/spec/new_version_spec.lua index 2f67141d..65f60dd6 100644 --- a/spec/new_version_spec.lua +++ b/spec/new_version_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
diff --git a/spec/pack_spec.lua b/spec/pack_spec.lua index 0c6dd8f2..966195c5 100644 --- a/spec/pack_spec.lua +++ b/spec/pack_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
| @@ -30,7 +30,7 @@ describe("LuaRocks pack tests #blackbox #b_pack", function() | |||
| 30 | end) | 30 | end) |
| 31 | 31 | ||
| 32 | it("LuaRocks pack invalid rockspec", function() | 32 | it("LuaRocks pack invalid rockspec", function() |
| 33 | assert.is_false(run.luarocks_bool("pack " .. testing_paths.testing_dir .. "/testfiles/invaild_validate-args-1.5.4-1.rockspec")) | 33 | assert.is_false(run.luarocks_bool("pack " .. testing_paths.fixtures_dir .. "/invaild_validate-args-1.5.4-1.rockspec")) |
| 34 | end) | 34 | end) |
| 35 | 35 | ||
| 36 | it("LuaRocks pack not installed rock", function() | 36 | it("LuaRocks pack not installed rock", function() |
diff --git a/spec/path_spec.lua b/spec/path_spec.lua index 536233b1..bbc0cfc8 100644 --- a/spec/path_spec.lua +++ b/spec/path_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | 3 | ||
| 4 | test_env.unload_luarocks() | 4 | test_env.unload_luarocks() |
diff --git a/spec/persist.lua b/spec/persist.lua index 6b69dab4..00a9b75d 100644 --- a/spec/persist.lua +++ b/spec/persist.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | 2 | ||
| 3 | test_env.unload_luarocks() | 3 | test_env.unload_luarocks() |
| 4 | local persist = require("luarocks.persist") | 4 | local persist = require("luarocks.persist") |
diff --git a/spec/purge_spec.lua b/spec/purge_spec.lua index 20cee5f0..79ad0dfd 100644 --- a/spec/purge_spec.lua +++ b/spec/purge_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
diff --git a/spec/refresh_cache_spec.lua b/spec/refresh_cache_spec.lua index 09f5645e..51c1572f 100644 --- a/spec/refresh_cache_spec.lua +++ b/spec/refresh_cache_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | 3 | ||
| 4 | test_env.unload_luarocks() | 4 | test_env.unload_luarocks() |
diff --git a/spec/remove_spec.lua b/spec/remove_spec.lua index 4d3f5cdc..c0e9beb0 100644 --- a/spec/remove_spec.lua +++ b/spec/remove_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
diff --git a/spec/search_spec.lua b/spec/search_spec.lua index 04f84eeb..952458dd 100644 --- a/spec/search_spec.lua +++ b/spec/search_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | 3 | ||
| 4 | test_env.unload_luarocks() | 4 | test_env.unload_luarocks() |
diff --git a/spec/show_spec.lua b/spec/show_spec.lua index 0b046de0..d572be9b 100644 --- a/spec/show_spec.lua +++ b/spec/show_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | 3 | ||
| 4 | test_env.unload_luarocks() | 4 | test_env.unload_luarocks() |
diff --git a/spec/unpack_spec.lua b/spec/unpack_spec.lua index d629e225..fc02d853 100644 --- a/spec/unpack_spec.lua +++ b/spec/unpack_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
| @@ -26,7 +26,7 @@ describe("LuaRocks unpack tests #blackbox #b_unpack", function() | |||
| 26 | end) | 26 | end) |
| 27 | 27 | ||
| 28 | it("LuaRocks unpack with invalid patch", function() | 28 | it("LuaRocks unpack with invalid patch", function() |
| 29 | assert.is_false(run.luarocks_bool("unpack " .. testing_paths.testing_dir .. "/testfiles/invalid_patch-0.1-1.rockspec")) | 29 | assert.is_false(run.luarocks_bool("unpack " .. testing_paths.fixtures_dir .. "/invalid_patch-0.1-1.rockspec")) |
| 30 | end) | 30 | end) |
| 31 | end) | 31 | end) |
| 32 | 32 | ||
diff --git a/spec/upload_spec.lua b/spec/upload_spec.lua index b8e147e0..3adfa2dd 100644 --- a/spec/upload_spec.lua +++ b/spec/upload_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local run = test_env.run | 2 | local run = test_env.run |
| 3 | local testing_paths = test_env.testing_paths | 3 | local testing_paths = test_env.testing_paths |
| 4 | 4 | ||
| @@ -39,10 +39,10 @@ describe("LuaRocks upload tests #blackbox #b_upload", function() | |||
| 39 | after_each(test_env.mock_server_done) | 39 | after_each(test_env.mock_server_done) |
| 40 | 40 | ||
| 41 | it("LuaRocks upload rockspec with api-key", function() | 41 | it("LuaRocks upload rockspec with api-key", function() |
| 42 | assert.is_true(run.luarocks_bool("upload " .. testing_paths.testing_dir .. "/testfiles/a_rock-1.0-1.rockspec " .. test_env.OPENSSL_DIRS .. " --api-key=123", {LUAROCKS_CONFIG = testing_paths.testing_dir .. "/luarocks_site.lua"})) | 42 | assert.is_true(run.luarocks_bool("upload " .. testing_paths.fixtures_dir .. "/a_rock-1.0-1.rockspec " .. test_env.OPENSSL_DIRS .. " --api-key=123", {LUAROCKS_CONFIG = testing_paths.testrun_dir .. "/luarocks_site.lua"})) |
| 43 | end) | 43 | end) |
| 44 | it("LuaRocks upload rockspec with api-key and skip-pack", function() | 44 | it("LuaRocks upload rockspec with api-key and skip-pack", function() |
| 45 | assert.is_true(run.luarocks_bool("upload --skip-pack " .. testing_paths.testing_dir .. "/testfiles/a_rock-1.0-1.rockspec " .. test_env.OPENSSL_DIRS .. " --api-key=123", {LUAROCKS_CONFIG = testing_paths.testing_dir .. "/luarocks_site.lua"})) | 45 | assert.is_true(run.luarocks_bool("upload --skip-pack " .. testing_paths.fixtures_dir .. "/a_rock-1.0-1.rockspec " .. test_env.OPENSSL_DIRS .. " --api-key=123", {LUAROCKS_CONFIG = testing_paths.testrun_dir .. "/luarocks_site.lua"})) |
| 46 | end) | 46 | end) |
| 47 | end) | 47 | end) |
| 48 | end) | 48 | end) |
diff --git a/spec/util/mock-server.lua b/spec/util/mock-server.lua new file mode 100644 index 00000000..244aceae --- /dev/null +++ b/spec/util/mock-server.lua | |||
| @@ -0,0 +1,97 @@ | |||
| 1 | #!/usr/bin/env lua | ||
| 2 | |||
| 3 | --- A simple LuaRocks mock-server for testing. | ||
| 4 | local restserver = require("restserver") | ||
| 5 | local server = restserver:new():port(8080) | ||
| 6 | |||
| 7 | server:add_resource("api/tool_version", { | ||
| 8 | { | ||
| 9 | method = "GET", | ||
| 10 | path = "/", | ||
| 11 | produces = "application/json", | ||
| 12 | handler = function(query) | ||
| 13 | local json = { version = query.current } | ||
| 14 | return restserver.response():status(200):entity(json) | ||
| 15 | end | ||
| 16 | } | ||
| 17 | }) | ||
| 18 | |||
| 19 | server:add_resource("api/1/{id:[0-9]+}/status", { | ||
| 20 | { | ||
| 21 | method = "GET", | ||
| 22 | path = "/", | ||
| 23 | produces = "application/json", | ||
| 24 | handler = function(query) | ||
| 25 | local json = { user_id = "123", created_at = "29.1.1993" } | ||
| 26 | return restserver.response():status(200):entity(json) | ||
| 27 | end | ||
| 28 | } | ||
| 29 | }) | ||
| 30 | |||
| 31 | server:add_resource("/api/1/{id:[0-9]+}/check_rockspec", { | ||
| 32 | { | ||
| 33 | method = "GET", | ||
| 34 | path = "/", | ||
| 35 | produces = "application/json", | ||
| 36 | handler = function(query) | ||
| 37 | local json = {} | ||
| 38 | return restserver.response():status(200):entity(json) | ||
| 39 | end | ||
| 40 | } | ||
| 41 | }) | ||
| 42 | |||
| 43 | server:add_resource("/api/1/{id:[0-9]+}/upload", { | ||
| 44 | { | ||
| 45 | method = "POST", | ||
| 46 | path = "/", | ||
| 47 | produces = "application/json", | ||
| 48 | handler = function(query) | ||
| 49 | local json = {module = "luasocket", version = {id = "1.0"}, module_url = "http://localhost/luasocket", manifests = "root", is_new = "is_new"} | ||
| 50 | return restserver.response():status(200):entity(json) | ||
| 51 | end | ||
| 52 | } | ||
| 53 | }) | ||
| 54 | |||
| 55 | server:add_resource("/api/1/{id:[0-9]+}/upload_rock/{id:[0-9]+}", { | ||
| 56 | { | ||
| 57 | method = "POST", | ||
| 58 | path = "/", | ||
| 59 | produces = "application/json", | ||
| 60 | handler = function(query) | ||
| 61 | local json = {"rock","module_url"} | ||
| 62 | return restserver.response():status(200):entity(json) | ||
| 63 | end | ||
| 64 | } | ||
| 65 | }) | ||
| 66 | |||
| 67 | server:add_resource("/file/{name:[^/]+}", { | ||
| 68 | { | ||
| 69 | method = "GET", | ||
| 70 | path = "/", | ||
| 71 | produces = "text/plain", | ||
| 72 | handler = function(query, name) | ||
| 73 | local fd = io.open("spec/fixtures/"..name, "r") | ||
| 74 | if not fd then | ||
| 75 | return restserver.response():status(404) | ||
| 76 | end | ||
| 77 | local data = fd:read("*a") | ||
| 78 | fd:close() | ||
| 79 | return restserver.response():status(200):entity(data) | ||
| 80 | end | ||
| 81 | } | ||
| 82 | }) | ||
| 83 | |||
| 84 | -- SHUTDOWN this mock-server | ||
| 85 | server:add_resource("/shutdown", { | ||
| 86 | { | ||
| 87 | method = "GET", | ||
| 88 | path = "/", | ||
| 89 | handler = function(query) | ||
| 90 | os.exit() | ||
| 91 | return restserver.response():status(200):entity() | ||
| 92 | end | ||
| 93 | } | ||
| 94 | }) | ||
| 95 | |||
| 96 | -- This loads the restserver.xavante plugin | ||
| 97 | server:enable("restserver.xavante"):start() \ No newline at end of file | ||
diff --git a/spec/util/test_env.lua b/spec/util/test_env.lua new file mode 100644 index 00000000..9d9ae843 --- /dev/null +++ b/spec/util/test_env.lua | |||
| @@ -0,0 +1,795 @@ | |||
| 1 | local lfs = require("lfs") | ||
| 2 | local test_env = {} | ||
| 3 | |||
| 4 | local help_message = [[ | ||
| 5 | LuaRocks test-suite | ||
| 6 | |||
| 7 | INFORMATION | ||
| 8 | New test-suite for LuaRocks project, using unit testing framework Busted. | ||
| 9 | REQUIREMENTS | ||
| 10 | Be sure sshd is running on your system, or use '--exclude-tags=ssh', | ||
| 11 | to not execute tests which require sshd. | ||
| 12 | USAGE | ||
| 13 | busted [-Xhelper <arguments>] | ||
| 14 | ARGUMENTS | ||
| 15 | env=<type> Set type of environment to use ("minimal" or "full", | ||
| 16 | default: "minimal"). | ||
| 17 | noreset Don't reset environment after each test | ||
| 18 | clean Remove existing testing environment. | ||
| 19 | travis Add if running on TravisCI. | ||
| 20 | appveyor Add if running on Appveyor. | ||
| 21 | os=<type> Set OS ("linux", "osx", or "windows"). | ||
| 22 | lua_dir=<path> Path of Lua installation (default "/usr/local") | ||
| 23 | lua_interpreter=<lua> Name of the interpreter (default "lua") | ||
| 24 | ]] | ||
| 25 | |||
| 26 | local function help() | ||
| 27 | print(help_message) | ||
| 28 | os.exit(1) | ||
| 29 | end | ||
| 30 | |||
| 31 | local function title(str) | ||
| 32 | print() | ||
| 33 | print(("-"):rep(#str)) | ||
| 34 | print(str) | ||
| 35 | print(("-"):rep(#str)) | ||
| 36 | end | ||
| 37 | |||
| 38 | function test_env.exists(path) | ||
| 39 | return lfs.attributes(path, "mode") ~= nil | ||
| 40 | end | ||
| 41 | |||
| 42 | --- Quote argument for shell processing. Fixes paths on Windows. | ||
| 43 | -- Adds double quotes and escapes. Based on function in fs/win32.lua. | ||
| 44 | -- @param arg string: Unquoted argument. | ||
| 45 | -- @return string: Quoted argument. | ||
| 46 | local function Q(arg) | ||
| 47 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 48 | local drive_letter = "[%.a-zA-Z]?:?[\\/]" | ||
| 49 | -- Quote DIR for Windows | ||
| 50 | if arg:match("^"..drive_letter) then | ||
| 51 | arg = arg:gsub("/", "\\") | ||
| 52 | end | ||
| 53 | |||
| 54 | if arg == "\\" then | ||
| 55 | return '\\' -- CHDIR needs special handling for root dir | ||
| 56 | end | ||
| 57 | |||
| 58 | return '"' .. arg .. '"' | ||
| 59 | else | ||
| 60 | return "'" .. arg:gsub("'", "'\\''") .. "'" | ||
| 61 | end | ||
| 62 | end | ||
| 63 | |||
| 64 | function test_env.quiet(command) | ||
| 65 | if not test_env.VERBOSE then | ||
| 66 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 67 | return command .. " 1> NUL 2> NUL" | ||
| 68 | else | ||
| 69 | return command .. " 1> /dev/null 2> /dev/null" | ||
| 70 | end | ||
| 71 | else | ||
| 72 | return command | ||
| 73 | end | ||
| 74 | end | ||
| 75 | |||
| 76 | function test_env.copy(source, destination) | ||
| 77 | local r_source, err = io.open(source, "r") | ||
| 78 | local r_destination, err = io.open(destination, "w") | ||
| 79 | |||
| 80 | while true do | ||
| 81 | local block = r_source:read(8192) | ||
| 82 | if not block then break end | ||
| 83 | r_destination:write(block) | ||
| 84 | end | ||
| 85 | |||
| 86 | r_source:close() | ||
| 87 | r_destination:close() | ||
| 88 | end | ||
| 89 | |||
| 90 | --- Helper function for execute_bool and execute_output | ||
| 91 | -- @param command string: command to execute | ||
| 92 | -- @param print_command boolean: print command if 'true' | ||
| 93 | -- @param env_variables table: table of environment variables to export {FOO="bar", BAR="foo"} | ||
| 94 | -- @return final_command string: concatenated command to execution | ||
| 95 | function test_env.execute_helper(command, print_command, env_variables) | ||
| 96 | local final_command = "" | ||
| 97 | |||
| 98 | if print_command then | ||
| 99 | print("[EXECUTING]: " .. command) | ||
| 100 | end | ||
| 101 | |||
| 102 | if env_variables then | ||
| 103 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 104 | for k,v in pairs(env_variables) do | ||
| 105 | final_command = final_command .. "set " .. k .. "=" .. v .. "&" | ||
| 106 | end | ||
| 107 | final_command = final_command:sub(1, -2) .. "&" | ||
| 108 | else | ||
| 109 | final_command = "export " | ||
| 110 | for k,v in pairs(env_variables) do | ||
| 111 | final_command = final_command .. k .. "='" .. v .. "' " | ||
| 112 | end | ||
| 113 | -- remove last space and add ';' to separate exporting variables from command | ||
| 114 | final_command = final_command:sub(1, -2) .. "; " | ||
| 115 | end | ||
| 116 | end | ||
| 117 | |||
| 118 | final_command = final_command .. command .. " 2>&1" | ||
| 119 | |||
| 120 | return final_command | ||
| 121 | end | ||
| 122 | |||
| 123 | --- Execute command and returns true/false | ||
| 124 | -- @return true/false boolean: status of the command execution | ||
| 125 | local function execute_bool(command, print_command, env_variables) | ||
| 126 | command = test_env.execute_helper(command, print_command, env_variables) | ||
| 127 | |||
| 128 | local redirect_filename | ||
| 129 | local redirect = "" | ||
| 130 | if print_command ~= nil then | ||
| 131 | redirect_filename = test_env.testing_paths.luarocks_tmp.."/output.txt" | ||
| 132 | redirect = " > "..redirect_filename | ||
| 133 | os.remove(redirect_filename) | ||
| 134 | end | ||
| 135 | local ok = os.execute(command .. redirect) | ||
| 136 | ok = (ok == true or ok == 0) -- normalize Lua 5.1 output to boolean | ||
| 137 | if redirect ~= "" then | ||
| 138 | if not ok then | ||
| 139 | local fd = io.open(redirect_filename, "r") | ||
| 140 | if fd then | ||
| 141 | print(fd:read("*a")) | ||
| 142 | fd:close() | ||
| 143 | end | ||
| 144 | end | ||
| 145 | os.remove(redirect_filename) | ||
| 146 | end | ||
| 147 | return ok | ||
| 148 | end | ||
| 149 | |||
| 150 | --- Execute command and returns output of command | ||
| 151 | -- @return output string: output the command execution | ||
| 152 | local function execute_output(command, print_command, env_variables) | ||
| 153 | command = test_env.execute_helper(command, print_command, env_variables) | ||
| 154 | |||
| 155 | local file = assert(io.popen(command)) | ||
| 156 | local output = file:read('*all') | ||
| 157 | file:close() | ||
| 158 | return output:gsub("\n","") -- output adding new line, need to be removed | ||
| 159 | end | ||
| 160 | |||
| 161 | --- Set test_env.LUA_V or test_env.LUAJIT_V based | ||
| 162 | -- on version of Lua used to run this script. | ||
| 163 | function test_env.set_lua_version() | ||
| 164 | if _G.jit then | ||
| 165 | test_env.LUAJIT_V = _G.jit.version:match("(2%.%d)%.%d") | ||
| 166 | test_env.lua_version = "5.1" | ||
| 167 | else | ||
| 168 | test_env.LUA_V = _VERSION:match("5%.%d") | ||
| 169 | test_env.lua_version = test_env.LUA_V | ||
| 170 | end | ||
| 171 | end | ||
| 172 | |||
| 173 | --- Set all arguments from input into global variables | ||
| 174 | function test_env.set_args() | ||
| 175 | -- if at least Lua/LuaJIT version argument was found on input start to parse other arguments to env. variables | ||
| 176 | test_env.TYPE_TEST_ENV = "minimal" | ||
| 177 | test_env.OPENSSL_DIRS = "" | ||
| 178 | test_env.RESET_ENV = true | ||
| 179 | |||
| 180 | for _, argument in ipairs(arg) do | ||
| 181 | if argument:find("^env=") then | ||
| 182 | test_env.TYPE_TEST_ENV = argument:match("^env=(.*)$") | ||
| 183 | elseif argument == "noreset" then | ||
| 184 | test_env.RESET_ENV = false | ||
| 185 | elseif argument == "clean" then | ||
| 186 | test_env.TEST_ENV_CLEAN = true | ||
| 187 | elseif argument == "verbose" then | ||
| 188 | test_env.VERBOSE = true | ||
| 189 | elseif argument == "travis" then | ||
| 190 | test_env.TRAVIS = true | ||
| 191 | elseif argument == "appveyor" then | ||
| 192 | test_env.APPVEYOR = true | ||
| 193 | test_env.OPENSSL_DIRS = "OPENSSL_LIBDIR=C:\\OpenSSL-Win32\\lib OPENSSL_INCDIR=C:\\OpenSSL-Win32\\include" | ||
| 194 | elseif argument:find("^os=") then | ||
| 195 | test_env.TEST_TARGET_OS = argument:match("^os=(.*)$") | ||
| 196 | elseif argument == "mingw" then | ||
| 197 | test_env.MINGW = true | ||
| 198 | elseif argument == "vs" then | ||
| 199 | test_env.MINGW = false | ||
| 200 | elseif argument:find("^lua_dir=") then | ||
| 201 | test_env.LUA_DIR = argument:match("^lua_dir=(.*)$") | ||
| 202 | elseif argument:find("^lua_interpreter=") then | ||
| 203 | test_env.LUA_INTERPRETER = argument:match("^lua_interpreter=(.*)$") | ||
| 204 | else | ||
| 205 | help() | ||
| 206 | end | ||
| 207 | end | ||
| 208 | |||
| 209 | if not test_env.TEST_TARGET_OS then | ||
| 210 | title("OS CHECK") | ||
| 211 | |||
| 212 | if execute_bool("sw_vers") then | ||
| 213 | test_env.TEST_TARGET_OS = "osx" | ||
| 214 | if test_env.TRAVIS then | ||
| 215 | test_env.OPENSSL_DIRS = "OPENSSL_LIBDIR=/usr/local/opt/openssl/lib OPENSSL_INCDIR=/usr/local/opt/openssl/include" | ||
| 216 | end | ||
| 217 | elseif execute_output("uname -s") == "Linux" then | ||
| 218 | test_env.TEST_TARGET_OS = "linux" | ||
| 219 | else | ||
| 220 | test_env.TEST_TARGET_OS = "windows" | ||
| 221 | end | ||
| 222 | end | ||
| 223 | return true | ||
| 224 | end | ||
| 225 | |||
| 226 | function test_env.copy_dir(source_path, target_path) | ||
| 227 | local testing_paths = test_env.testing_paths | ||
| 228 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 229 | execute_bool(testing_paths.win_tools .. "/cp -R ".. source_path .. "/. " .. target_path) | ||
| 230 | else | ||
| 231 | execute_bool("cp -a ".. source_path .. "/. " .. target_path) | ||
| 232 | end | ||
| 233 | end | ||
| 234 | |||
| 235 | --- Remove directory recursively | ||
| 236 | -- @param path string: directory path to delete | ||
| 237 | function test_env.remove_dir(path) | ||
| 238 | if test_env.exists(path) then | ||
| 239 | for file in lfs.dir(path) do | ||
| 240 | if file ~= "." and file ~= ".." then | ||
| 241 | local full_path = path..'/'..file | ||
| 242 | |||
| 243 | if lfs.attributes(full_path, "mode") == "directory" then | ||
| 244 | test_env.remove_dir(full_path) | ||
| 245 | else | ||
| 246 | os.remove(full_path) | ||
| 247 | end | ||
| 248 | end | ||
| 249 | end | ||
| 250 | end | ||
| 251 | lfs.rmdir(path) | ||
| 252 | end | ||
| 253 | |||
| 254 | --- Remove subdirectories of a directory that match a pattern | ||
| 255 | -- @param path string: path to directory | ||
| 256 | -- @param pattern string: pattern matching basenames of subdirectories to be removed | ||
| 257 | function test_env.remove_subdirs(path, pattern) | ||
| 258 | if test_env.exists(path) then | ||
| 259 | for file in lfs.dir(path) do | ||
| 260 | if file ~= "." and file ~= ".." then | ||
| 261 | local full_path = path..'/'..file | ||
| 262 | |||
| 263 | if lfs.attributes(full_path, "mode") == "directory" and file:find(pattern) then | ||
| 264 | test_env.remove_dir(full_path) | ||
| 265 | end | ||
| 266 | end | ||
| 267 | end | ||
| 268 | end | ||
| 269 | end | ||
| 270 | |||
| 271 | --- Remove files matching a pattern | ||
| 272 | -- @param path string: directory where to delete files | ||
| 273 | -- @param pattern string: pattern matching basenames of files to be deleted | ||
| 274 | -- @return result_check boolean: true if one or more files deleted | ||
| 275 | function test_env.remove_files(path, pattern) | ||
| 276 | local result_check = false | ||
| 277 | if test_env.exists(path) then | ||
| 278 | for file in lfs.dir(path) do | ||
| 279 | if file ~= "." and file ~= ".." then | ||
| 280 | if file:find(pattern) then | ||
| 281 | if os.remove(path .. "/" .. file) then | ||
| 282 | result_check = true | ||
| 283 | end | ||
| 284 | end | ||
| 285 | end | ||
| 286 | end | ||
| 287 | end | ||
| 288 | return result_check | ||
| 289 | end | ||
| 290 | |||
| 291 | |||
| 292 | --- Function for downloading rocks and rockspecs | ||
| 293 | -- @param urls table: array of full names of rocks/rockspecs to download | ||
| 294 | -- @param save_path string: path to directory, where to download rocks/rockspecs | ||
| 295 | -- @return make_manifest boolean: true if new rocks downloaded | ||
| 296 | local function download_rocks(urls, save_path) | ||
| 297 | local luarocks_repo = "https://luarocks.org" | ||
| 298 | local make_manifest = false | ||
| 299 | |||
| 300 | for _, url in ipairs(urls) do | ||
| 301 | -- check if already downloaded | ||
| 302 | if not test_env.exists(save_path .. url) then | ||
| 303 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 304 | execute_bool(test_env.testing_paths.win_tools .. "/wget -cP " .. save_path .. " " .. luarocks_repo .. url .. " --no-check-certificate") | ||
| 305 | else | ||
| 306 | execute_bool("wget -cP " .. save_path .. " " .. luarocks_repo .. url) | ||
| 307 | end | ||
| 308 | make_manifest = true | ||
| 309 | end | ||
| 310 | end | ||
| 311 | return make_manifest | ||
| 312 | end | ||
| 313 | |||
| 314 | --- Create a file containing a string. | ||
| 315 | -- @param path string: path to file. | ||
| 316 | -- @param str string: content of the file. | ||
| 317 | local function write_file(path, str) | ||
| 318 | local file = assert(io.open(path, "w")) | ||
| 319 | file:write(str) | ||
| 320 | file:close() | ||
| 321 | end | ||
| 322 | |||
| 323 | --- Create md5sum of directory structure recursively, based on filename and size | ||
| 324 | -- @param path string: path to directory for generate md5sum | ||
| 325 | -- @return md5sum string: md5sum of directory | ||
| 326 | local function hash_environment(path) | ||
| 327 | if test_env.TEST_TARGET_OS == "linux" then | ||
| 328 | return execute_output("find " .. path .. " -printf \"%s %p\n\" | md5sum") | ||
| 329 | elseif test_env.TEST_TARGET_OS == "osx" then | ||
| 330 | return execute_output("find " .. path .. " -type f -exec stat -f \"%z %N\" {} \\; | md5") | ||
| 331 | elseif test_env.TEST_TARGET_OS == "windows" then | ||
| 332 | return execute_output("\"" .. Q(test_env.testing_paths.win_tools .. "/find") .. " " .. Q(path) | ||
| 333 | .. " -printf \"%s %p\"\" > temp_sum.txt && certUtil -hashfile temp_sum.txt && del temp_sum.txt") | ||
| 334 | end | ||
| 335 | end | ||
| 336 | |||
| 337 | --- Create environment variables needed for tests | ||
| 338 | -- @param testing_paths table: table with paths to testing directory | ||
| 339 | -- @return env_variables table: table with created environment variables | ||
| 340 | local function create_env(testing_paths) | ||
| 341 | local luaversion_short = _VERSION:gsub("Lua ", "") | ||
| 342 | |||
| 343 | if test_env.LUAJIT_V then | ||
| 344 | luaversion_short="5.1" | ||
| 345 | end | ||
| 346 | |||
| 347 | local env_variables = {} | ||
| 348 | env_variables.LUA_VERSION = luaversion_short | ||
| 349 | env_variables.LUAROCKS_CONFIG = testing_paths.testrun_dir .. "/testing_config.lua" | ||
| 350 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 351 | env_variables.LUA_PATH = testing_paths.testing_lrprefix .. "\\lua\\?.lua;" | ||
| 352 | else | ||
| 353 | env_variables.LUA_PATH = testing_paths.testing_lrprefix .. "/share/lua/" .. luaversion_short .. "/?.lua;" | ||
| 354 | end | ||
| 355 | env_variables.LUA_PATH = env_variables.LUA_PATH .. testing_paths.testing_tree .. "/share/lua/" .. luaversion_short .. "/?.lua;" | ||
| 356 | env_variables.LUA_PATH = env_variables.LUA_PATH .. testing_paths.testing_tree .. "/share/lua/".. luaversion_short .. "/?/init.lua;" | ||
| 357 | env_variables.LUA_PATH = env_variables.LUA_PATH .. testing_paths.testing_sys_tree .. "/share/lua/" .. luaversion_short .. "/?.lua;" | ||
| 358 | env_variables.LUA_PATH = env_variables.LUA_PATH .. testing_paths.testing_sys_tree .. "/share/lua/".. luaversion_short .. "/?/init.lua;" | ||
| 359 | env_variables.LUA_PATH = env_variables.LUA_PATH .. testing_paths.src_dir .. "/?.lua;" | ||
| 360 | env_variables.LUA_CPATH = testing_paths.testing_tree .. "/lib/lua/" .. luaversion_short .. "/?.so;" | ||
| 361 | .. testing_paths.testing_sys_tree .. "/lib/lua/" .. luaversion_short .. "/?.so;" | ||
| 362 | env_variables.PATH = os.getenv("PATH") .. ";" .. testing_paths.testing_tree .. "/bin;" .. testing_paths.testing_sys_tree .. "/bin;" | ||
| 363 | |||
| 364 | return env_variables | ||
| 365 | end | ||
| 366 | |||
| 367 | --- Create md5sums of origin system and system-copy testing directory | ||
| 368 | -- @param testing_paths table: table with paths to testing directory | ||
| 369 | -- @return md5sums table: table of md5sums of system and system-copy testing directory | ||
| 370 | local function create_md5sums(testing_paths) | ||
| 371 | local md5sums = {} | ||
| 372 | md5sums.testing_tree_copy_md5 = hash_environment(testing_paths.testing_tree_copy) | ||
| 373 | md5sums.testing_sys_tree_copy_md5 = hash_environment(testing_paths.testing_sys_tree_copy) | ||
| 374 | |||
| 375 | return md5sums | ||
| 376 | end | ||
| 377 | |||
| 378 | local function make_run_function(cmd_name, exec_function, with_coverage, do_print) | ||
| 379 | local cmd_prefix = Q(test_env.testing_paths.lua) .. " " | ||
| 380 | |||
| 381 | if with_coverage then | ||
| 382 | cmd_prefix = cmd_prefix .. "-e \"require('luacov.runner')('" .. test_env.testing_paths.testrun_dir .. "/luacov.config')\" " | ||
| 383 | end | ||
| 384 | |||
| 385 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 386 | cmd_prefix = cmd_prefix .. Q(test_env.testing_paths.testing_lrprefix .. "/" .. cmd_name .. ".lua") .. " " | ||
| 387 | else | ||
| 388 | cmd_prefix = cmd_prefix .. test_env.testing_paths.src_dir .. "/bin/" .. cmd_name .. " " | ||
| 389 | end | ||
| 390 | |||
| 391 | return function(cmd, new_vars) | ||
| 392 | local temp_vars = {} | ||
| 393 | for k, v in pairs(test_env.env_variables) do | ||
| 394 | temp_vars[k] = v | ||
| 395 | end | ||
| 396 | if new_vars then | ||
| 397 | for k, v in pairs(new_vars) do | ||
| 398 | temp_vars[k] = v | ||
| 399 | end | ||
| 400 | end | ||
| 401 | return exec_function(cmd_prefix .. cmd, do_print, temp_vars) | ||
| 402 | end | ||
| 403 | end | ||
| 404 | |||
| 405 | local function make_run_functions() | ||
| 406 | return { | ||
| 407 | luarocks = make_run_function("luarocks", execute_output, true, true), | ||
| 408 | luarocks_bool = make_run_function("luarocks", execute_bool, true, true), | ||
| 409 | luarocks_noprint = make_run_function("luarocks", execute_bool, true, false), | ||
| 410 | luarocks_nocov = make_run_function("luarocks", execute_bool, false, true), | ||
| 411 | luarocks_noprint_nocov = make_run_function("luarocks", execute_bool, false, false), | ||
| 412 | luarocks_admin = make_run_function("luarocks-admin", execute_output, true, true), | ||
| 413 | luarocks_admin_bool = make_run_function("luarocks-admin", execute_bool, true, true), | ||
| 414 | luarocks_admin_nocov = make_run_function("luarocks-admin", execute_bool, false, false) | ||
| 415 | } | ||
| 416 | end | ||
| 417 | |||
| 418 | --- Rebuild environment. | ||
| 419 | -- Remove old installed rocks and install new ones, | ||
| 420 | -- updating manifests and tree copies. | ||
| 421 | local function build_environment(rocks, env_variables) | ||
| 422 | title("BUILDING ENVIRONMENT") | ||
| 423 | local testing_paths = test_env.testing_paths | ||
| 424 | test_env.remove_dir(testing_paths.testing_tree) | ||
| 425 | test_env.remove_dir(testing_paths.testing_sys_tree) | ||
| 426 | test_env.remove_dir(testing_paths.testing_tree_copy) | ||
| 427 | test_env.remove_dir(testing_paths.testing_sys_tree_copy) | ||
| 428 | |||
| 429 | lfs.mkdir(testing_paths.testing_tree) | ||
| 430 | lfs.mkdir(testing_paths.testing_sys_tree) | ||
| 431 | |||
| 432 | test_env.run.luarocks_admin_nocov("make_manifest " .. Q(testing_paths.testing_server)) | ||
| 433 | test_env.run.luarocks_admin_nocov("make_manifest " .. Q(testing_paths.testing_cache)) | ||
| 434 | |||
| 435 | for _, rock in ipairs(rocks) do | ||
| 436 | if not test_env.run.luarocks_nocov("install --only-server=" .. testing_paths.testing_cache .. " --tree=" .. testing_paths.testing_sys_tree .. " " .. Q(rock), env_variables) then | ||
| 437 | test_env.run.luarocks_nocov("build --tree=" .. Q(testing_paths.testing_sys_tree) .. " " .. Q(rock) .. "", env_variables) | ||
| 438 | test_env.run.luarocks_nocov("pack --tree=" .. Q(testing_paths.testing_sys_tree) .. " " .. Q(rock), env_variables) | ||
| 439 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 440 | execute_bool(testing_paths.win_tools .. "/mv " .. rock .. "-*.rock " .. testing_paths.testing_cache) | ||
| 441 | else | ||
| 442 | execute_bool("mv " .. rock .. "-*.rock " .. testing_paths.testing_cache) | ||
| 443 | end | ||
| 444 | end | ||
| 445 | end | ||
| 446 | |||
| 447 | test_env.copy_dir(testing_paths.testing_tree, testing_paths.testing_tree_copy) | ||
| 448 | test_env.copy_dir(testing_paths.testing_sys_tree, testing_paths.testing_sys_tree_copy) | ||
| 449 | end | ||
| 450 | |||
| 451 | --- Reset testing environment | ||
| 452 | local function reset_environment(testing_paths, md5sums) | ||
| 453 | local testing_tree_md5 = hash_environment(testing_paths.testing_tree) | ||
| 454 | local testing_sys_tree_md5 = hash_environment(testing_paths.testing_sys_tree) | ||
| 455 | |||
| 456 | if testing_tree_md5 ~= md5sums.testing_tree_copy_md5 then | ||
| 457 | test_env.remove_dir(testing_paths.testing_tree) | ||
| 458 | test_env.copy_dir(testing_paths.testing_tree_copy, testing_paths.testing_tree) | ||
| 459 | end | ||
| 460 | |||
| 461 | if testing_sys_tree_md5 ~= md5sums.testing_sys_tree_copy_md5 then | ||
| 462 | test_env.remove_dir(testing_paths.testing_sys_tree) | ||
| 463 | test_env.copy_dir(testing_paths.testing_sys_tree_copy, testing_paths.testing_sys_tree) | ||
| 464 | end | ||
| 465 | end | ||
| 466 | |||
| 467 | local function create_paths(luaversion_full) | ||
| 468 | |||
| 469 | local testing_paths = {} | ||
| 470 | testing_paths.luadir = (test_env.LUA_DIR or "/usr/local") | ||
| 471 | testing_paths.lua = testing_paths.luadir .. "/bin/" .. (test_env.LUA_INTERPRETER or "lua") | ||
| 472 | |||
| 473 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 474 | testing_paths.luarocks_tmp = os.getenv("TEMP") | ||
| 475 | else | ||
| 476 | testing_paths.luarocks_tmp = "/tmp/luarocks_testing" | ||
| 477 | end | ||
| 478 | |||
| 479 | testing_paths.luarocks_dir = lfs.currentdir() | ||
| 480 | |||
| 481 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 482 | testing_paths.luarocks_dir = testing_paths.luarocks_dir:gsub("\\","/") | ||
| 483 | end | ||
| 484 | |||
| 485 | testing_paths.fixtures_dir = testing_paths.luarocks_dir .. "/spec/fixtures" | ||
| 486 | testing_paths.util_dir = testing_paths.luarocks_dir .. "/spec/util" | ||
| 487 | testing_paths.testrun_dir = testing_paths.luarocks_dir .. "/testrun" | ||
| 488 | testing_paths.src_dir = testing_paths.luarocks_dir .. "/src" | ||
| 489 | testing_paths.testing_lrprefix = testing_paths.testrun_dir .. "/testing_lrprefix-" .. luaversion_full | ||
| 490 | testing_paths.testing_tree = testing_paths.testrun_dir .. "/testing-" .. luaversion_full | ||
| 491 | testing_paths.testing_tree_copy = testing_paths.testrun_dir .. "/testing_copy-" .. luaversion_full | ||
| 492 | testing_paths.testing_sys_tree = testing_paths.testrun_dir .. "/testing_sys-" .. luaversion_full | ||
| 493 | testing_paths.testing_sys_tree_copy = testing_paths.testrun_dir .. "/testing_sys_copy-" .. luaversion_full | ||
| 494 | testing_paths.testing_cache = testing_paths.testrun_dir .. "/testing_cache-" .. luaversion_full | ||
| 495 | testing_paths.testing_server = testing_paths.testrun_dir .. "/testing_server-" .. luaversion_full | ||
| 496 | |||
| 497 | testing_paths.testing_rocks = testing_paths.testing_tree .. "/lib/luarocks/rocks-" .. test_env.lua_version | ||
| 498 | testing_paths.testing_sys_rocks = testing_paths.testing_sys_tree .. "/lib/luarocks/rocks-" .. test_env.lua_version | ||
| 499 | |||
| 500 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 501 | testing_paths.win_tools = testing_paths.testing_lrprefix .. "/tools" | ||
| 502 | end | ||
| 503 | |||
| 504 | return testing_paths | ||
| 505 | end | ||
| 506 | |||
| 507 | --- Helper function to unload luarocks modules from global table package.loaded | ||
| 508 | -- Needed to load our local (testing) version of LuaRocks | ||
| 509 | function test_env.unload_luarocks() | ||
| 510 | for modname, _ in pairs(package.loaded) do | ||
| 511 | if modname:match("^luarocks%.") then | ||
| 512 | package.loaded[modname] = nil | ||
| 513 | end | ||
| 514 | end | ||
| 515 | end | ||
| 516 | |||
| 517 | --- Function for initially setup of environment, variables, md5sums for spec files | ||
| 518 | function test_env.setup_specs(extra_rocks) | ||
| 519 | -- if global variable about successful creation of testing environment doesn't exist, build environment | ||
| 520 | if not test_env.setup_done then | ||
| 521 | if test_env.TRAVIS then | ||
| 522 | if not test_env.exists(os.getenv("HOME") .. "/.ssh/id_rsa.pub") then | ||
| 523 | execute_bool("ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa") | ||
| 524 | execute_bool("cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys") | ||
| 525 | execute_bool("chmod og-wx ~/.ssh/authorized_keys") | ||
| 526 | execute_bool("ssh-keyscan localhost >> ~/.ssh/known_hosts") | ||
| 527 | end | ||
| 528 | end | ||
| 529 | |||
| 530 | test_env.main() | ||
| 531 | package.path = test_env.env_variables.LUA_PATH | ||
| 532 | |||
| 533 | test_env.platform = execute_output(test_env.testing_paths.lua .. " -e \"print(require('luarocks.core.cfg').arch)\"", false, test_env.env_variables) | ||
| 534 | test_env.lib_extension = execute_output(test_env.testing_paths.lua .. " -e \"print(require('luarocks.core.cfg').lib_extension)\"", false, test_env.env_variables) | ||
| 535 | test_env.wrapper_extension = test_env.TEST_TARGET_OS == "windows" and ".bat" or "" | ||
| 536 | test_env.md5sums = create_md5sums(test_env.testing_paths) | ||
| 537 | test_env.setup_done = true | ||
| 538 | title("RUNNING TESTS") | ||
| 539 | end | ||
| 540 | |||
| 541 | if extra_rocks then | ||
| 542 | local make_manifest = download_rocks(extra_rocks, test_env.testing_paths.testing_server) | ||
| 543 | if make_manifest then | ||
| 544 | test_env.run.luarocks_admin_nocov("make_manifest " .. test_env.testing_paths.testing_server) | ||
| 545 | end | ||
| 546 | end | ||
| 547 | |||
| 548 | if test_env.RESET_ENV then | ||
| 549 | reset_environment(test_env.testing_paths, test_env.md5sums, test_env.env_variables) | ||
| 550 | end | ||
| 551 | end | ||
| 552 | |||
| 553 | --- Test if required rock is installed and if not, install it. | ||
| 554 | -- Return `true` if the rock is already installed or has been installed successfully, | ||
| 555 | -- `false` if installation failed. | ||
| 556 | function test_env.need_rock(rock) | ||
| 557 | print("Check if " .. rock .. " is installed") | ||
| 558 | if test_env.run.luarocks_noprint_nocov(test_env.quiet("show " .. rock)) then | ||
| 559 | return true | ||
| 560 | else | ||
| 561 | return test_env.run.luarocks_noprint_nocov(test_env.quiet("install " .. rock)) | ||
| 562 | end | ||
| 563 | end | ||
| 564 | |||
| 565 | --- For each key-value pair in replacements table | ||
| 566 | -- replace %{key} in given string with value. | ||
| 567 | local function substitute(str, replacements) | ||
| 568 | return (str:gsub("%%%b{}", function(marker) | ||
| 569 | return replacements[marker:sub(3, -2)] | ||
| 570 | end)) | ||
| 571 | end | ||
| 572 | |||
| 573 | |||
| 574 | --- Create configs for luacov and several versions of Luarocks | ||
| 575 | -- configs needed for some tests. | ||
| 576 | local function create_configs() | ||
| 577 | -- testing_config.lua and testing_config_show_downloads.lua | ||
| 578 | local config_content = substitute([[ | ||
| 579 | rocks_trees = { | ||
| 580 | "%{testing_tree}", | ||
| 581 | { name = "system", root = "%{testing_sys_tree}" }, | ||
| 582 | } | ||
| 583 | rocks_servers = { | ||
| 584 | "%{testing_server}" | ||
| 585 | } | ||
| 586 | local_cache = "%{testing_cache}" | ||
| 587 | upload_server = "testing" | ||
| 588 | upload_user = "%{user}" | ||
| 589 | upload_servers = { | ||
| 590 | testing = { | ||
| 591 | rsync = "localhost/tmp/luarocks_testing", | ||
| 592 | }, | ||
| 593 | } | ||
| 594 | external_deps_dirs = { | ||
| 595 | "/usr/local", | ||
| 596 | "/usr", | ||
| 597 | -- These are used for a test that fails, so it | ||
| 598 | -- can point to invalid paths: | ||
| 599 | { | ||
| 600 | prefix = "/opt", | ||
| 601 | bin = "bin", | ||
| 602 | include = "include", | ||
| 603 | lib = { "lib", "lib64" }, | ||
| 604 | } | ||
| 605 | } | ||
| 606 | ]], { | ||
| 607 | user = os.getenv("USER"), | ||
| 608 | testing_sys_tree = test_env.testing_paths.testing_sys_tree, | ||
| 609 | testing_tree = test_env.testing_paths.testing_tree, | ||
| 610 | testing_server = test_env.testing_paths.testing_server, | ||
| 611 | testing_cache = test_env.testing_paths.testing_cache | ||
| 612 | }) | ||
| 613 | |||
| 614 | write_file(test_env.testing_paths.testrun_dir .. "/testing_config.lua", config_content .. " \nweb_browser = \"true\"") | ||
| 615 | write_file(test_env.testing_paths.testrun_dir .. "/testing_config_show_downloads.lua", config_content | ||
| 616 | .. "show_downloads = true \n rocks_servers={\"http://luarocks.org/repositories/rocks\"}") | ||
| 617 | |||
| 618 | -- testing_config_sftp.lua | ||
| 619 | config_content = substitute([[ | ||
| 620 | rocks_trees = { | ||
| 621 | "%{testing_tree}", | ||
| 622 | "%{testing_sys_tree}", | ||
| 623 | } | ||
| 624 | local_cache = "%{testing_cache}" | ||
| 625 | upload_server = "testing" | ||
| 626 | upload_user = "%{user}" | ||
| 627 | upload_servers = { | ||
| 628 | testing = { | ||
| 629 | sftp = "localhost/tmp/luarocks_testing", | ||
| 630 | }, | ||
| 631 | } | ||
| 632 | ]], { | ||
| 633 | user = os.getenv("USER"), | ||
| 634 | testing_sys_tree = test_env.testing_paths.testing_sys_tree, | ||
| 635 | testing_tree = test_env.testing_paths.testing_tree, | ||
| 636 | testing_cache = test_env.testing_paths.testing_cache | ||
| 637 | }) | ||
| 638 | |||
| 639 | write_file(test_env.testing_paths.testrun_dir .. "/testing_config_sftp.lua", config_content) | ||
| 640 | |||
| 641 | -- luacov.config | ||
| 642 | config_content = substitute([[ | ||
| 643 | return { | ||
| 644 | statsfile = "%{testrun_dir}/luacov.stats.out", | ||
| 645 | reportfile = "%{testrun_dir}/luacov.report.out", | ||
| 646 | modules = { | ||
| 647 | ["luarocks"] = "src/bin/luarocks", | ||
| 648 | ["luarocks-admin"] = "src/bin/luarocks-admin", | ||
| 649 | ["luarocks.*"] = "src", | ||
| 650 | ["luarocks.*.*"] = "src", | ||
| 651 | ["luarocks.*.*.*"] = "src" | ||
| 652 | } | ||
| 653 | } | ||
| 654 | ]], { | ||
| 655 | testrun_dir = test_env.testing_paths.testrun_dir | ||
| 656 | }) | ||
| 657 | |||
| 658 | write_file(test_env.testing_paths.testrun_dir .. "/luacov.config", config_content) | ||
| 659 | |||
| 660 | config_content = [[ | ||
| 661 | -- Config file of mock LuaRocks.org site for tests | ||
| 662 | upload = { | ||
| 663 | server = "http://localhost:8080", | ||
| 664 | tool_version = "1.0.0", | ||
| 665 | api_version = "1", | ||
| 666 | } | ||
| 667 | ]] | ||
| 668 | write_file(test_env.testing_paths.testrun_dir .. "/luarocks_site.lua", config_content) | ||
| 669 | end | ||
| 670 | |||
| 671 | --- Remove testing directories. | ||
| 672 | local function clean() | ||
| 673 | print("Cleaning testing directory...") | ||
| 674 | test_env.remove_dir(test_env.testing_paths.luarocks_tmp) | ||
| 675 | test_env.remove_subdirs(test_env.testing_paths.testrun_dir, "testing[_%-]") | ||
| 676 | test_env.remove_files(test_env.testing_paths.testrun_dir, "testing_") | ||
| 677 | test_env.remove_files(test_env.testing_paths.testrun_dir, "luacov") | ||
| 678 | test_env.remove_files(test_env.testing_paths.testrun_dir, "upload_config") | ||
| 679 | test_env.remove_files(test_env.testing_paths.testrun_dir, "luarocks_site") | ||
| 680 | print("Cleaning done!") | ||
| 681 | end | ||
| 682 | |||
| 683 | --- Install luarocks into testing prefix. | ||
| 684 | local function install_luarocks(install_env_vars) | ||
| 685 | local testing_paths = test_env.testing_paths | ||
| 686 | title("Installing LuaRocks") | ||
| 687 | if test_env.TEST_TARGET_OS == "windows" then | ||
| 688 | local compiler_flag = test_env.MINGW and "/MW" or "" | ||
| 689 | assert(execute_bool("install.bat /LUA " .. testing_paths.luadir .. " " .. compiler_flag .. " /P " .. testing_paths.testing_lrprefix .. " /NOREG /NOADMIN /F /Q /CONFIG " .. testing_paths.testing_lrprefix .. "/etc/luarocks", false, install_env_vars)) | ||
| 690 | assert(execute_bool(testing_paths.win_tools .. "/cp " .. testing_paths.testing_lrprefix .. "/lua/luarocks/core/site_config* " .. testing_paths.src_dir .. "/luarocks/core")) | ||
| 691 | else | ||
| 692 | local configure_cmd = "./configure --with-lua=" .. testing_paths.luadir .. " --prefix=" .. testing_paths.testing_lrprefix | ||
| 693 | assert(execute_bool(configure_cmd, false, install_env_vars)) | ||
| 694 | assert(execute_bool("make clean", false, install_env_vars)) | ||
| 695 | assert(execute_bool("make src/luarocks/core/site_config_"..test_env.lua_version:gsub("%.", "_")..".lua", false, install_env_vars)) | ||
| 696 | assert(execute_bool("make dev", false, install_env_vars)) | ||
| 697 | end | ||
| 698 | print("LuaRocks installed correctly!") | ||
| 699 | end | ||
| 700 | |||
| 701 | function test_env.mock_server_extra_rocks(more) | ||
| 702 | local rocks = { | ||
| 703 | -- rocks needed for mock-server | ||
| 704 | "/copas-2.0.1-1.src.rock", | ||
| 705 | "/coxpcall-1.16.0-1.src.rock", | ||
| 706 | "/dkjson-2.5-2.src.rock", | ||
| 707 | "/luafilesystem-1.6.3-1.src.rock", | ||
| 708 | "/luasec-0.6-1.rockspec", | ||
| 709 | "/luasocket-3.0rc1-2.src.rock", | ||
| 710 | "/luasocket-3.0rc1-2.rockspec", | ||
| 711 | "/restserver-0.1-1.src.rock", | ||
| 712 | "/restserver-xavante-0.2-1.src.rock", | ||
| 713 | "/rings-1.3.0-1.src.rock", | ||
| 714 | "/wsapi-1.6.1-1.src.rock", | ||
| 715 | "/wsapi-xavante-1.6.1-1.src.rock", | ||
| 716 | "/xavante-2.4.0-1.src.rock" | ||
| 717 | } | ||
| 718 | if more then | ||
| 719 | for _, rock in ipairs(more) do | ||
| 720 | table.insert(rocks, rock) | ||
| 721 | end | ||
| 722 | end | ||
| 723 | return rocks | ||
| 724 | end | ||
| 725 | |||
| 726 | function test_env.mock_server_init() | ||
| 727 | local assert = require("luassert") | ||
| 728 | local testing_paths = test_env.testing_paths | ||
| 729 | assert.is_true(test_env.need_rock("restserver-xavante")) | ||
| 730 | local final_command = test_env.execute_helper(testing_paths.lua .. " " .. testing_paths.util_dir .. "/mock-server.lua &", true, test_env.env_variables) | ||
| 731 | os.execute(final_command) | ||
| 732 | end | ||
| 733 | |||
| 734 | function test_env.mock_server_done() | ||
| 735 | os.execute("curl localhost:8080/shutdown") | ||
| 736 | end | ||
| 737 | |||
| 738 | --- | ||
| 739 | -- Main function to create config files and testing environment | ||
| 740 | function test_env.main() | ||
| 741 | local testing_paths = test_env.testing_paths | ||
| 742 | |||
| 743 | if test_env.TEST_ENV_CLEAN then | ||
| 744 | clean() | ||
| 745 | end | ||
| 746 | |||
| 747 | lfs.mkdir(testing_paths.testrun_dir) | ||
| 748 | lfs.mkdir(testing_paths.testing_cache) | ||
| 749 | lfs.mkdir(testing_paths.luarocks_tmp) | ||
| 750 | |||
| 751 | create_configs() | ||
| 752 | |||
| 753 | local install_env_vars = { | ||
| 754 | LUAROCKS_CONFIG = test_env.testing_paths.testrun_dir .. "/testing_config.lua" | ||
| 755 | } | ||
| 756 | |||
| 757 | install_luarocks(install_env_vars) | ||
| 758 | |||
| 759 | -- Preparation of rocks for building environment | ||
| 760 | local rocks = {} -- names of rocks, required for building environment | ||
| 761 | local urls = {} -- names of rock and rockspec files to be downloaded | ||
| 762 | table.insert(urls, "/luacov-0.11.0-1.rockspec") | ||
| 763 | table.insert(urls, "/luacov-0.11.0-1.src.rock") | ||
| 764 | |||
| 765 | if test_env.TYPE_TEST_ENV == "full" then | ||
| 766 | table.insert(urls, "/luafilesystem-1.6.3-1.src.rock") | ||
| 767 | table.insert(urls, "/luasocket-3.0rc1-1.src.rock") | ||
| 768 | table.insert(urls, "/luasocket-3.0rc1-1.rockspec") | ||
| 769 | table.insert(urls, "/luaposix-33.2.1-1.src.rock") | ||
| 770 | table.insert(urls, "/md5-1.2-1.src.rock") | ||
| 771 | table.insert(urls, "/lzlib-0.4.1.53-1.src.rock") | ||
| 772 | rocks = {"luafilesystem", "luasocket", "luaposix", "md5", "lzlib"} | ||
| 773 | |||
| 774 | if test_env.LUA_V ~= "5.1" then | ||
| 775 | table.insert(urls, "/luabitop-1.0.2-1.rockspec") | ||
| 776 | table.insert(urls, "/luabitop-1.0.2-1.src.rock") | ||
| 777 | table.insert(rocks, "luabitop") | ||
| 778 | end | ||
| 779 | end | ||
| 780 | |||
| 781 | table.insert(rocks, "luacov") -- luacov is needed for minimal or full environment | ||
| 782 | |||
| 783 | -- Download rocks needed for LuaRocks testing environment | ||
| 784 | lfs.mkdir(testing_paths.testing_server) | ||
| 785 | download_rocks(urls, testing_paths.testing_server) | ||
| 786 | build_environment(rocks, install_env_vars) | ||
| 787 | end | ||
| 788 | |||
| 789 | test_env.set_lua_version() | ||
| 790 | test_env.set_args() | ||
| 791 | test_env.testing_paths = create_paths(test_env.LUA_V or test_env.LUAJIT_V) | ||
| 792 | test_env.env_variables = create_env(test_env.testing_paths) | ||
| 793 | test_env.run = make_run_functions() | ||
| 794 | |||
| 795 | return test_env | ||
diff --git a/spec/util_spec.lua b/spec/util_spec.lua index 25cc51d8..3aa8fbf5 100644 --- a/spec/util_spec.lua +++ b/spec/util_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | local testing_paths = test_env.testing_paths | 4 | local testing_paths = test_env.testing_paths |
diff --git a/spec/write_rockspec_spec.lua b/spec/write_rockspec_spec.lua index 0c860939..9ee86ada 100644 --- a/spec/write_rockspec_spec.lua +++ b/spec/write_rockspec_spec.lua | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | local test_env = require("test/test_environment") | 1 | local test_env = require("spec.util.test_env") |
| 2 | local lfs = require("lfs") | 2 | local lfs = require("lfs") |
| 3 | local run = test_env.run | 3 | local run = test_env.run |
| 4 | 4 | ||
| @@ -27,28 +27,28 @@ describe("LuaRocks write_rockspec tests #blackbox #b_write_rockspec", function() | |||
| 27 | 27 | ||
| 28 | describe("LuaRocks write_rockspec more complex tests", function() | 28 | describe("LuaRocks write_rockspec more complex tests", function() |
| 29 | it("LuaRocks write_rockspec git luarocks", function() | 29 | it("LuaRocks write_rockspec git luarocks", function() |
| 30 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/keplerproject/luarocks")) | 30 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/luarocks/testrock")) |
| 31 | assert.is.truthy(lfs.attributes("luarocks-dev-1.rockspec")) | 31 | assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) |
| 32 | assert.is_true(os.remove("luarocks-dev-1.rockspec")) | 32 | assert.is_true(os.remove("testrock-dev-1.rockspec")) |
| 33 | end) | 33 | end) |
| 34 | 34 | ||
| 35 | it("LuaRocks write_rockspec git luarocks --tag=v2.3.0", function() | 35 | it("LuaRocks write_rockspec git luarocks --tag=v2.3.0", function() |
| 36 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/keplerproject/luarocks --tag=v2.3.0")) | 36 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/luarocks/testrock --tag=v2.3.0")) |
| 37 | assert.is.truthy(lfs.attributes("luarocks-2.3.0-1.rockspec")) | 37 | assert.is.truthy(lfs.attributes("testrock-2.3.0-1.rockspec")) |
| 38 | assert.is_true(os.remove("luarocks-2.3.0-1.rockspec")) | 38 | assert.is_true(os.remove("testrock-2.3.0-1.rockspec")) |
| 39 | end) | 39 | end) |
| 40 | 40 | ||
| 41 | it("LuaRocks write_rockspec git luarocks with format flag", function() | 41 | it("LuaRocks write_rockspec git luarocks with format flag", function() |
| 42 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/luarocks/luarocks --rockspec-format=1.1 --lua-version=5.1,5.2")) | 42 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/luarocks/testrock --rockspec-format=1.1 --lua-version=5.1,5.2")) |
| 43 | assert.is.truthy(lfs.attributes("luarocks-dev-1.rockspec")) | 43 | assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) |
| 44 | assert.is_true(os.remove("luarocks-dev-1.rockspec")) | 44 | assert.is_true(os.remove("testrock-dev-1.rockspec")) |
| 45 | end) | 45 | end) |
| 46 | 46 | ||
| 47 | it("LuaRocks write_rockspec git luarocks with full flags", function() | 47 | it("LuaRocks write_rockspec git luarocks with full flags", function() |
| 48 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/luarocks/luarocks --lua-version=5.1,5.2 --license=\"MIT/X11\" " | 48 | assert.is_true(run.luarocks_bool("write_rockspec git://github.com/luarocks/testrock --lua-version=5.1,5.2 --license=\"MIT/X11\" " |
| 49 | .. " --homepage=\"http://www.luarocks.org\" --summary=\"A package manager for Lua modules\" ")) | 49 | .. " --homepage=\"http://www.luarocks.org\" --summary=\"A package manager for Lua modules\" ")) |
| 50 | assert.is.truthy(lfs.attributes("luarocks-dev-1.rockspec")) | 50 | assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) |
| 51 | assert.is_true(os.remove("luarocks-dev-1.rockspec")) | 51 | assert.is_true(os.remove("testrock-dev-1.rockspec")) |
| 52 | end) | 52 | end) |
| 53 | 53 | ||
| 54 | it("LuaRocks write_rockspec rockspec via http", function() | 54 | it("LuaRocks write_rockspec rockspec via http", function() |
