summaryrefslogtreecommitdiff
path: root/spec/write_rockspec_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/write_rockspec_spec.lua')
-rw-r--r--spec/write_rockspec_spec.lua104
1 files changed, 104 insertions, 0 deletions
diff --git a/spec/write_rockspec_spec.lua b/spec/write_rockspec_spec.lua
new file mode 100644
index 0000000..abd5c80
--- /dev/null
+++ b/spec/write_rockspec_spec.lua
@@ -0,0 +1,104 @@
+local test_env = require("spec.util.test_env")
+local git_repo = require("spec.util.git_repo")
+local lfs = require("lfs")
+local run = test_env.run
+
+describe("luarocks write_rockspec tests #integration", function()
+
+ lazy_setup(function()
+ test_env.setup_specs()
+ end)
+
+ it("fails with invalid argument", function()
+ assert.is_false(run.luarocks_bool("write_rockspec invalid"))
+ end)
+
+ it("fails with invalid zip", function()
+ assert.is_false(run.luarocks_bool("write_rockspec http://example.com/invalid.zip"))
+ end)
+
+ describe("from #git #unix", function()
+ local git
+
+ lazy_setup(function()
+ git = git_repo.start()
+ end)
+
+ teardown(function()
+ git:stop()
+ end)
+
+ it("runs with no flags/arguments", function()
+ local d = lfs.currentdir()
+ finally(function()
+ os.remove("testrock-dev-1.rockspec")
+ lfs.chdir(d)
+ test_env.remove_dir("testrock")
+ end)
+ os.execute("git clone git://localhost/testrock")
+ lfs.chdir("testrock")
+ assert.is_true(run.luarocks_bool("write_rockspec"))
+ assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec"))
+ end)
+
+ it("runs", function()
+ finally(function() os.remove("testrock-dev-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock"))
+ assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec"))
+ end)
+
+ it("runs with --tag", function()
+ finally(function() os.remove("testrock-2.3.0-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --tag=v2.3.0"))
+ assert.is.truthy(lfs.attributes("testrock-2.3.0-1.rockspec"))
+ -- TODO check contents
+ end)
+
+ it("runs with format flag", function()
+ finally(function() os.remove("testrock-dev-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --rockspec-format=1.1 --lua-versions=5.1,5.2"))
+ assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec"))
+ -- TODO check contents
+ end)
+
+ it("runs with full flags", function()
+ finally(function() os.remove("testrock-dev-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --lua-versions=5.1,5.2 --license=\"MIT/X11\" "
+ .. " --homepage=\"http://www.luarocks.org\" --summary=\"A package manager for Lua modules\" "))
+ assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec"))
+ -- TODO check contents
+ end)
+
+ it("with various flags", function()
+ finally(function() os.remove("testrock-dev-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --lib=fcgi --license=\"3-clause BSD\" " .. "--lua-versions=5.1,5.2"))
+ assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec"))
+ -- TODO check contents
+ end)
+ end)
+
+ describe("from tarball #mock", function()
+
+ lazy_setup(function()
+ test_env.setup_specs(nil, "mock")
+ test_env.mock_server_init()
+ end)
+ lazy_teardown(function()
+ test_env.mock_server_done()
+ end)
+
+ it("via http", function()
+ finally(function() os.remove("an_upstream_tarball-0.1-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec http://localhost:8080/file/an_upstream_tarball-0.1.tar.gz --lua-versions=5.1"))
+ assert.is.truthy(lfs.attributes("an_upstream_tarball-0.1-1.rockspec"))
+ -- TODO check contents
+ end)
+
+ it("with a different basedir", function()
+ finally(function() os.remove("renamed_upstream_tarball-0.1-1.rockspec") end)
+ assert.is_true(run.luarocks_bool("write_rockspec http://localhost:8080/file/renamed_upstream_tarball-0.1.tar.gz --lua-versions=5.1"))
+ assert.is.truthy(lfs.attributes("renamed_upstream_tarball-0.1-1.rockspec"))
+ -- TODO check contents
+ end)
+ end)
+end)