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