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()