awesome/tests/test-dbus-error.lua
Uli Schlachter 75ed165ae6 Test & fix a bug with dbus.disconnect_signal (#1096)
The code was written so that it assumes that disconnecting the last signal also
removed the corresponding entry in the signal array. This lead e.g. to an
index-out-of-bounds access in some cases.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-09-18 12:50:40 +02:00

35 lines
851 B
Lua

local runner = require("_runner")
local awful = require("awful")
local calls_done = 0
local function dbus_callback(data)
assert(data.member == "Ping")
calls_done = calls_done + 1
end
dbus.request_name("session", "org.awesomewm.test")
-- Yup, we had a bug that made the following not work
dbus.connect_signal("org.awesomewm.test", dbus_callback)
dbus.disconnect_signal("org.awesomewm.test", dbus_callback)
dbus.connect_signal("org.awesomewm.test", dbus_callback)
for _=1, 2 do
awful.spawn({
"dbus-send",
"--dest=org.awesomewm.test",
"--type=method_call",
"/",
"org.awesomewm.test.Ping",
"string:foo"
})
end
runner.run_steps({ function()
if calls_done >= 2 then
return true
end
end })
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80