[Piglit] [PATCH 2/4] framework/profile: Fail gracefully when reordering of tests fail
Dylan Baker
dylan at pnwbakers.com
Tue May 3 21:59:38 UTC 2016
Currently if a test name is passed that doesn't exist in the first
profile a stack trace will be generated. This isn't necessary, since
it's an expected behavior that reordering fails when asked to order
a test not contained in the profile. Instead just fail gracefully with
a helpful message.
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
framework/profile.py | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/framework/profile.py b/framework/profile.py
index 9bdc720..987873b 100644
--- a/framework/profile.py
+++ b/framework/profile.py
@@ -170,8 +170,15 @@ class TestDict(collections.MutableMapping):
def reorder(self, order):
"""Reorder the TestDict to match the order of the provided list."""
new = collections.OrderedDict()
- for k in order:
- new[k] = self.__container[k]
+ try:
+ for k in order:
+ new[k] = self.__container[k]
+ except KeyError:
+ # If there is a name in order that isn't available in self there
+ # will be a KeyError, this is expected. In this case fail
+ # gracefully and report the error to the user.
+ raise exceptions.PiglitFatalError(
+ 'Cannot reorder test: "{}", it is not in the profile.'.format(k))
self.__container = new
--
2.8.2
More information about the Piglit
mailing list