aboutsummaryrefslogtreecommitdiff
path: root/spec/unpack_spec.lua
blob: 59f7eb0b9df74f54f013173d1921351fb4831c61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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 extra_rocks = {
   "/cprint-${CPRINT}.src.rock",
   "/cprint-${CPRINT}.rockspec",
   "/luazip-1.2.4-1.rockspec"
}

describe("luarocks unpack #integration", function()

   before_each(function()
      test_env.setup_specs(extra_rocks)
   end)

   describe("basic fail tests", function()
      it("with no flags/arguments", function()
         assert.is_false(run.luarocks_bool("unpack"))
      end)

      it("with invalid rockspec", function()
         assert.is_false(run.luarocks_bool("unpack invalid.rockspec"))
      end)

      it("with invalid patch", function()
         assert.is_false(run.luarocks_bool("unpack " .. testing_paths.fixtures_dir .. "/invalid_patch-0.1-1.rockspec"))
      end)
   end)

   describe("more complex tests", function()
      it("download", function()
         assert.is_true(run.luarocks_bool("unpack cprint"))
         test_env.remove_dir("cprint-${CPRINT}")
      end)

      it("src", function()
         assert.is_true(run.luarocks_bool("download --source cprint"))
         assert.is_true(run.luarocks_bool("unpack cprint-${CPRINT}.src.rock"))
         os.remove("cprint-${CPRINT}.src.rock")
         test_env.remove_dir("cprint-${CPRINT}")
      end)

      it("src", function()
         assert.is_true(run.luarocks_bool("download --rockspec cprint"))
         assert.is_true(run.luarocks_bool("unpack cprint-${CPRINT}.rockspec"))
         os.remove("cprint-${CPRINT}.rockspec")
         os.remove("lua-cprint")
         test_env.remove_dir("cprint-${CPRINT}")
      end)

      -- #595 luarocks unpack of a git:// rockspec fails to copy the rockspec
      it("git:// rockspec", function()
         assert.is_true(run.luarocks_bool("download --rockspec luazip"))
         assert.is_true(run.luarocks_bool("unpack luazip-1.2.4-1.rockspec"))
         assert.is_truthy(lfs.attributes("luazip-1.2.4-1/luazip/luazip-1.2.4-1.rockspec"))
         test_env.remove_dir("luazip-1.2.4-1")
      end)

      it("binary", function()
         assert.is_true(run.luarocks_bool("build cprint"))
         assert.is_true(run.luarocks_bool("pack cprint"))
         assert.is_true(run.luarocks_bool("unpack cprint-${CPRINT}." .. test_env.platform .. ".rock"))
         test_env.remove_dir("cprint-${CPRINT}")
         os.remove("cprint-${CPRINT}." .. test_env.platform .. ".rock")
      end)
   end)
end)