diff --git a/contrib/teamcity/nanobench_json_to_teamcity_messages.py b/contrib/teamcity/nanobench_json_to_teamcity_messages.py index 9d33e8f65..cfb5a8976 100755 --- a/contrib/teamcity/nanobench_json_to_teamcity_messages.py +++ b/contrib/teamcity/nanobench_json_to_teamcity_messages.py @@ -1,84 +1,84 @@ #!/usr/bin/env python3 # Copyright (c) 2021 The Bitcoin developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. from datetime import timedelta import json import sys from teamcity.messages import TeamcityServiceMessages if len(sys.argv) != 3: print( """ Usage: {} Print the teamcity service messages for associating op/s benchmark result to the tests. Requires the teamcity-messages python library: pip3 install teamcity-messages """.format(sys.argv[0])) sys.exit(1) suite_name = sys.argv[1] with open(sys.argv[2], encoding='utf-8') as f: json_results = json.load(f) teamcity_messages = TeamcityServiceMessages() teamcity_messages.testSuiteStarted( suite_name ) -def testMeta_number_message(test_name, param_name, param_value): +def testMetadata_number_message(test_name, param_name, param_value): teamcity_messages.message( - 'testMeta', + 'testMetadata', type='number', testName=test_name, name=param_name, value='{:.2f}'.format(param_value), ) for result in json_results.get('results', []): test_name = result['name'] teamcity_messages.testStarted( test_name ) - testMeta_number_message( + testMetadata_number_message( test_name, 'ns/{}'.format(result['unit']), 1e9 * result['median(elapsed)'] / result['batch'], ) - testMeta_number_message( + testMetadata_number_message( test_name, '{}/s'.format(result['unit']), result['batch'] / result['median(elapsed)'], ) - testMeta_number_message( + testMetadata_number_message( test_name, 'err%', 100 * result['medianAbsolutePercentError(elapsed)'], ) - testMeta_number_message( + testMetadata_number_message( test_name, 'ins/{}'.format(result['unit']), result['median(instructions)'] / result['batch'], ) teamcity_messages.testFinished( test_name, testDuration=timedelta(seconds=result['totalTime']), ) teamcity_messages.testSuiteFinished( suite_name )