When two json results have the same "name" value in the root of the json dictionary, piglit will try to create two directories with the same name. In this event an OSError will be raised to the top level exception handler, resulting in a bug warning.
This patch raises an expected error, giving the user advice on resolving the issue. Signed-off-by: Dylan Baker <[email protected]> --- framework/summary.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/framework/summary.py b/framework/summary.py index 14eaf05..ecd59f1 100644 --- a/framework/summary.py +++ b/framework/summary.py @@ -31,13 +31,14 @@ import re import getpass import sys import posixpath +import errno from mako.template import Template # a local variable status exists, prevent accidental overloading by renaming # the module import framework.status as so -from framework import grouptools, backends +from framework import grouptools, backends, exceptions __all__ = [ 'Summary', @@ -475,7 +476,17 @@ class Summary: # Iterate across the tests creating the various test specific files for each in self.results: name = escape_pathname(each.name) - os.mkdir(path.join(destination, name)) + try: + os.mkdir(path.join(destination, name)) + except OSError as e: + if e.errno == errno.EEXIST: + raise exceptions.PiglitFatalError( + 'Two or more of your results have the same "name" ' + 'attribute. Try changing one or more of the "name" ' + 'values in your json files.\n' + 'Duplicate value: {}'.format(name)) + else: + raise e if each.time_elapsed is not None: time = datetime.timedelta(0, each.time_elapsed) -- 2.4.2 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
