summaryrefslogtreecommitdiff
path: root/tests/modules/package/load_from_repository/test.lua
blob: 7899175d8db723c7c8866771a055419165e4379b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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