| #!/usr/bin/env python |
| # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Schema of the JSON summary file written out by the GM tool. |
| |
| This must be kept in sync with the kJsonKey_ constants in gm_expectations.cpp ! |
| """ |
| |
| __author__ = 'Elliot Poger' |
| |
| |
| # system-level imports |
| import json |
| |
| |
| # These constants must be kept in sync with the kJsonKey_ constants in |
| # gm_expectations.cpp ! |
| JSONKEY_ACTUALRESULTS = 'actual-results' |
| JSONKEY_ACTUALRESULTS_FAILED = 'failed' |
| JSONKEY_ACTUALRESULTS_FAILUREIGNORED = 'failure-ignored' |
| JSONKEY_ACTUALRESULTS_NOCOMPARISON = 'no-comparison' |
| JSONKEY_ACTUALRESULTS_SUCCEEDED = 'succeeded' |
| |
| def LoadFromString(file_contents): |
| """Loads the JSON summary written out by the GM tool. |
| Returns a dictionary keyed by the values listed as JSONKEY_ constants |
| above.""" |
| # TODO(epoger): we should add a version number to the JSON file to ensure |
| # that the writer and reader agree on the schema (raising an exception |
| # otherwise). |
| json_dict = json.loads(file_contents) |
| return json_dict |
| |
| def LoadFromFile(file_path): |
| """Loads the JSON summary written out by the GM tool. |
| Returns a dictionary keyed by the values listed as JSONKEY_ constants |
| above.""" |
| file_contents = open(file_path, 'r').read() |
| return LoadFromString(file_contents) |