14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)# found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)"""Setup for linker tests.""" 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import os 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import sys 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import types 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import test_case 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import test_runner 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)from pylib import constants 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)sys.path.insert(0, 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) os.path.join(constants.DIR_SOURCE_ROOT, 'build', 'util', 'lib', 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 'common')) 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)import unittest_util 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)def Setup(options, devices): 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) """Creates a list of test cases and a runner factory. 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) Returns: 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) A tuple of (TestRunnerFactory, tests). 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) """ 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) test_cases = [ 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) test_case.LinkerLibraryAddressTest, 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) test_case.LinkerSharedRelroTest, 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) test_case.LinkerRandomizationTest ] 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) low_memory_modes = [False, True] 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) all_tests = [t(is_low_memory=m) for t in test_cases for m in low_memory_modes] 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if options.test_filter: 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) all_test_names = [ test.qualified_name for test in all_tests ] 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) filtered_test_names = unittest_util.FilterTestNames(all_test_names, 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) options.test_filter) 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) all_tests = [t for t in all_tests \ 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if t.qualified_name in filtered_test_names] 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) def TestRunnerFactory(device, shard_index): 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return test_runner.LinkerTestRunner( 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) device, options.tool, options.push_deps, 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) options.cleanup_test_files) 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return (TestRunnerFactory, all_tests) 48