Improve test coverage
Add missing tests to fully cover the BaseControl codebase (execution coverage). The only missing pieces are now uuid and os.clock coverage. Importantly, these changes do not guarantee full coverage of failure modes - but at least more possible failures are covered now.
This commit is contained in:
parent
d2a1a8ebe5
commit
c4e0d9dfe7
4 changed files with 50 additions and 4 deletions
|
|
@ -68,6 +68,32 @@ function test.clean_network2()
|
|||
end, "unknown")
|
||||
end
|
||||
|
||||
function test.clean_network_listener()
|
||||
local bc1 = BaseControl:new()
|
||||
local addr1 = network.get_scene()
|
||||
bc1:register("clnlin1", 1234)
|
||||
bc1:finalize()
|
||||
|
||||
local bc2 = BaseControl:new()
|
||||
local addr2 = network.get_scene()
|
||||
|
||||
local tmp
|
||||
bc2:listen("clnlin1", bc1.Query.Change, function(new)
|
||||
test.equal(tmp, new, "value did not propagate")
|
||||
end)
|
||||
|
||||
network.set_scene(addr1)
|
||||
tmp = 13
|
||||
bc1:set("clnlin1", 13)
|
||||
|
||||
network.set_scene(addr2)
|
||||
bc2:close()
|
||||
|
||||
network.set_scene(addr1)
|
||||
-- if the listener wasn't cleaned properly, this will fail
|
||||
bc1:set("clnlin1", 16)
|
||||
end
|
||||
|
||||
function test.unclean_deregister()
|
||||
local bc = BaseControl:new()
|
||||
local addr = network.get_scene()
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ function test.finalize_robust()
|
|||
serialization.serialize({
|
||||
ty=BaseControl.Message.Register,
|
||||
nouns={"finaln2"},
|
||||
verbs={"finalv2", "finalv3"},
|
||||
})
|
||||
)
|
||||
|
||||
|
|
@ -96,11 +97,14 @@ function test.finalize_robust()
|
|||
BaseControl.Network.default_port,
|
||||
serialization.serialize({
|
||||
ty=BaseControl.Message.Register,
|
||||
nouns={"finaln3"},
|
||||
nouns={"finaln3", "finaln4"},
|
||||
})
|
||||
)
|
||||
|
||||
bc2:finalize{"finaln1", "finaln2", "finaln3"}
|
||||
bc2:finalize{
|
||||
"finaln1", "finaln2", "finaln3",
|
||||
"finaln4", "finalv2", "finalv3",
|
||||
}
|
||||
|
||||
test.is_true(bc2:has_noun("finaln1"), "noun missing")
|
||||
test.is_true(bc2:has_noun("finaln2"), "noun missing")
|
||||
|
|
|
|||
|
|
@ -47,6 +47,11 @@ function test.register()
|
|||
test.error_raised(function()
|
||||
bc:register("register3", 12)
|
||||
end, "already registered")
|
||||
|
||||
bc:register("register4", function() end)
|
||||
test.error_raised(function()
|
||||
bc:register("register4", function() end)
|
||||
end, "already registered")
|
||||
end
|
||||
|
||||
function test.register_batch()
|
||||
|
|
@ -143,13 +148,18 @@ function test.call_verb()
|
|||
end)
|
||||
bc:finalize()
|
||||
|
||||
bc:call("call1", 1, 2)
|
||||
local ret = bc:call("call1", 1, 2)
|
||||
test.equal(3, flag1, "call failed")
|
||||
test.equal(1, flag2, "call failed")
|
||||
test.equal(true, ret, "call not attempted")
|
||||
|
||||
bc:call("call1", 10, 10)
|
||||
local ret = bc:call("call1", 10, 10)
|
||||
test.equal(20, flag1, "call failed")
|
||||
test.equal(2, flag2, "call failed")
|
||||
test.equal(true, ret, "call not attempted")
|
||||
|
||||
local ret = bc:call("call2", 1, 2, 3)
|
||||
test.equal(false, ret, "call erroneously attempted")
|
||||
end
|
||||
|
||||
function test.has_iter_verbs()
|
||||
|
|
|
|||
|
|
@ -64,6 +64,9 @@ function test.call_sync()
|
|||
test.equal(40, ret, "local sync not correct")
|
||||
test.equal("hello", val, "local sync not multiple")
|
||||
test.equal(2, n, "wrong invokation number")
|
||||
test.error_raised(function()
|
||||
bc1:call_sync("sync404", 1, 2, 3)
|
||||
end, "unknown verb")
|
||||
|
||||
-- Test remote
|
||||
local bc2 = BaseControl:new()
|
||||
|
|
@ -72,4 +75,7 @@ function test.call_sync()
|
|||
test.equal(40, ret, "local sync not correct")
|
||||
test.equal("hello", val, "local sync not multiple")
|
||||
test.equal(4, n, "wrong invokation number")
|
||||
test.error_raised(function()
|
||||
bc2:call_sync("sync404", 1, 2, 3)
|
||||
end, "unknown verb")
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue