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)