summaryrefslogtreecommitdiff
path: root/tests/projects
diff options
context:
space:
mode:
authorruki <[email protected]>2026-06-16 23:51:03 +0800
committerGitHub <[email protected]>2026-06-16 23:51:03 +0800
commitdbe6b5b6f5a16e16c87964da6dad0cfdd825560d (patch)
tree7bb08a6fb25fd32e184c4ccb612da87b9afaf444 /tests/projects
parent151db560b3960f677f942357eae8ad3a574e79db (diff)
parenta63a03322c87be7978612a194995e767976f2bf9 (diff)
Merge pull request #7602 from Shiffted/memcache-fix
fix load package memcache
Diffstat (limited to 'tests/projects')
-rw-r--r--tests/projects/package/load_from_project/check.lua19
-rw-r--r--tests/projects/package/load_from_project/test.lua3
-rw-r--r--tests/projects/package/load_from_project/xmake.lua3
3 files changed, 25 insertions, 0 deletions
diff --git a/tests/projects/package/load_from_project/check.lua b/tests/projects/package/load_from_project/check.lua
new file mode 100644
index 000000000..d9a4edd49
--- /dev/null
+++ b/tests/projects/package/load_from_project/check.lua
@@ -0,0 +1,19 @@
+import("core.package.package")
+
+function main()
+ local foo1 = package.load_from_project("foo")
+ local foo2 = package.load_from_project("foo")
+ assert(foo1 and foo2, "load_from_project(foo) failed!")
+
+ assert(table.contains(table.wrap(foo1:get("defines")), "FOO_BASE"), "foo1 missing FOO_BASE")
+ assert(table.contains(table.wrap(foo2:get("defines")), "FOO_BASE"), "foo2 missing FOO_BASE")
+
+ -- mutating one instance should not leak into the other
+ foo1:add("defines", "FOO_LEAK")
+ assert(table.contains(table.wrap(foo1:get("defines")), "FOO_LEAK"), "foo1 missing FOO_LEAK")
+ assert(not table.contains(table.wrap(foo2:get("defines")), "FOO_LEAK"), "FOO_LEAK leaked into foo2")
+
+ foo1:set("foo_leak", false)
+ assert(foo1:get("foo_leak") == false, "foo1 foo_leak not set")
+ assert(foo2:get("foo_leak") ~= false, "foo_leak leaked into foo2")
+end
diff --git a/tests/projects/package/load_from_project/test.lua b/tests/projects/package/load_from_project/test.lua
new file mode 100644
index 000000000..9ec42530e
--- /dev/null
+++ b/tests/projects/package/load_from_project/test.lua
@@ -0,0 +1,3 @@
+function main(t)
+ os.exec("xmake l -vD check.lua")
+end
diff --git a/tests/projects/package/load_from_project/xmake.lua b/tests/projects/package/load_from_project/xmake.lua
new file mode 100644
index 000000000..a96023b7f
--- /dev/null
+++ b/tests/projects/package/load_from_project/xmake.lua
@@ -0,0 +1,3 @@
+package("foo")
+ add_defines("FOO_BASE")
+package_end()