OLD | NEW |
(Empty) | |
| 1 #!/usr/bin/python |
| 2 |
| 3 # Copyright 2014 Google Inc. |
| 4 # |
| 5 # Use of this source code is governed by a BSD-style license that can be |
| 6 # found in the LICENSE file. |
| 7 |
| 8 """ |
| 9 Test generate_user_config.py. |
| 10 """ |
| 11 |
| 12 import argparse |
| 13 import os |
| 14 import shutil |
| 15 import sys |
| 16 import tempfile |
| 17 import test_variables |
| 18 import unittest |
| 19 import utils |
| 20 |
| 21 sys.path.append(test_variables.GYP_GEN_DIR) |
| 22 |
| 23 from generate_user_config import generate_user_config as gen_config |
| 24 |
| 25 # Name of SkUserConfig file. |
| 26 USER_CONFIG_NAME = 'SkUserConfig.h' |
| 27 # Path to unchanging Dummy SkUserConfig file. |
| 28 FULL_DUMMY_PATH = os.path.join(os.path.dirname(__file__), 'inputs', |
| 29 USER_CONFIG_NAME) |
| 30 REBASELINE_MSG = ('If you\'ve modified generate_user_config.py, run ' |
| 31 '"generate_user_config_tests.py --rebaseline" to rebaseline') |
| 32 |
| 33 def generate_dummy_user_config(original_sk_user_config, target_dir): |
| 34 # Add an arbitrary set of defines |
| 35 defines = [ 'SK_BUILD_FOR_ANDROID', |
| 36 'SK_BUILD_FOR_ANDROID_FRAMEWORK', |
| 37 'SK_SCALAR_IS_FLOAT', |
| 38 'foo', |
| 39 'bar' ] |
| 40 gen_config(original_sk_user_config=original_sk_user_config, |
| 41 target_dir=target_dir, ordered_set=defines) |
| 42 |
| 43 |
| 44 class GenUserConfigTest(unittest.TestCase): |
| 45 |
| 46 def test_missing_sk_user_config(self): |
| 47 tmp = tempfile.mkdtemp() |
| 48 original = os.path.join(tmp, 'filename') |
| 49 assert not os.path.exists(original) |
| 50 |
| 51 with self.assertRaises(AssertionError): |
| 52 ordered_set = [ 'define' ] |
| 53 gen_config(original_sk_user_config=original, target_dir=tmp, |
| 54 ordered_set=ordered_set) |
| 55 shutil.rmtree(tmp) |
| 56 |
| 57 def test_gen_config(self): |
| 58 tmp = tempfile.mkdtemp() |
| 59 generate_dummy_user_config(FULL_DUMMY_PATH, tmp) |
| 60 actual_name = os.path.join(tmp, USER_CONFIG_NAME) |
| 61 utils.compare_to_expectation(actual_name=actual_name, |
| 62 expectation_name=USER_CONFIG_NAME, |
| 63 assert_true=self.assertTrue, msg=REBASELINE_MSG) |
| 64 shutil.rmtree(tmp) |
| 65 |
| 66 |
| 67 def main(): |
| 68 loader = unittest.TestLoader() |
| 69 suite = loader.loadTestsFromTestCase(GenUserConfigTest) |
| 70 results = unittest.TextTestRunner(verbosity=2).run(suite) |
| 71 print repr(results) |
| 72 if not results.wasSuccessful(): |
| 73 raise Exception('failed one or more unittests') |
| 74 |
| 75 |
| 76 def rebaseline(): |
| 77 generate_dummy_user_config(FULL_DUMMY_PATH, utils.EXPECTATIONS_DIR) |
| 78 |
| 79 if __name__ == "__main__": |
| 80 parser = argparse.ArgumentParser() |
| 81 parser.add_argument('-r', '--rebaseline', help='Rebaseline expectations.', |
| 82 action='store_true') |
| 83 args = parser.parse_args() |
| 84 |
| 85 if args.rebaseline: |
| 86 rebaseline() |
| 87 else: |
| 88 main() |
| 89 |
OLD | NEW |