test-menubar.lua: Filter calls to gears.debug.print_error

A test counts as having failed if it prints any error. However, the
search path can very well contain non-existing directories which are not
a problem. Thus, handle this by monkey-patching gears.debug.print_error.

Ref: https://github.com/awesomeWM/awesome/pull/1872#issuecomment-311224439
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2017-06-27 08:54:03 +02:00
parent 6d5cf6cdbb
commit 914b4b7c8b
1 changed files with 14 additions and 7 deletions

View File

@ -14,6 +14,20 @@ if _VERSION == "Lua 5.3" or debug.gethook() then
return
end
-- Make sure no error messages for non-existing directories are printed. If the
-- word "error" appears in our output, the test is considered to have failed.
do
local gdebug = require("gears.debug")
local orig_error = gdebug.print_error
function gdebug.print_error(msg)
msg = tostring(msg)
if (msg ~= "Error opening directory '/dev/null/.local/share/applications': Not a directory") and
(not msg:match("No such file or directory")) then
orig_error(msg)
end
end
end
runner.run_steps {
function(count)
-- Just show the menubar and hide it.
@ -21,13 +35,6 @@ runner.run_steps {
-- nothing (and tells us when errors are thrown).
if count == 1 then
-- Remove the entry for $HOME/.... from the search path. We run with
-- HOME=/dev/null and this would cause an error message to be
-- printed which would be interpreted as the test failing
local entry = menubar.menu_gen.all_menu_dirs[1]
assert(string.find(entry, "/dev/null"), entry)
table.remove(menubar.menu_gen.all_menu_dirs, 1)
menubar.show()
end