Home | History | Annotate | Download | only in small
      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