summaryrefslogtreecommitdiff
path: root/spec/unit/deps_spec.lua
diff options
context:
space:
mode:
authorMike Vink <mike@pionative.com>2025-02-03 21:29:42 +0100
committerMike Vink <mike@pionative.com>2025-02-03 21:29:42 +0100
commit5155816b7b925dec5d5feb1568b1d7ceb00938b9 (patch)
treedeca28ea15e79f6f804c3d90d2ba757881638af5 /spec/unit/deps_spec.lua
fetch tarballHEADmaster
Diffstat (limited to 'spec/unit/deps_spec.lua')
-rw-r--r--spec/unit/deps_spec.lua143
1 files changed, 143 insertions, 0 deletions
diff --git a/spec/unit/deps_spec.lua b/spec/unit/deps_spec.lua
new file mode 100644
index 0000000..3be80b9
--- /dev/null
+++ b/spec/unit/deps_spec.lua
@@ -0,0 +1,143 @@
+local test_env = require("spec.util.test_env")
+local testing_paths = test_env.testing_paths
+
+local cfg = require("luarocks.core.cfg")
+local deps = require("luarocks.deps")
+local fs = require("luarocks.fs")
+
+describe("LuaRocks deps #unit", function()
+ local runner
+
+ lazy_setup(function()
+ cfg.init()
+ fs.init()
+ deps.check_lua_incdir(cfg.variables)
+ deps.check_lua_libdir(cfg.variables)
+
+ runner = require("luacov.runner")
+ runner.init(testing_paths.testrun_dir .. "/luacov.config")
+ end)
+
+ lazy_teardown(function()
+ runner.save_stats()
+ end)
+
+ describe("deps", function()
+ describe("deps.autodetect_external_dependencies", function()
+ it("returns false if the given build table has no external dependencies", function()
+ local build_table = {
+ type = "builtin"
+ }
+
+ assert.falsy(deps.autodetect_external_dependencies(build_table))
+ end)
+
+ it("returns a table of the external dependencies found in the given build table", function()
+ local build_table = {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = { "foo1", "foo2" },
+ },
+ module2 = {
+ libraries = "foo3"
+ },
+ }
+ }
+
+ local extdeps = deps.autodetect_external_dependencies(build_table)
+ assert.same(extdeps["FOO1"], { library = "foo1" })
+ assert.same(extdeps["FOO2"], { library = "foo2" })
+ assert.same(extdeps["FOO3"], { library = "foo3" })
+ end)
+
+ it("adds proper include and library dirs to the given build table", function()
+ local build_table
+
+ build_table = {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo"
+ }
+ }
+ }
+ deps.autodetect_external_dependencies(build_table)
+ assert.same(build_table, {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ incdirs = { "$(FOO_INCDIR)" },
+ libdirs = { "$(FOO_LIBDIR)" }
+ }
+ }
+ })
+
+ build_table = {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ incdirs = { "INCDIRS" }
+ }
+ }
+ }
+ deps.autodetect_external_dependencies(build_table)
+ assert.same(build_table, {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ incdirs = { "INCDIRS" },
+ libdirs = { "$(FOO_LIBDIR)" }
+ }
+ }
+ })
+
+ build_table = {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ libdirs = { "LIBDIRS" }
+ }
+ }
+ }
+ deps.autodetect_external_dependencies(build_table)
+ assert.same(build_table, {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ incdirs = { "$(FOO_INCDIR)" },
+ libdirs = { "LIBDIRS" }
+ }
+ }
+ })
+
+ build_table = {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ incdirs = { "INCDIRS" },
+ libdirs = { "LIBDIRS" }
+ }
+ }
+ }
+ deps.autodetect_external_dependencies(build_table)
+ assert.same(build_table, {
+ type = "builtin",
+ modules = {
+ module1 = {
+ libraries = "foo",
+ incdirs = { "INCDIRS" },
+ libdirs = { "LIBDIRS" }
+ }
+ }
+ })
+ end)
+ end)
+ end)
+end)