Drops common suffixes like _test.cc or -inl.h from filename. For example: >>> _DropCommonSuffixes('foo/foo-inl.h') 'foo/foo' >>> _DropCommonSuffixes('foo/bar/foo.cc') 'foo/bar/foo' >>> _DropCommonSuffixes('foo/foo_internal.h') 'foo/foo' >>> _DropCommonSuffixes('foo/foo
(filename)
| 3574 | |
| 3575 | |
| 3576 | def _DropCommonSuffixes(filename): |
| 3577 | """Drops common suffixes like _test.cc or -inl.h from filename. |
| 3578 | |
| 3579 | For example: |
| 3580 | >>> _DropCommonSuffixes('foo/foo-inl.h') |
| 3581 | 'foo/foo' |
| 3582 | >>> _DropCommonSuffixes('foo/bar/foo.cc') |
| 3583 | 'foo/bar/foo' |
| 3584 | >>> _DropCommonSuffixes('foo/foo_internal.h') |
| 3585 | 'foo/foo' |
| 3586 | >>> _DropCommonSuffixes('foo/foo_unusualinternal.h') |
| 3587 | 'foo/foo_unusualinternal' |
| 3588 | |
| 3589 | Args: |
| 3590 | filename: The input filename. |
| 3591 | |
| 3592 | Returns: |
| 3593 | The filename with the common suffix removed. |
| 3594 | """ |
| 3595 | for suffix in ('test.cc', 'regtest.cc', 'unittest.cc', |
| 3596 | 'inl.h', 'impl.h', 'internal.h'): |
| 3597 | if (filename.endswith(suffix) and len(filename) > len(suffix) and |
| 3598 | filename[-len(suffix) - 1] in ('-', '_')): |
| 3599 | return filename[:-len(suffix) - 1] |
| 3600 | return os.path.splitext(filename)[0] |
| 3601 | |
| 3602 | |
| 3603 | def _IsTestFilename(filename): |