summaryrefslogtreecommitdiff
path: root/tests/modules
diff options
context:
space:
mode:
authorShiffted <[email protected]>2026-06-14 01:48:07 +0200
committerShiffted <[email protected]>2026-06-14 01:48:07 +0200
commita63a03322c87be7978612a194995e767976f2bf9 (patch)
tree07c569af202ec71d11bcb443acc6e9a0208b2413 /tests/modules
parent5b1633eb40616616458aca322802e268c3ab19a7 (diff)
add tests for package load_from_xxx
Diffstat (limited to 'tests/modules')
-rw-r--r--tests/modules/package/load_from_repository/foo/xmake.lua3
-rw-r--r--tests/modules/package/load_from_repository/test.lua20
2 files changed, 23 insertions, 0 deletions
diff --git a/tests/modules/package/load_from_repository/foo/xmake.lua b/tests/modules/package/load_from_repository/foo/xmake.lua
new file mode 100644
index 000000000..a96023b7f
--- /dev/null
+++ b/tests/modules/package/load_from_repository/foo/xmake.lua
@@ -0,0 +1,3 @@
+package("foo")
+ add_defines("FOO_BASE")
+package_end()
diff --git a/tests/modules/package/load_from_repository/test.lua b/tests/modules/package/load_from_repository/test.lua
new file mode 100644
index 000000000..7899175d8
--- /dev/null
+++ b/tests/modules/package/load_from_repository/test.lua
@@ -0,0 +1,20 @@
+import("core.package.package")
+
+function test_load_from_repository(t)
+ local packagedir = path.absolute("foo")
+ local foo1 = package.load_from_repository("foo", packagedir, {})
+ local foo2 = package.load_from_repository("foo", packagedir, {})
+ assert(foo1 and foo2, "load_from_repository(foo) failed!")
+
+ t:require(table.contains(table.wrap(foo1:get("defines")), "FOO_BASE"))
+ t:require(table.contains(table.wrap(foo2:get("defines")), "FOO_BASE"))
+
+ -- mutating one instance should not leak into the other
+ foo1:add("defines", "FOO_LEAK")
+ t:require(table.contains(table.wrap(foo1:get("defines")), "FOO_LEAK"))
+ t:require_not(table.contains(table.wrap(foo2:get("defines")), "FOO_LEAK"))
+
+ foo1:set("foo_leak", false)
+ t:require(foo1:get("foo_leak") == false)
+ t:require_not(foo2:get("foo_leak") == false)
+end