summaryrefslogtreecommitdiff
path: root/spec/test_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/test_spec.lua')
-rw-r--r--spec/test_spec.lua93
1 files changed, 93 insertions, 0 deletions
diff --git a/spec/test_spec.lua b/spec/test_spec.lua
new file mode 100644
index 0000000..bc5f047
--- /dev/null
+++ b/spec/test_spec.lua
@@ -0,0 +1,93 @@
+local test_env = require("spec.util.test_env")
+local lfs = require("lfs")
+local run = test_env.run
+local testing_paths = test_env.testing_paths
+local write_file = test_env.write_file
+
+local extra_rocks = {
+ "/busted-2.2.0-1.src.rock",
+ "/lua_cliargs-3.0-1.src.rock",
+ "/luafilesystem-${LUAFILESYSTEM}.src.rock",
+ "/luasystem-0.2.1-0.src.rock",
+ "/dkjson-${DKJSON}.src.rock",
+ "/say-1.4.1-3.src.rock",
+ "/luassert-1.9.0-1.src.rock",
+ "/penlight-1.13.1-1.src.rock",
+ "/lua-term-0.8-1.rockspec",
+ "/mediator_lua-1.1.2-0.rockspec",
+}
+
+describe("luarocks test #integration", function()
+
+ lazy_setup(function()
+ test_env.setup_specs(extra_rocks)
+ end)
+
+ it("fails with no flags/arguments", function()
+ finally(function()
+ lfs.chdir(testing_paths.testrun_dir)
+ test_env.remove_dir("empty")
+ end)
+ assert(lfs.mkdir("empty"))
+ assert(lfs.chdir("empty"))
+ assert.is_false(run.luarocks_bool("test"))
+ end)
+
+ describe("busted backend", function()
+
+ it("with rockspec, installing busted", function()
+ finally(function()
+ -- delete downloaded and unpacked files
+ lfs.chdir(testing_paths.testrun_dir)
+ test_env.remove_dir("busted_project-0.1-1")
+ os.remove("busted_project-0.1-1.src.rock")
+ end)
+
+ -- make luassert
+ assert.is_true(run.luarocks_bool("download --server="..testing_paths.fixtures_repo_dir.." busted_project 0.1-1"))
+ assert.is_true(run.luarocks_bool("unpack busted_project-0.1-1.src.rock"))
+ lfs.chdir("busted_project-0.1-1/busted_project")
+ assert.is_true(run.luarocks_bool("make"))
+ local output = run.luarocks("test")
+ print(output)
+ -- Assert that busted ran, whether successfully or not
+ assert.match("%d+ success.* / %d+ failure.* / %d+ error.* / %d+ pending", output)
+ end)
+
+ it("prepare", function()
+ finally(function()
+ -- delete downloaded and unpacked files
+ lfs.chdir(testing_paths.testrun_dir)
+ test_env.remove_dir("busted_project-0.1-1")
+ os.remove("busted_project-0.1-1.src.rock")
+ end)
+
+ -- make luassert
+ assert.is_true(run.luarocks_bool("download --server="..testing_paths.fixtures_repo_dir.." busted_project 0.1-1"))
+ assert.is_true(run.luarocks_bool("unpack busted_project-0.1-1.src.rock"))
+ lfs.chdir("busted_project-0.1-1/busted_project")
+ assert.is_true(run.luarocks_bool("make"))
+
+ run.luarocks_bool("remove busted")
+ local prepareOutput = run.luarocks_bool("test --prepare")
+ assert.is_true(run.luarocks_bool("show busted"))
+
+ -- Assert that "test --prepare" run successfully
+ assert.is_true(prepareOutput)
+
+ local output = run.luarocks("test")
+ assert.not_match(tostring(prepareOutput), output)
+
+ end)
+ end)
+
+ describe("command backend", function()
+ describe("prepare", function()
+ it("works with non-busted rocks", function()
+ write_file("test.lua", "", finally)
+ assert.is_true(run.luarocks_bool("test --prepare " .. testing_paths.fixtures_dir .. "/a_rock-1.0-1.rockspec"))
+ end)
+ end)
+ end)
+end)
+