diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2017-11-06 18:11:38 -0200 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2017-11-06 18:26:32 -0200 |
commit | 9c7e9fed578b58fff14e7a3dd95bdad62ff6ab31 (patch) | |
tree | caf5be2af131c535b3f9901cd379f08dcf0d3752 | |
parent | c9d9487e9e21fb2454b4c7f89494299b7473b0d1 (diff) | |
download | luarocks-9c7e9fed578b58fff14e7a3dd95bdad62ff6ab31.tar.gz luarocks-9c7e9fed578b58fff14e7a3dd95bdad62ff6ab31.tar.bz2 luarocks-9c7e9fed578b58fff14e7a3dd95bdad62ff6ab31.zip |
Tests: build using INCDIR for an external dependency
-rw-r--r-- | spec/build_spec.lua | 26 | ||||
-rw-r--r-- | test/testfiles/with_external_dep-0.1-1.rockspec | 25 | ||||
-rw-r--r-- | test/testfiles/with_external_dep.c | 10 | ||||
-rw-r--r-- | test/testfiles/with_external_dep/foo/foo.h | 1 | ||||
-rw-r--r-- | test/testfiles/with_external_dep/foo/foo.h.gch | bin | 0 -> 1503664 bytes |
5 files changed, 58 insertions, 4 deletions
diff --git a/spec/build_spec.lua b/spec/build_spec.lua index ffae144d..c6d5f717 100644 --- a/spec/build_spec.lua +++ b/spec/build_spec.lua | |||
@@ -189,12 +189,30 @@ describe("LuaRocks build tests #blackbox #b_build", function() | |||
189 | assert.is_true(os.remove("validate-args-1.5.4-1.rockspec")) | 189 | assert.is_true(os.remove("validate-args-1.5.4-1.rockspec")) |
190 | end) | 190 | end) |
191 | 191 | ||
192 | it("LuaRocks build missing external", function() | ||
193 | assert.is_false(run.luarocks_bool("build " .. testing_paths.testing_dir .. "/testfiles/missing_external-0.1-1.rockspec INEXISTENT_INCDIR=\"/invalid/dir\"")) | ||
194 | end) | ||
195 | |||
196 | it("LuaRocks build invalid patch", function() | 192 | it("LuaRocks build invalid patch", function() |
197 | 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.testing_dir .. "/testfiles/invalid_patch-0.1-1.rockspec")) |
198 | end) | 194 | end) |
199 | end) | 195 | end) |
196 | |||
197 | describe("external dependencies", function() | ||
198 | setup(function() | ||
199 | test_env.mock_server_init() | ||
200 | end) | ||
201 | |||
202 | teardown(function() | ||
203 | test_env.mock_server_done() | ||
204 | end) | ||
205 | |||
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\"")) | ||
208 | end) | ||
209 | |||
210 | it("builds with external dependency", function() | ||
211 | local rockspec = testing_paths.testing_dir .. "/testfiles/with_external_dep-0.1-1.rockspec" | ||
212 | local foo_incdir = testing_paths.testing_dir .. "/testfiles/with_external_dep" | ||
213 | assert.is_truthy(run.luarocks_bool("build " .. rockspec .. " FOO_INCDIR=\"" .. foo_incdir .. "\"")) | ||
214 | assert.is.truthy(run.luarocks("show with_external_dep")) | ||
215 | end) | ||
216 | end) | ||
217 | |||
200 | end) | 218 | end) |
diff --git a/test/testfiles/with_external_dep-0.1-1.rockspec b/test/testfiles/with_external_dep-0.1-1.rockspec new file mode 100644 index 00000000..45fea4bd --- /dev/null +++ b/test/testfiles/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/test/testfiles/with_external_dep.c b/test/testfiles/with_external_dep.c new file mode 100644 index 00000000..16435d8f --- /dev/null +++ b/test/testfiles/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/test/testfiles/with_external_dep/foo/foo.h b/test/testfiles/with_external_dep/foo/foo.h new file mode 100644 index 00000000..eedd558f --- /dev/null +++ b/test/testfiles/with_external_dep/foo/foo.h | |||
@@ -0,0 +1 @@ | |||
#define FOO 42 | |||
diff --git a/test/testfiles/with_external_dep/foo/foo.h.gch b/test/testfiles/with_external_dep/foo/foo.h.gch new file mode 100644 index 00000000..66165c9e --- /dev/null +++ b/test/testfiles/with_external_dep/foo/foo.h.gch | |||
Binary files differ | |||