summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen M. Webb <stephen.webb@canonical.com>2011-11-24 11:26:02 -0500
committerStephen M. Webb <stephen.webb@canonical.com>2011-11-24 11:26:02 -0500
commit5676022e2acd14d9834e12180702988acf1ef7c6 (patch)
tree0dae795c10f84f4ad6d624ba30d660d7976acf43
parent5b1dd27d40217b0e53e88e240f108501c8970fb3 (diff)
Further refined test case error detection.
-rw-r--r--python/evemu/base.py9
-rw-r--r--python/evemu/device.py4
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(