1 #!/usr/bin/env python 2 3 # Copyright (c) 2012 Google Inc. All rights reserved. 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 7 """ 8 Runs small tests. 9 """ 10 11 import imp 12 import os 13 import sys 14 import unittest 15 16 import TestGyp 17 18 19 test = TestGyp.TestGyp() 20 21 # Add pylib to the import path (so tests can import their dependencies). 22 # This is consistant with the path.append done in the top file "gyp". 23 sys.path.append(os.path.join(test._cwd, 'pylib')) 24 25 # Add new test suites here. 26 files_to_test = [ 27 'pylib/gyp/MSVSSettings_test.py', 28 'pylib/gyp/easy_xml_test.py', 29 'pylib/gyp/generator/msvs_test.py', 30 'pylib/gyp/generator/ninja_test.py', 31 'pylib/gyp/generator/xcode_test.py', 32 'pylib/gyp/common_test.py', 33 'pylib/gyp/input_test.py', 34 ] 35 36 # Collect all the suites from the above files. 37 suites = [] 38 for filename in files_to_test: 39 # Carve the module name out of the path. 40 name = os.path.splitext(os.path.split(filename)[1])[0] 41 # Find the complete module path. 42 full_filename = os.path.join(test._cwd, filename) 43 # Load the module. 44 module = imp.load_source(name, full_filename) 45 # Add it to the list of test suites. 46 suites.append(unittest.defaultTestLoader.loadTestsFromModule(module)) 47 # Create combined suite. 48 all_tests = unittest.TestSuite(suites) 49 50 # Run all the tests. 51 result = unittest.TextTestRunner(verbosity=2).run(all_tests) 52 if result.failures or result.errors: 53 test.fail_test() 54 55 test.pass_test() 56