diff options
author | George Roman <george.roman.99@gmail.com> | 2018-07-04 16:24:33 +0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2018-07-18 11:22:43 -0300 |
commit | 619296451e96608bae10b868c864b31108d0ee79 (patch) | |
tree | acff3e97f3eab24ad5f7e99f8352f7d9c88ea9db | |
parent | 97bee5e84b0258ae5f25c038a85a54c6b621d5ce (diff) | |
download | luarocks-619296451e96608bae10b868c864b31108d0ee79.tar.gz luarocks-619296451e96608bae10b868c864b31108d0ee79.tar.bz2 luarocks-619296451e96608bae10b868c864b31108d0ee79.zip |
Tests: use fixtures for some build integration tests
-rw-r--r-- | spec/build_spec.lua | 104 |
1 files changed, 80 insertions, 24 deletions
diff --git a/spec/build_spec.lua b/spec/build_spec.lua index 53c338f9..982db801 100644 --- a/spec/build_spec.lua +++ b/spec/build_spec.lua | |||
@@ -6,6 +6,8 @@ local testing_paths = test_env.testing_paths | |||
6 | local write_file = test_env.write_file | 6 | local write_file = test_env.write_file |
7 | 7 | ||
8 | test_env.unload_luarocks() | 8 | test_env.unload_luarocks() |
9 | local cfg = require("luarocks.core.cfg") | ||
10 | local fs = require("luarocks.fs") | ||
9 | 11 | ||
10 | local extra_rocks = { | 12 | local extra_rocks = { |
11 | "/lmathx-20120430.51-1.src.rock", | 13 | "/lmathx-20120430.51-1.src.rock", |
@@ -16,7 +18,6 @@ local extra_rocks = { | |||
16 | "/lmathx-20150505-1.rockspec", | 18 | "/lmathx-20150505-1.rockspec", |
17 | "/lpeg-1.0.0-1.rockspec", | 19 | "/lpeg-1.0.0-1.rockspec", |
18 | "/lpeg-1.0.0-1.src.rock", | 20 | "/lpeg-1.0.0-1.src.rock", |
19 | "/lpty-1.0.1-1.src.rock", | ||
20 | "/luafilesystem-1.6.3-1.src.rock", | 21 | "/luafilesystem-1.6.3-1.src.rock", |
21 | "/lualogging-1.3.0-1.src.rock", | 22 | "/lualogging-1.3.0-1.src.rock", |
22 | "/luasec-0.6-1.rockspec", | 23 | "/luasec-0.6-1.rockspec", |
@@ -41,6 +42,10 @@ local c_module_source = [[ | |||
41 | ]] | 42 | ]] |
42 | 43 | ||
43 | describe("LuaRocks build tests #integration", function() | 44 | describe("LuaRocks build tests #integration", function() |
45 | setup(function() | ||
46 | cfg.init() | ||
47 | fs.init() | ||
48 | end) | ||
44 | 49 | ||
45 | before_each(function() | 50 | before_each(function() |
46 | test_env.setup_specs(extra_rocks) | 51 | test_env.setup_specs(extra_rocks) |
@@ -80,21 +85,43 @@ describe("LuaRocks build tests #integration", function() | |||
80 | end) | 85 | end) |
81 | end) | 86 | end) |
82 | 87 | ||
83 | describe("LuaRocks build - building lpeg with flags", function() | 88 | describe("LuaRocks build - building with flags", function() |
84 | it("LuaRocks build fail build permissions", function() | 89 | it("LuaRocks build fails if it doesn't have the permissions to access the specified tree #unix", function() |
85 | if test_env.TEST_TARGET_OS == "osx" or test_env.TEST_TARGET_OS == "linux" then | 90 | assert.is_false(run.luarocks_bool("build --tree=/usr " .. testing_paths.fixtures_dir .. "/a_rock-1.0.1-rockspec")) |
86 | assert.is_false(run.luarocks_bool("build --tree=/usr lpeg")) | 91 | assert.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/a_rock/1.0-1/a_rock-1.0-1.rockspec")) |
87 | end | ||
88 | end) | 92 | end) |
89 | 93 | ||
90 | it("LuaRocks build fail build permissions parent", function() | 94 | it("LuaRocks build fails if it doesn't have the permissions to access the specified tree's parent #unix", function() |
91 | if test_env.TEST_TARGET_OS == "osx" or test_env.TEST_TARGET_OS == "linux" then | 95 | assert.is_false(run.luarocks_bool("build --tree=/usr/invalid " .. testing_paths.fixtures_dir .. "/a_rock-1.0-1.rockspec")) |
92 | assert.is_false(run.luarocks_bool("build --tree=/usr/invalid lpeg")) | 96 | assert.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/a_rock/1.0-1/a_rock-1.0-1.rockspec")) |
93 | end | ||
94 | end) | 97 | end) |
95 | 98 | ||
96 | it("LuaRocks build lpeg verbose", function() | 99 | it("LuaRocks build verbose", function() |
97 | assert.is_true(run.luarocks_bool("build --verbose lpeg")) | 100 | local olddir = lfs.currentdir() |
101 | local tmpdir = get_tmp_path() | ||
102 | lfs.mkdir(tmpdir) | ||
103 | lfs.chdir(tmpdir) | ||
104 | |||
105 | write_file("test-1.0-1.rockspec", [[ | ||
106 | package = "test" | ||
107 | version = "1.0-1" | ||
108 | source = { | ||
109 | url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/test.lua" | ||
110 | } | ||
111 | build = { | ||
112 | type = "builtin", | ||
113 | modules = { | ||
114 | test = "test.lua" | ||
115 | } | ||
116 | } | ||
117 | ]], finally) | ||
118 | write_file("test.lua", "return {}", finally) | ||
119 | |||
120 | assert.is_true(run.luarocks_bool("build --verbose test-1.0-1.rockspec")) | ||
121 | assert.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/test/1.0-1/test-1.0-1.rockspec")) | ||
122 | |||
123 | lfs.chdir(olddir) | ||
124 | lfs.rmdir(tmpdir) | ||
98 | end) | 125 | end) |
99 | 126 | ||
100 | it("LuaRocks build lpeg branch=master", function() | 127 | it("LuaRocks build lpeg branch=master", function() |
@@ -103,9 +130,9 @@ describe("LuaRocks build tests #integration", function() | |||
103 | assert.is.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/lpeg/1.0.0-1/lpeg-1.0.0-1.rockspec")) | 130 | assert.is.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/lpeg/1.0.0-1/lpeg-1.0.0-1.rockspec")) |
104 | end) | 131 | end) |
105 | 132 | ||
106 | it("LuaRocks build lpeg deps-mode=123", function() | 133 | it("LuaRocks build fails if the deps-mode argument is invalid", function() |
107 | assert.is_false(run.luarocks_bool("build --deps-mode=123 lpeg --verbose")) | 134 | assert.is_false(run.luarocks_bool("build --deps-mode=123 " .. testing_paths.fixtures_dir .. "/a_rock-1.0-1.rockspec")) |
108 | assert.is.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/lpeg/1.0.0-1/lpeg-1.0.0-1.rockspec")) | 135 | assert.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/a_rock/1.0-1/a_rock-1.0-1.rockspec")) |
109 | end) | 136 | end) |
110 | 137 | ||
111 | it("LuaRocks build lpeg only-sources example", function() | 138 | it("LuaRocks build lpeg only-sources example", function() |
@@ -121,9 +148,9 @@ describe("LuaRocks build tests #integration", function() | |||
121 | assert.is_true(os.remove("lpeg-1.0.0-1.src.rock")) | 148 | assert.is_true(os.remove("lpeg-1.0.0-1.src.rock")) |
122 | end) | 149 | end) |
123 | 150 | ||
124 | it("LuaRocks build lpeg with empty tree", function() | 151 | it("LuaRocks build fails if an empty tree is given", function() |
125 | assert.is_false(run.luarocks_bool("build --tree=\"\" lpeg")) | 152 | assert.is_false(run.luarocks_bool("build --tree=\"\" " .. testing_paths.fixtures_dir .. "/a_rock-1.0-1.rockspec")) |
126 | assert.is.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/lpeg/1.0.0-1/lpeg-1.0.0-1.rockspec")) | 153 | assert.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/a_rock/1.0-1/a_rock-1.0-1.rockspec")) |
127 | end) | 154 | end) |
128 | end) | 155 | end) |
129 | 156 | ||
@@ -138,13 +165,40 @@ describe("LuaRocks build tests #integration", function() | |||
138 | assert.is.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/stdlib/41.0.0-1/stdlib-41.0.0-1.rockspec")) | 165 | assert.is.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/stdlib/41.0.0-1/stdlib-41.0.0-1.rockspec")) |
139 | end) | 166 | end) |
140 | 167 | ||
141 | it("LuaRocks build supported platforms lpty", function() | 168 | it("LuaRocks build fails if the current platform is not supported", function() |
169 | local olddir = lfs.currentdir() | ||
170 | local tmpdir = get_tmp_path() | ||
171 | lfs.mkdir(tmpdir) | ||
172 | lfs.chdir(tmpdir) | ||
173 | |||
174 | write_file("test-1.0-1.rockspec", [[ | ||
175 | package = "test" | ||
176 | version = "1.0-1" | ||
177 | source = { | ||
178 | url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/test.lua" | ||
179 | } | ||
180 | supported_platforms = { | ||
181 | "unix", "macosx" | ||
182 | } | ||
183 | build = { | ||
184 | type = "builtin", | ||
185 | modules = { | ||
186 | test = "test.lua" | ||
187 | } | ||
188 | } | ||
189 | ]], finally) | ||
190 | write_file("test.lua", "return {}", finally) | ||
191 | |||
142 | if test_env.TEST_TARGET_OS == "windows" then | 192 | if test_env.TEST_TARGET_OS == "windows" then |
143 | assert.is_false(run.luarocks_bool("build lpty")) --Error: This rockspec for lpty does not support win32, windows platforms | 193 | assert.is_false(run.luarocks_bool("build test-1.0-1.rockspec")) -- Error: This rockspec does not support windows platforms |
194 | assert.is.falsy(lfs.attributes(testing_paths.testing_sys_rocks .. "/test/1.0-1/test-1.0-1.rockspec")) | ||
144 | else | 195 | else |
145 | assert.is_true(run.luarocks_bool("build lpty")) | 196 | assert.is_true(run.luarocks_bool("build test-1.0-1.rockspec")) |
146 | assert.is.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/lpty/1.0.1-1/lpty-1.0.1-1.rockspec")) | 197 | assert.is.truthy(lfs.attributes(testing_paths.testing_sys_rocks .. "/test/1.0-1/test-1.0-1.rockspec")) |
147 | end | 198 | end |
199 | |||
200 | lfs.chdir(olddir) | ||
201 | lfs.rmdir(tmpdir) | ||
148 | end) | 202 | end) |
149 | 203 | ||
150 | it("LuaRocks build luasec with skipping dependency checks", function() | 204 | it("LuaRocks build luasec with skipping dependency checks", function() |
@@ -244,7 +298,7 @@ describe("LuaRocks build tests #integration", function() | |||
244 | assert.is_true(os.remove("validate-args-1.5.4-1.rockspec")) | 298 | assert.is_true(os.remove("validate-args-1.5.4-1.rockspec")) |
245 | end) | 299 | end) |
246 | 300 | ||
247 | it("LuaRocks build invalid patch", function() | 301 | it("LuaRocks build fails if given an argument with an invalid patch", function() |
248 | assert.is_false(run.luarocks_bool("build " .. testing_paths.fixtures_dir .. "/invalid_patch-0.1-1.rockspec")) | 302 | assert.is_false(run.luarocks_bool("build " .. testing_paths.fixtures_dir .. "/invalid_patch-0.1-1.rockspec")) |
249 | end) | 303 | end) |
250 | end) | 304 | end) |
@@ -351,7 +405,7 @@ describe("LuaRocks build tests #integration", function() | |||
351 | setup(function() | 405 | setup(function() |
352 | test_env.mock_server_init() | 406 | test_env.mock_server_init() |
353 | end) | 407 | end) |
354 | 408 | ||
355 | teardown(function() | 409 | teardown(function() |
356 | test_env.mock_server_done() | 410 | test_env.mock_server_done() |
357 | end) | 411 | end) |
@@ -566,6 +620,7 @@ describe("LuaRocks build tests #unit", function() | |||
566 | after_each(function() | 620 | after_each(function() |
567 | if olddir then | 621 | if olddir then |
568 | lfs.chdir(olddir) | 622 | lfs.chdir(olddir) |
623 | fs.change_dir(olddir) | ||
569 | if tmpdir then | 624 | if tmpdir then |
570 | lfs.rmdir(tmpdir) | 625 | lfs.rmdir(tmpdir) |
571 | end | 626 | end |
@@ -678,6 +733,7 @@ describe("LuaRocks build tests #unit", function() | |||
678 | after_each(function() | 733 | after_each(function() |
679 | if olddir then | 734 | if olddir then |
680 | lfs.chdir(olddir) | 735 | lfs.chdir(olddir) |
736 | fs.change_dir(olddir) | ||
681 | if tmpdir then | 737 | if tmpdir then |
682 | lfs.rmdir(tmpdir) | 738 | lfs.rmdir(tmpdir) |
683 | end | 739 | end |