aosp12/external/toolchain-utils/crosperf/benchmark_unittest.py

73 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Unit tests for the Crosperf Benchmark class."""
from __future__ import print_function
import inspect
import unittest
from benchmark import Benchmark
class BenchmarkTestCase(unittest.TestCase):
"""Individual tests for the Benchmark class."""
def test_benchmark(self):
# Test creating a benchmark with all the fields filled out.
b1 = Benchmark(
'b1_test', # name
'octane', # test_name
'', # test_args
3, # iterations
False, # rm_chroot_tmp
'record -e cycles', # perf_args
'telemetry_Crosperf', # suite
True) # show_all_results
self.assertTrue(b1.suite, 'telemetry_Crosperf')
# Test creating a benchmark field with default fields left out.
b2 = Benchmark(
'b2_test', # name
'octane', # test_name
'', # test_args
3, # iterations
False, # rm_chroot_tmp
'record -e cycles') # perf_args
self.assertEqual(b2.suite, '')
self.assertFalse(b2.show_all_results)
# Test explicitly creating 'suite=Telemetry' and 'show_all_results=False"
# and see what happens.
b3 = Benchmark(
'b3_test', # name
'octane', # test_name
'', # test_args
3, # iterations
False, # rm_chroot_tmp
'record -e cycles', # perf_args
'telemetry', # suite
False) # show_all_results
self.assertTrue(b3.show_all_results)
# Check to see if the args to Benchmark have changed since the last time
# this test was updated.
args_list = [
'self', 'name', 'test_name', 'test_args', 'iterations', 'rm_chroot_tmp',
'perf_args', 'suite', 'show_all_results', 'retries', 'run_local',
'cwp_dso', 'weight'
]
arg_spec = inspect.getfullargspec(Benchmark.__init__)
self.assertEqual(len(arg_spec.args), len(args_list))
for arg in args_list:
self.assertIn(arg, arg_spec.args)
if __name__ == '__main__':
unittest.main()