diff options
author | Stephen M. Webb <stephen.webb@canonical.com> | 2011-11-24 11:26:02 -0500 |
---|---|---|
committer | Stephen M. Webb <stephen.webb@canonical.com> | 2011-11-24 11:26:02 -0500 |
commit | 5676022e2acd14d9834e12180702988acf1ef7c6 (patch) | |
tree | 0dae795c10f84f4ad6d624ba30d660d7976acf43 | |
parent | 5b1dd27d40217b0e53e88e240f108501c8970fb3 (diff) |
Further refined test case error detection.
-rw-r--r-- | python/evemu/base.py | 9 | ||||
-rw-r--r-- | python/evemu/device.py | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/python/evemu/base.py b/python/evemu/base.py index 97dfa0e..84e0306 100644 --- a/python/evemu/base.py +++ b/python/evemu/base.py @@ -16,9 +16,16 @@ class EvEmuBase(object): self._lib = ctypes.CDLL(library, use_errno=True) self._libc = ctypes.CDLL(find_library("c"), use_errno=True) + def _call0(self, api_call, *parameters): + result = api_call(*parameters) + if result == 0 and self.get_c_errno() != 0: + raise exception.ExecutionError, "%s: %s" % ( + api_call.__name__, self.get_c_error()) + return result + def _call(self, api_call, *parameters): result = api_call(*parameters) - if result <= 0 and self.get_c_errno() != 0: + if result < 0 and self.get_c_errno() != 0: raise exception.ExecutionError, "%s: %s" % ( api_call.__name__, self.get_c_error()) return result diff --git a/python/evemu/device.py b/python/evemu/device.py index 7c26e75..03d04ac 100644 --- a/python/evemu/device.py +++ b/python/evemu/device.py @@ -159,7 +159,7 @@ class EvEmuDevice(base.EvEmuBase): self._uinput_fd = None def _read(self, filename): - file_pointer = self._call( + file_pointer = self._call0( self.get_c_lib().fopen, filename, "r") self.set_device_file_stream(file_pointer) self._call( @@ -208,7 +208,7 @@ class EvEmuDevice(base.EvEmuBase): def _write(self, filename): # XXX what about writing to stdout? let's do that later; open a bug for # supporting writing to stdout... - file_pointer = self._call( + file_pointer = self._call0( self.get_c_lib().fopen, filename, "w+") self.set_device_file_stream(file_pointer) self._call( |