def testGeneratePerformanceTestSuiteWebview(self):
        swarming_dimensions = [{'os': 'SkyNet', 'pool': 'T-RIP'}]
        test_config = {
            'platform': 'android-webview',
            'dimension': swarming_dimensions,
        }
        test = {
            'isolate':
            'performance_test_suite',
            'extra_args': [
                '--run-ref-build',
                '--test-shard-map-filename=shard_map.json',
            ],
            'num_shards':
            26
        }
        returned_test = perf_data_generator.generate_performance_test(
            test_config, test)

        expected_generated_test = {
            'override_compile_targets': ['performance_test_suite'],
            'isolate_name':
            'performance_test_suite',
            'args': [
                '-v', '--browser=android-webview', '--upload-results',
                '--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk',
                '--run-ref-build', '--test-shard-map-filename=shard_map.json'
            ],
            'trigger_script': {
                'args': ['--multiple-dimension-script-verbose', 'True'],
                'script': '//testing/trigger_scripts/perf_device_trigger.py'
            },
            'merge': {
                'args': [
                    '--service-account-file',
                    '/creds/service_accounts/service-account-chromium-perf-histograms.json'
                ],
                'script':
                '//tools/perf/process_perf_results.py'
            },
            'swarming': {
                'ignore_task_failure': False,
                'can_use_on_swarming_builders': True,
                'expiration': 21600,
                'io_timeout': 1800,
                'hard_timeout': 25200,
                'upload_test_results': True,
                'dimension_sets': [[{
                    'os': 'SkyNet',
                    'pool': 'T-RIP'
                }]],
                'shards': 26
            },
            'name':
            'performance_test_suite'
        }
        self.assertEquals(returned_test, expected_generated_test)
    def testGeneratePerformanceTestSuite(self):
        swarming_dimensions = [{'os': 'SkyNet', 'pool': 'T-RIP'}]
        test_config = {
            'platform': 'android',
            'dimension': swarming_dimensions,
        }
        test = {
            'isolate':
            'performance_test_suite',
            'extra_args': [
                '--run-ref-build',
                '--test-shard-map-filename=shard_map.json',
            ],
            'num_shards':
            26
        }
        returned_test = perf_data_generator.generate_performance_test(
            test_config, test)

        expected_generated_test = {
            'override_compile_targets': ['performance_test_suite'],
            'isolate_name':
            'performance_test_suite',
            'args': [
                '-v', '--browser=android-chromium', '--upload-results',
                '--run-ref-build', '--test-shard-map-filename=shard_map.json'
            ],
            'trigger_script': {
                'args': ['--multiple-dimension-script-verbose', 'True'],
                'requires_simultaneous_shard_dispatch': True,
                'script': '//testing/trigger_scripts/perf_device_trigger.py'
            },
            'merge': {
                'script': '//tools/perf/process_perf_results.py'
            },
            'swarming': {
                'ignore_task_failure': False,
                'can_use_on_swarming_builders': True,
                'expiration': 7200,
                'io_timeout': 1800,
                'hard_timeout': 36000,
                'dimension_sets': [[{
                    'os': 'SkyNet',
                    'pool': 'T-RIP'
                }]],
                'shards': 26
            },
            'name':
            'performance_test_suite'
        }
        self.assertEquals(returned_test, expected_generated_test)
    def testGenerateCPlusPlusTestSuite(self):
        swarming_dimensions = [{'os': 'SkyNet', 'pool': 'T-RIP'}]
        test_config = {
            'platform': 'win',
            'dimension': swarming_dimensions,
        }
        test = {
            'isolate': 'angle_perftest',
            'telemetry': False,
            'num_shards': 1
        }
        returned_test = perf_data_generator.generate_performance_test(
            test_config, test)

        expected_generated_test = {
            'override_compile_targets': ['angle_perftest'],
            'isolate_name':
            'angle_perftest',
            'args': [
                '--gtest-benchmark-name', 'angle_perftest',
                '--non-telemetry=true', '--migrated-test=true'
            ],
            'trigger_script': {
                'args': ['--multiple-dimension-script-verbose', 'True'],
                'script': '//testing/trigger_scripts/perf_device_trigger.py'
            },
            'merge': {
                'args': [
                    '--service-account-file',
                    'C:\\creds\\service_accounts\\service-account-chromium-perf-histograms.json'
                ],
                'script':
                '//tools/perf/process_perf_results.py'
            },
            'swarming': {
                'ignore_task_failure': False,
                'can_use_on_swarming_builders': True,
                'expiration': 21600,
                'io_timeout': 1800,
                'hard_timeout': 25200,
                'upload_test_results': True,
                'dimension_sets': [[{
                    'os': 'SkyNet',
                    'pool': 'T-RIP'
                }]],
                'shards': 1
            },
            'name':
            'angle_perftest'
        }
        self.assertEquals(returned_test, expected_generated_test)
    def testGenerateCPlusPlusTestSuite(self):
        swarming_dimensions = [{'os': 'SkyNet', 'pool': 'T-RIP'}]
        test_config = {
            'platform': 'win',
            'dimension': swarming_dimensions,
        }
        test = {
            'isolate': 'angle_perftest',
            'num_shards': 1,
            'type': perf_data_generator.TEST_TYPES.GTEST,
        }
        returned_test = perf_data_generator.generate_performance_test(
            test_config, test)

        expected_generated_test = {
            'override_compile_targets': ['angle_perftest'],
            'isolate_name': 'angle_perftest',
            'args': ['--gtest-benchmark-name', 'angle_perftest'],
            'trigger_script': {
                'args': ['--multiple-dimension-script-verbose', 'True'],
                'requires_simultaneous_shard_dispatch': True,
                'script': '//testing/trigger_scripts/perf_device_trigger.py'
            },
            'merge': {
                'script': '//tools/perf/process_perf_results.py'
            },
            'swarming': {
                'ignore_task_failure': False,
                'can_use_on_swarming_builders': True,
                'expiration': 7200,
                'io_timeout': 1800,
                'hard_timeout': 36000,
                'dimension_sets': [[{
                    'os': 'SkyNet',
                    'pool': 'T-RIP'
                }]],
                'shards': 1
            },
            'name': 'angle_perftest'
        }
        self.assertEquals(returned_test, expected_generated_test)