[Piglit] [PATCH] framework; Catch "No results found" exception
Dylan Baker
baker.dylan.c at gmail.com
Mon Mar 23 15:22:13 PDT 2015
This adds a couple of catches for results not found and cleanly exits
without a traceback when this is an expected error condition.
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
framework/programs/summary.py | 12 ++++++++++--
framework/results.py | 7 ++++++-
framework/summary.py | 6 +++++-
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/framework/programs/summary.py b/framework/programs/summary.py
index 8aaf709..b596fe9 100644
--- a/framework/programs/summary.py
+++ b/framework/programs/summary.py
@@ -156,7 +156,11 @@ def csv(input_):
help="JSON results file to be converted")
args = parser.parse_args(input_)
- testrun = framework.results.load_results(args.testResults)
+ try:
+ testrun = framework.results.load_results(args.testResults)
+ except framework.results.ResultsLoadError as e:
+ print('Error: {}'.format(e.message), file=sys.stderr)
+ sys.exit(1)
def write_results(output):
for name, result in testrun.tests.iteritems():
@@ -186,7 +190,11 @@ def aggregate(input_):
assert os.path.isdir(args.results_folder)
outfile = os.path.join(args.results_folder, args.output)
- results = framework.results.load_results(args.results_folder)
+ try:
+ results = framework.results.load_results(args.results_folder)
+ except framework.results.ResultsLoadError as e:
+ print('Error: {}'.format(e.message), file=sys.stderr)
+ sys.exit(1)
try:
results.write(outfile)
diff --git a/framework/results.py b/framework/results.py
index 3b8fc67..497c1c2 100644
--- a/framework/results.py
+++ b/framework/results.py
@@ -36,12 +36,17 @@ from framework.backends import (CURRENT_JSON_VERSION, piglit_encoder,
JSONBackend)
__all__ = [
+ 'ResultsLoadError',
'TestrunResult',
'TestResult',
'load_results',
]
+class ResultsLoadError(Exception):
+ pass
+
+
class TestResult(dict):
def recursive_update(self, dictionary):
""" Recursively update the TestResult
@@ -214,7 +219,7 @@ def load_results(filename):
elif os.path.exists(os.path.join(filename, 'main')):
filepath = os.path.join(filename, 'main')
else:
- raise Exception("No results found")
+ raise ResultsLoadError('No results found in "{}"'.format(filename))
with open(filepath, 'r') as f:
testrun = TestrunResult.load(f)
diff --git a/framework/summary.py b/framework/summary.py
index 848486a..d709870 100644
--- a/framework/summary.py
+++ b/framework/summary.py
@@ -301,7 +301,11 @@ class Summary:
# Create a Result object for each piglit result and append it to the
# results list
- self.results = [framework.results.load_results(i) for i in resultfiles]
+ try:
+ self.results = [framework.results.load_results(i) for i in resultfiles]
+ except framework.results.ResultsLoadError as e:
+ print('Error: {}'.format(e.message), file=sys.stderr)
+ sys.exit(1)
self.status = {}
self.fractions = {}
--
2.3.3
More information about the Piglit
mailing list