#!/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()