Include Benchmark Client version information in the result JSON

This part of the JSON schema isn't required yet. When missing, the version
is assumed to be -∞
This commit is contained in:
2018-08-16 14:43:29 +02:00
parent c4139613f8
commit 03ad327ca2
2 changed files with 18 additions and 2 deletions

View File

@@ -223,6 +223,16 @@ def modify_device_info(device_info):
return device_info
def benchmark_client_info() -> dict:
"""Metadata about the Benchmark Client itself."""
from ..version import version
return {
'client_version': version,
}
def benchmark_thread(ctx):
with G.progress_lock:
G.progress_status = "Collecting system information."
@@ -252,7 +262,8 @@ def benchmark_thread(ctx):
"blender_version": system_info.getBlenderVersion(ctx),
"system_info": modify_system_info(blender_system_info),
"device_info": modify_device_info(blender_device_info),
"scenes": all_stats if all_stats else {}
"scenes": all_stats if all_stats else {},
"benchmark_client": benchmark_client_info(),
})
with G.progress_lock:

View File

@@ -11,6 +11,11 @@ from . import timeouts, exceptions, sockutil
log = logging.getLogger(__name__)
# At this moment the Benchmark Client and the Benchmark Farm (farm.py)
# output different JSON schemas.
# TODO(Sybren): unify the JSON schemas and also update parse_results.py for this.
BENCHMARK_SCHEMA_VERSION = 1
class SubmissionResult:
"""Metadata of the submitted benchmark.
@@ -160,7 +165,7 @@ class BenchmarkClient:
payload = {
'data': benchmark_data,
'schema_version': 0,
'schema_version': BENCHMARK_SCHEMA_VERSION,
}
log.info('Submitting benchmark to %s:\n%s', self.url_submit,
json.dumps(payload, sort_keys=True, indent=4))