Log X errors

This commit is contained in:
Thibault Jouan 2015-04-19 05:10:14 +00:00
parent 02861a63d4
commit 036ca1f989
3 changed files with 23 additions and 1 deletions

View File

@ -0,0 +1,17 @@
Feature: X errors logging
Scenario: logs error details
Given a file named layout.rb with:
"""
class Layout
def register _; end
# Focusing a client before mapping will force an error
def << client
client.focus
end
end
"""
And uhwm is running with options -v -r./layout -l Layout
When a window requests to be mapped
Then the output must match /x.*error.+x_setinputfocus.+/i

View File

@ -69,7 +69,7 @@ module Uh
private
def handle_error *args
@dispatcher.emit :error, args: args
@events.emit :xerror, args: args
end
def handle_key_press event

View File

@ -101,6 +101,7 @@ module Uh
end
@events.on(:disconnected) { log "Disconnected from X server" }
@events.on(:xevent) { |event| XEventLogger.new(env).log_event event }
@events.on(:xerror) { |*error| XEventLogger.new(env).log_xerror *error }
end
def register_layout_hooks
@ -143,6 +144,10 @@ module Uh
complement
].compact.join ' '
end
def log_xerror req, resource_id, msg
log_error "XERROR: #{resource_id} #{req} #{msg}"
end
end
end
end