diff --git a/bc.lua b/bc.lua index 86fbf242f9e5..3e9c75739aa8 100644 --- a/bc.lua +++ b/bc.lua @@ -185,19 +185,19 @@ function BaseControl:get(noun, timeout) ty=Message.NounRequest, noun=noun, }) - local answer, err = self.network:pull(function(remote, msg) + local answer = self.network:pull(function(remote, msg) if remote ~= self.remote_nouns[noun] then return false end if msg.ty ~= Message.NounResponse then return false end if msg.noun ~= noun then return false end return true end, timeout) - if answer == nil then - return nil, err - else + if answer ~= nil then return answer.value + else + error("timeout") end else - return nil, "noun \""..noun.."\" unknown" + return error("unknown") end end @@ -247,8 +247,6 @@ function BaseControl:call(verb, ...) verb=verb, param={...}, }) - else - error("unknown verb") end end @@ -262,7 +260,7 @@ function BaseControl:call_sync(verb, ...) param={...}, sync=true, }) - local answer, err = self.network:pull(function(remote, msg) + local answer = self.network:pull(function(remote, msg) if remote ~= self.remote_verbs[verb] then return false end if msg.ty ~= Message.VerbResponse then return false end if msg.verb ~= verb then return false end @@ -271,10 +269,10 @@ function BaseControl:call_sync(verb, ...) if answer ~= nil then return table.unpack(answer.ret) else - return nil, err + error("timeout") end else - error("unknown verb") + error("unknown") end end -- }}} diff --git a/tests/dirty.lua b/tests/dirty.lua index dee3f6e64190..b01f098fe5ae 100644 --- a/tests/dirty.lua +++ b/tests/dirty.lua @@ -26,7 +26,9 @@ function test_get_network_robust() ) assert_equal(123, bc2:get("getrob1"), "wrong value") - assert_nil(bc2:get("getrob2"), "found non-exisiting") + assert_error_match("unknown", function() + bc2:get("getrob2") + end) end function test_call_sync_network_robust() diff --git a/tests/local.lua b/tests/local.lua index 3ffbd54a8f2b..22e399e7ec01 100644 --- a/tests/local.lua +++ b/tests/local.lua @@ -68,7 +68,9 @@ function test_get() bc:finalize() assert_equal(1234, bc:get("get1"), "wrong value for noun") - assert_equal(nil, bc:get("get2"), "got value for non-exisiting noun") + assert_error_match("unknown", function() + bc:get("get2") + end) assert_error_match("not a noun", function() bc:get("get2v") end) diff --git a/tests/network.lua b/tests/network.lua index 690e95fab29a..29642dd79267 100644 --- a/tests/network.lua +++ b/tests/network.lua @@ -28,7 +28,9 @@ function test_get_network() local bc2 = BaseControl:new() assert_equal(123, bc2:get("getnw1"), "wrong value") - assert_nil(bc2:get("getnw2"), "found non-exisiting") + assert_error_match("unknown", function() + bc2:unknown("getnw2") + end) end function test_call_network()