Add support for tests on the server side
Signed-off-by: Martin J. Bligh <mbligh@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@807 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/error.py b/server/error.py
new file mode 100755
index 0000000..8ea71c0
--- /dev/null
+++ b/server/error.py
@@ -0,0 +1,41 @@
+"""
+Internal global error types
+"""
+
+import sys
+from traceback import format_exception
+
+def format_error():
+ t, o, tb = sys.exc_info()
+ trace = format_exception(t, o, tb)
+ # Clear the backtrace to prevent a circular reference
+ # in the heap -- as per tutorial
+ tb = ''
+
+ return ''.join(trace)
+
+class JobContinue(SystemExit):
+ """Allow us to bail out requesting continuance."""
+ pass
+
+class AutotestError(Exception):
+ """The parent of all errors deliberatly thrown within the client code."""
+ pass
+
+class JobError(AutotestError):
+ """Indicates an error which terminates and fails the whole job."""
+ pass
+
+class TestError(AutotestError):
+ """Indicates an error which terminates and fails the test."""
+ pass
+
+class CmdError(TestError):
+ """Indicates that a command failed, is fatal to the test unless caught."""
+ def __str__(self):
+ return "Command <" + self.args[0] + "> failed, rc=%d" % (self.args[1])
+
+class UnhandledError(TestError):
+ """Indicates an unhandled exception in a test."""
+ def __init__(self, prefix):
+ self.args = prefix + format_error()