| """Negative compilation tests for Google Mock macro MOCK_METHOD.""" |
| |
| import os |
| import sys |
| |
| IS_LINUX = os.name == "posix" and os.uname()[0] == "Linux" |
| if not IS_LINUX: |
| sys.stderr.write( |
| "WARNING: Negative compilation tests are not supported on this platform") |
| sys.exit(0) |
| |
| # Suppresses the 'Import not at the top of the file' lint complaint. |
| # pylint: disable-msg=C6204 |
| from google3.testing.pybase import fake_target_util |
| from google3.testing.pybase import googletest |
| |
| # pylint: enable-msg=C6204 |
| |
| |
| class GMockMethodNCTest(googletest.TestCase): |
| """Negative compilation tests for MOCK_METHOD.""" |
| |
| # The class body is intentionally empty. The actual test*() methods |
| # will be defined at run time by a call to |
| # DefineNegativeCompilationTests() later. |
| pass |
| |
| |
| # Defines a list of test specs, where each element is a tuple |
| # (test name, list of regexes for matching the compiler errors). |
| TEST_SPECS = [ |
| ("MOCK_METHOD_INVALID_CONST_SPEC", |
| [r"onst cannot be recognized as a valid specification modifier"]), |
| ] |
| |
| # Define a test method in GMockNCTest for each element in TEST_SPECS. |
| fake_target_util.DefineNegativeCompilationTests( |
| GMockMethodNCTest, |
| "google3/third_party/googletest/googlemock/test/gmock-function-mocker_nc", |
| "gmock-function-mocker_nc.o", TEST_SPECS) |
| |
| if __name__ == "__main__": |
| googletest.main() |