This moves the Initial metadata write into the constructor, like Backend expects.
Signed-off-by: Dylan Baker <[email protected]> --- framework/programs/run.py | 18 +++++++++--------- framework/results.py | 7 +++++-- framework/tests/results_tests.py | 8 +++++++- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/framework/programs/run.py b/framework/programs/run.py index 873b252..c7aa789 100644 --- a/framework/programs/run.py +++ b/framework/programs/run.py @@ -208,12 +208,6 @@ def run(input_): else: results.name = path.basename(args.results_path) - # Begin json. - result_filepath = path.join(args.results_path, 'results.json') - json_writer = framework.results.JSONWriter( - result_filepath, - file_fsync=opts.sync) - # Create a dictionary to pass to initialize json, it needs the contents of # the env dictionary and profile and platform information options = {'profile': args.test_profile} @@ -223,7 +217,13 @@ def run(input_): options['platform'] = args.platform options['name'] = results.name options['env'] = core.collect_system_info() - json_writer.initialize_json(options) + + # Begin json. + result_filepath = path.join(args.results_path, 'results.json') + json_writer = framework.results.JSONWriter( + result_filepath, + options, + file_fsync=opts.sync) profile = framework.profile.merge_test_profiles(args.test_profile) profile.results_dir = args.results_path @@ -269,11 +269,11 @@ def resume(input_): opts.env['PIGLIT_PLATFORM'] = results.options['platform'] + results.options['env'] = core.collect_system_info() results_path = path.join(args.results_path, 'results.json') json_writer = framework.results.JSONWriter(results_path, + results.options, file_fsync=opts.sync) - results.options['env'] = core.collect_system_info() - json_writer.initialize_json(results.options) for key, value in results.tests.iteritems(): json_writer.write_dict_item(key, value) diff --git a/framework/results.py b/framework/results.py index c24ce52..0b69f9d 100644 --- a/framework/results.py +++ b/framework/results.py @@ -176,7 +176,7 @@ class JSONWriter(object): INDENT = 4 - def __init__(self, f, file_fsync=False): + def __init__(self, f, metadata, file_fsync=False): self.file = open(f, 'w') self.fsync = file_fsync self.__indent_level = 0 @@ -207,7 +207,10 @@ class JSONWriter(object): # is popped and written into the json self._open_containers = [] - def initialize_json(self, metadata): + # Write initial metadata into the backend store + self._initialize(metadata) + + def _initialize(self, metadata): """ Write boilerplate json code This writes all of the json except the actual tests. diff --git a/framework/tests/results_tests.py b/framework/tests/results_tests.py index 75ca01f..778882c 100644 --- a/framework/tests/results_tests.py +++ b/framework/tests/results_tests.py @@ -29,6 +29,12 @@ import framework.results as results import framework.status as status +BACKEND_INITIAL_META = { + 'name': 'name', + 'env': {}, +} + + def check_initialize(target): """ Check that a class initializes without error """ func = target() @@ -62,7 +68,7 @@ def test_initialize_jsonwriter(): """ with utils.with_tempfile('') as tfile: - func = results.JSONWriter(tfile, file_fsync=False) + func = results.JSONWriter(tfile, BACKEND_INITIAL_META) assert isinstance(func, results.JSONWriter) -- 2.1.0 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
