Currently if one passes a bad directory to `piglit summary aggregate` then piglit will fail with an internal exception. This patch fixes that, catching the exception, and printing a helpful message and closing gracefully.
Signed-off-by: Dylan Baker <[email protected]> --- framework/programs/summary.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/framework/programs/summary.py b/framework/programs/summary.py index b23f1ef..a060b7d 100644 --- a/framework/programs/summary.py +++ b/framework/programs/summary.py @@ -201,7 +201,8 @@ def aggregate(input_): parser.add_argument('results_folder', type=path.realpath, metavar="<results path>", - help="Path to a results folder") + help="Path to a results directory " + "(which contains a tests directory)") parser.add_argument('-o', '--output', default="results.json", help="name of output file. Default: results.json") @@ -209,8 +210,16 @@ def aggregate(input_): assert os.path.isdir(args.results_folder) + # args.results_folder must be a path with a 'tests' directory in it, not + # the tests directory itself. outfile = os.path.join(args.results_folder, args.output) - results = backends.load(args.results_folder) + try: + results = backends.load(args.results_folder) + except backends.BackendError: + raise exceptions.PiglitFatalError( + 'Cannot find a tests directory to aggregate in {}.\n' + 'Are you you sure that you pointed to ' + 'a results directory (not results/tests)?'.format(args.results_folder)) try: # FIXME: This works, it fixes the problem, but it only works because -- 2.7.0 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
