32 """Tests the --help flag of Google C++ Testing and Mocking Framework.
35 gtest_help_test.py --build_dir=BUILD/DIR
36 # where BUILD/DIR contains the built gtest_help_test_ file.
42 import gtest_test_utils
45 IS_LINUX = os.name ==
'posix' and os.uname()[0] ==
'Linux'
46 IS_WINDOWS = os.name ==
'nt'
49 FLAG_PREFIX =
'--gtest_'
50 DEATH_TEST_STYLE_FLAG = FLAG_PREFIX +
'death_test_style'
51 STREAM_RESULT_TO_FLAG = FLAG_PREFIX +
'stream_result_to'
52 UNKNOWN_FLAG = FLAG_PREFIX +
'unknown_flag_for_testing'
53 LIST_TESTS_FLAG = FLAG_PREFIX +
'list_tests'
54 INCORRECT_FLAG_VARIANTS = [re.sub(
'^--',
'-', LIST_TESTS_FLAG),
55 re.sub(
'^--',
'/', LIST_TESTS_FLAG),
56 re.sub(
'_',
'-', LIST_TESTS_FLAG)]
57 INTERNAL_FLAG_FOR_TESTING = FLAG_PREFIX +
'internal_flag_for_testing'
60 [PROGRAM_PATH, LIST_TESTS_FLAG]).output
63 HELP_REGEX = re.compile(
64 FLAG_PREFIX +
r'list_tests.*' +
65 FLAG_PREFIX +
r'filter=.*' +
66 FLAG_PREFIX +
r'also_run_disabled_tests.*' +
67 FLAG_PREFIX +
r'repeat=.*' +
68 FLAG_PREFIX +
r'shuffle.*' +
69 FLAG_PREFIX +
r'random_seed=.*' +
70 FLAG_PREFIX +
r'color=.*' +
71 FLAG_PREFIX +
r'print_time.*' +
72 FLAG_PREFIX +
r'output=.*' +
73 FLAG_PREFIX +
r'break_on_failure.*' +
74 FLAG_PREFIX +
r'throw_on_failure.*' +
75 FLAG_PREFIX +
r'catch_exceptions=0.*',
80 """Runs gtest_help_test_ with the given flag.
83 the exit code and the text output as a tuple.
85 flag: the command-line flag to pass to gtest_help_test_, or None.
89 command = [PROGRAM_PATH]
91 command = [PROGRAM_PATH, flag]
93 return child.exit_code, child.output
97 """Tests the --help flag and its equivalent forms."""
100 """Verifies correct behavior when help flag is specified.
102 The right message must be printed and the tests must
103 skipped when the given flag is specified.
106 flag: A flag to pass to the binary or None.
110 self.assertEquals(0, exit_code)
111 self.assert_(HELP_REGEX.search(output), output)
114 self.assert_(STREAM_RESULT_TO_FLAG
in output, output)
116 self.assert_(STREAM_RESULT_TO_FLAG
not in output, output)
118 if SUPPORTS_DEATH_TESTS
and not IS_WINDOWS:
119 self.assert_(DEATH_TEST_STYLE_FLAG
in output, output)
121 self.assert_(DEATH_TEST_STYLE_FLAG
not in output, output)
124 """Verifies correct behavior when no help flag is specified.
126 Verifies that when no help flag is specified, the tests are run
127 and the help message is not printed.
130 flag: A flag to pass to the binary or None.
134 self.assert_(exit_code != 0)
135 self.assert_(
not HELP_REGEX.search(output), output)
153 for incorrect_flag
in INCORRECT_FLAG_VARIANTS:
157 """Verifies that when no help flag is specified, the tests are run
158 and the help message is not printed."""
163 """Verifies that the tests are run and no help message is printed when
164 a flag starting with Google Test prefix and 'internal_' is supplied."""
169 if __name__ ==
'__main__':