[autotest] Delete client/tests/kvm and related dead code.
This deletes code related to kernel tests for KVM (N.B. _not_ the
Chrome OS tests that run inside KVM in the builders), as well as
various client-side libraries that become dead after the deletion.
BUG=None
TEST=Run push_to_prod suite on a local instance
Change-Id: I6cb49f7c0eac5da07c27112071e0effda69f2a7a
Reviewed-on: https://chromium-review.googlesource.com/340243
Commit-Ready: Richard Barnette <[email protected]>
Tested-by: Richard Barnette <[email protected]>
Reviewed-by: Kevin Cheng <[email protected]>
Reviewed-by: Dan Shi <[email protected]>
diff --git a/client/common_lib/error.py b/client/common_lib/error.py
index 848c7d6..8c90bdf 100644
--- a/client/common_lib/error.py
+++ b/client/common_lib/error.py
@@ -4,14 +4,13 @@
Internal global error types
"""
-import sys, traceback, threading
+import sys, traceback
from traceback import format_exception
# Add names you want to be imported by 'from errors import *' to this list.
# This must be list not a tuple as we modify it to include all of our
# the Exception classes we define below at the end of this file.
-__all__ = ['format_error', 'context_aware', 'context', 'get_context',
- 'exception_context']
+__all__ = ['format_error']
def format_error():
@@ -24,142 +23,6 @@
return ''.join(trace)
-# Exception context information:
-# ------------------------------
-# Every function can have some context string associated with it.
-# The context string can be changed by calling context(str) and cleared by
-# calling context() with no parameters.
-# get_context() joins the current context strings of all functions in the
-# provided traceback. The result is a brief description of what the test was
-# doing in the provided traceback (which should be the traceback of a caught
-# exception).
-#
-# For example: assume a() calls b() and b() calls c().
-#
-# @error.context_aware
-# def a():
-# error.context("hello")
-# b()
-# error.context("world")
-# error.get_context() ----> 'world'
-#
-# @error.context_aware
-# def b():
-# error.context("foo")
-# c()
-#
-# @error.context_aware
-# def c():
-# error.context("bar")
-# error.get_context() ----> 'hello --> foo --> bar'
-#
-# The current context is automatically inserted into exceptions raised in
-# context_aware functions, so usually test code doesn't need to call
-# error.get_context().
-
-ctx = threading.local()
-
-
-def _new_context(s=""):
- if not hasattr(ctx, "contexts"):
- ctx.contexts = []
- ctx.contexts.append(s)
-
-
-def _pop_context():
- ctx.contexts.pop()
-
-
-def context(s="", log=None):
- """
- Set the context for the currently executing function and optionally log it.
-
- @param s: A string. If not provided, the context for the current function
- will be cleared.
- @param log: A logging function to pass the context message to. If None, no
- function will be called.
- """
- ctx.contexts[-1] = s
- if s and log:
- log("Context: %s" % get_context())
-
-
-def base_context(s="", log=None):
- """
- Set the base context for the currently executing function and optionally
- log it. The base context is just another context level that is hidden by
- default. Functions that require a single context level should not use
- base_context().
-
- @param s: A string. If not provided, the base context for the current
- function will be cleared.
- @param log: A logging function to pass the context message to. If None, no
- function will be called.
- """
- ctx.contexts[-1] = ""
- ctx.contexts[-2] = s
- if s and log:
- log("Context: %s" % get_context())
-
-
-def get_context():
- """Return the current context (or None if none is defined)."""
- if hasattr(ctx, "contexts"):
- return " --> ".join([s for s in ctx.contexts if s])
-
-
-def exception_context(e):
- """Return the context of a given exception (or None if none is defined)."""
- if hasattr(e, "_context"):
- return e._context # pylint: disable=W0212
-
-
-def set_exception_context(e, s):
- """Set the context of a given exception."""
- e._context = s
-
-
-def join_contexts(s1, s2):
- """Join two context strings."""
- if s1:
- if s2:
- return "%s --> %s" % (s1, s2)
- else:
- return s1
- else:
- return s2
-
-
-def context_aware(fn):
- """A decorator that must be applied to functions that call context()."""
- def new_fn(*args, **kwargs):
- _new_context()
- _new_context("(%s)" % fn.__name__)
- try:
- try:
- return fn(*args, **kwargs)
- except Exception, e:
- if not exception_context(e):
- set_exception_context(e, get_context())
- raise
- finally:
- _pop_context()
- _pop_context()
- new_fn.__name__ = fn.__name__
- new_fn.__doc__ = fn.__doc__
- new_fn.__dict__.update(fn.__dict__)
- return new_fn
-
-
-def _context_message(e):
- s = exception_context(e)
- if s:
- return " [context: %s]" % s
- else:
- return ""
-
-
-
class TimeoutException(Exception):
"""
Generic exception raised on retry timeouts.
@@ -180,7 +43,7 @@
class AutotestError(Exception):
"""The parent of all errors deliberatly thrown within the client code."""
def __str__(self):
- return Exception.__str__(self) + _context_message(self)
+ return Exception.__str__(self)
class JobError(AutotestError):
@@ -199,8 +62,6 @@
msg = "Unhandled %s: %s"
msg %= (unhandled_exception.__class__.__name__,
unhandled_exception)
- if not isinstance(unhandled_exception, AutotestError):
- msg += _context_message(unhandled_exception)
msg += "\n" + traceback.format_exc()
JobError.__init__(self, msg)
@@ -250,8 +111,6 @@
msg = "Unhandled %s: %s"
msg %= (unhandled_exception.__class__.__name__,
unhandled_exception)
- if not isinstance(unhandled_exception, AutotestError):
- msg += _context_message(unhandled_exception)
msg += "\n" + traceback.format_exc()
TestError.__init__(self, msg)
@@ -267,8 +126,6 @@
msg = "Unhandled %s: %s"
msg %= (unhandled_exception.__class__.__name__,
unhandled_exception)
- if not isinstance(unhandled_exception, AutotestError):
- msg += _context_message(unhandled_exception)
msg += "\n" + traceback.format_exc()
TestFail.__init__(self, msg)
@@ -291,7 +148,6 @@
if self.additional_text:
msg += ", " + self.additional_text
- msg += _context_message(self)
msg += '\n' + repr(self.result_obj)
return msg