aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-04-20 13:14:36 -0300
committerHisham Muhammad <hisham@gobolinux.org>2018-05-07 19:27:37 -0300
commit129207c5088d0c7a4143de20844a898267b471de (patch)
treeb9f95ddfeb32854951d7bc765f8492941875c65e
parent4566c9bb20b8986d511c61c1f96bb2333e07bb1d (diff)
downloadluarocks-129207c5088d0c7a4143de20844a898267b471de.tar.gz
luarocks-129207c5088d0c7a4143de20844a898267b471de.tar.bz2
luarocks-129207c5088d0c7a4143de20844a898267b471de.zip
rockspec format: add `test_dependencies`
-rw-r--r--src/luarocks/cmd/show.lua13
-rw-r--r--src/luarocks/fetch.lua2
-rw-r--r--src/luarocks/test.lua10
-rw-r--r--src/luarocks/type/rockspec.lua11
4 files changed, 34 insertions, 2 deletions
diff --git a/src/luarocks/cmd/show.lua b/src/luarocks/cmd/show.lua
index b76ff778..ffac440b 100644
--- a/src/luarocks/cmd/show.lua
+++ b/src/luarocks/cmd/show.lua
@@ -22,6 +22,7 @@ With these flags, return only the desired information:
22--modules all modules provided by this package as used by require() 22--modules all modules provided by this package as used by require()
23--deps packages this package depends on 23--deps packages this package depends on
24--build-deps build-only dependencies for this package 24--build-deps build-only dependencies for this package
25--test-deps dependencies for testing this package
25--rockspec the full path of the rockspec file 26--rockspec the full path of the rockspec file
26--mversion the package version 27--mversion the package version
27--rock-tree local tree where rock is installed 28--rock-tree local tree where rock is installed
@@ -118,6 +119,10 @@ function show.command(flags, name, version)
118 for _, dep in ipairs(rockspec.build_dependencies) do 119 for _, dep in ipairs(rockspec.build_dependencies) do
119 util.printout(tostring(dep)) 120 util.printout(tostring(dep))
120 end 121 end
122 elseif flags["test-deps"] then
123 for _, dep in ipairs(rockspec.test_dependencies) do
124 util.printout(tostring(dep))
125 end
121 elseif flags["rockspec"] then util.printout(rockspec_file) 126 elseif flags["rockspec"] then util.printout(rockspec_file)
122 elseif flags["mversion"] then util.printout(version) 127 elseif flags["mversion"] then util.printout(version)
123 else 128 else
@@ -162,6 +167,14 @@ function show.command(flags, name, version)
162 end 167 end
163 end 168 end
164 169
170 if #rockspec.test_dependencies > 0 then
171 util.printout()
172 util.printout("Tests depend on:")
173 for _, dep in ipairs(rockspec.test_dependencies) do
174 util.printout("\t"..tostring(dep).." "..installed_rock_label(dep, flags["tree"]))
175 end
176 end
177
165 local direct_deps = {} 178 local direct_deps = {}
166 if #rockspec.dependencies > 0 then 179 if #rockspec.dependencies > 0 then
167 util.printout() 180 util.printout()
diff --git a/src/luarocks/fetch.lua b/src/luarocks/fetch.lua
index 08998986..9ea2b487 100644
--- a/src/luarocks/fetch.lua
+++ b/src/luarocks/fetch.lua
@@ -240,6 +240,7 @@ function fetch.load_local_rockspec(filename, quick)
240 util.platform_overrides(rockspec.build) 240 util.platform_overrides(rockspec.build)
241 util.platform_overrides(rockspec.dependencies) 241 util.platform_overrides(rockspec.dependencies)
242 util.platform_overrides(rockspec.build_dependencies) 242 util.platform_overrides(rockspec.build_dependencies)
243 util.platform_overrides(rockspec.test_dependencies)
243 util.platform_overrides(rockspec.external_dependencies) 244 util.platform_overrides(rockspec.external_dependencies)
244 util.platform_overrides(rockspec.source) 245 util.platform_overrides(rockspec.source)
245 util.platform_overrides(rockspec.hooks) 246 util.platform_overrides(rockspec.hooks)
@@ -288,6 +289,7 @@ function fetch.load_local_rockspec(filename, quick)
288 289
289 convert_dependencies(rockspec, "dependencies") 290 convert_dependencies(rockspec, "dependencies")
290 convert_dependencies(rockspec, "build_dependencies") 291 convert_dependencies(rockspec, "build_dependencies")
292 convert_dependencies(rockspec, "test_dependencies")
291 293
292 if not quick then 294 if not quick then
293 path.configure_paths(rockspec) 295 path.configure_paths(rockspec)
diff --git a/src/luarocks/test.lua b/src/luarocks/test.lua
index 2a64a5d8..c7e3e013 100644
--- a/src/luarocks/test.lua
+++ b/src/luarocks/test.lua
@@ -2,6 +2,7 @@
2local test = {} 2local test = {}
3 3
4local fetch = require("luarocks.fetch") 4local fetch = require("luarocks.fetch")
5local deps = require("luarocks.deps")
5 6
6local test_types = { 7local test_types = {
7 "busted", 8 "busted",
@@ -49,7 +50,14 @@ function test.run_test_suite(rockspec_arg, args)
49 if not test_type then 50 if not test_type then
50 return nil, err 51 return nil, err
51 end 52 end
52 53
54 if next(rockspec.test_dependencies) then
55 local ok, err, errcode = deps.fulfill_dependencies(rockspec, "test_dependencies", "all")
56 if err then
57 return nil, err, errcode
58 end
59 end
60
53 local mod_name = "luarocks.test." .. test_type 61 local mod_name = "luarocks.test." .. test_type
54 local pok, test_mod = pcall(require, mod_name) 62 local pok, test_mod = pcall(require, mod_name)
55 if not pok then 63 if not pok then
diff --git a/src/luarocks/type/rockspec.lua b/src/luarocks/type/rockspec.lua
index bb36cfc3..16ab911c 100644
--- a/src/luarocks/type/rockspec.lua
+++ b/src/luarocks/type/rockspec.lua
@@ -57,6 +57,15 @@ local rockspec_types = {
57 _pattern = "%s*([a-zA-Z0-9%.%-%_]*/?[a-zA-Z0-9][a-zA-Z0-9%.%-%_]*)%s*([^/]*)", 57 _pattern = "%s*([a-zA-Z0-9%.%-%_]*/?[a-zA-Z0-9][a-zA-Z0-9%.%-%_]*)%s*([^/]*)",
58 }, 58 },
59 }, 59 },
60 test_dependencies = {
61 _version = "3.0",
62 platforms = {}, -- recursively defined below
63 _any = {
64 _type = "string",
65 _name = "a valid dependency string",
66 _pattern = "%s*([a-zA-Z0-9%.%-%_]*/?[a-zA-Z0-9][a-zA-Z0-9%.%-%_]*)%s*([^/]*)",
67 },
68 },
60 supported_platforms = { 69 supported_platforms = {
61 _any = string_1, 70 _any = string_1,
62 }, 71 },
@@ -125,7 +134,7 @@ type_rockspec.order = {"rockspec_format", "package", "version",
125 { "description", {"summary", "detailed", "homepage", "license" } }, 134 { "description", {"summary", "detailed", "homepage", "license" } },
126 "supported_platforms", "dependencies", "build_dependencies", "external_dependencies", 135 "supported_platforms", "dependencies", "build_dependencies", "external_dependencies",
127 { "build", {"type", "modules", "copy_directories", "platforms"} }, 136 { "build", {"type", "modules", "copy_directories", "platforms"} },
128 { "test", {"type"} }, 137 "test_dependencies", { "test", {"type"} },
129 "hooks"} 138 "hooks"}
130 139
131rockspec_types.build.platforms._any = rockspec_types.build 140rockspec_types.build.platforms._any = rockspec_types.build