Changeset 240402 in webkit
- Timestamp:
- Jan 23, 2019 6:47:53 PM (5 years ago)
- Location:
- trunk/Tools
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r240363 r240402 1 2019-01-23 David Kilzer <ddkilzer@apple.com> 2 3 check-webkit-style should warn when using soft-linking macros in a header 4 <https://webkit.org/b/193750> 5 6 Reviewed by Darin Adler. 7 8 * Scripts/webkitpy/style/checkers/cpp.py: 9 (check_language): Add softlink/header check by refactoring the 10 softlink/framework check. 11 (CppChecker): Enable softlink/header check by default. 12 * Scripts/webkitpy/style/checkers/cpp_unittest.py: 13 (CppStyleTest.test_softlink_framework): Rename from 14 CppStyleTest.test_softlink() and change test framework name in 15 case AVFoundation gets its own AVFoundationSoftLink.{h,mm} 16 files. Set file_name for macros that only appear in headers. 17 (CppStyleTest.test_softlink_header): Add tests for using 18 soft-link macros in headers. 19 1 20 2019-01-23 Chris Dumez <cdumez@apple.com> 2 21 -
trunk/Tools/Scripts/webkitpy/style/checkers/cpp.py
r240299 r240402 3333 3333 break 3334 3334 3335 frameworks_with_soft_links = ['CoreMedia', 'CoreVideo', 'DataDetectorsCore', 'MediaAccessibility', 'MediaRemote', 'PassKit', 'QuickLook', 'UIKit', 'VideoToolbox'] 3336 matched = re.compile('^\s*SOFT_LINK_FRAMEWORK.*\(({})\)'.format('|'.join(frameworks_with_soft_links))).search(line) 3335 matched = re.compile('^\s*SOFT_LINK_(PRIVATE_)?FRAMEWORK.*\((\S+)\)').search(line) 3337 3336 if matched: 3338 framework_name = matched.group(1) 3339 if not re.compile('^\s*SOFT_LINK_FRAMEWORK_FOR_(HEADER|SOURCE)(_WITH_EXPORT)?\({}\)'.format(framework_name)).search(line): 3337 framework_name = matched.group(2) 3338 if file_extension == 'h' and not search(r'^\s*SOFT_LINK_(PRIVATE_)?FRAMEWORK_FOR_HEADER.*\(', line): 3339 error(line_number, 'softlink/header', 5, 3340 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create {framework}SoftLink.{{cpp,mm}} instead.'.format(framework=framework_name)) 3341 3342 frameworks_with_soft_links = ['CoreMedia', 'CoreVideo', 'DataDetectorsCore', 'MediaAccessibility', 'MediaRemote', 'PassKit', 'QuickLook', 'UIKit', 'VideoToolbox'] 3343 if framework_name in frameworks_with_soft_links and not re.compile('^\s*SOFT_LINK_(PRIVATE_)?FRAMEWORK_FOR_(HEADER|SOURCE)(_WITH_EXPORT)?\({}\)'.format(framework_name)).search(line): 3340 3344 error(line_number, 'softlink/framework', 5, 3341 3345 'Use {framework}SoftLink.{{cpp,h,mm}} to soft-link to {framework}.framework.'.format(framework=framework_name)) … … 4094 4098 'security/temp_file', 4095 4099 'softlink/framework', 4100 'softlink/header', 4096 4101 'whitespace/blank_line', 4097 4102 'whitespace/braces', -
trunk/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py
r240299 r240402 1689 1689 self.assert_lint('''RetainPtr<NSDictionary<NSString *, NSArray<NSString *>>> dictionary;''', '') 1690 1690 1691 def test_softlink(self): 1692 self.assert_lint( 1693 '''SOFT_LINK_FRAMEWORK(AVFoundation)''', 1694 '') 1695 self.assert_lint( 1696 '''SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)''', 1697 '') 1698 self.assert_lint( 1699 '''SOFT_LINK_FRAMEWORK_OPTIONAL_PREFLIGHT(AVFoundation)''', 1700 '') 1701 self.assert_lint( 1702 '''SOFT_LINK_FRAMEWORK_FOR_HEADER(AVFoundation)''', 1703 '') 1704 self.assert_lint( 1705 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE(AVFoundation)''', 1706 '') 1707 self.assert_lint( 1708 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT(AVFoundation)''', 1691 def test_softlink_framework(self): 1692 self.assert_lint( 1693 '''SOFT_LINK_FRAMEWORK(Foundation)''', 1694 '') 1695 self.assert_lint( 1696 '''SOFT_LINK_FRAMEWORK_OPTIONAL(Foundation)''', 1697 '') 1698 self.assert_lint( 1699 '''SOFT_LINK_FRAMEWORK_OPTIONAL_PREFLIGHT(Foundation)''', 1700 '') 1701 self.assert_lint( 1702 '''SOFT_LINK_FRAMEWORK_FOR_HEADER(Foundation)''', 1703 '', 1704 file_name='foo.h') 1705 self.assert_lint( 1706 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE(Foundation)''', 1707 '') 1708 self.assert_lint( 1709 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT(Foundation)''', 1710 '') 1711 self.assert_lint( 1712 '''SOFT_LINK_PRIVATE_FRAMEWORK_FOR_HEADER(Foundation)''', 1713 '', 1714 file_name='foo.h') 1715 self.assert_lint( 1716 '''SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE(Foundation)''', 1717 '') 1718 self.assert_lint( 1719 '''SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE_WITH_EXPORT(Foundation)''', 1709 1720 '') 1710 1721 … … 1723 1734 self.assert_lint( 1724 1735 '''SOFT_LINK_FRAMEWORK_FOR_HEADER(UIKit)''', 1725 '') 1736 '', 1737 file_name='foo.h') 1726 1738 self.assert_lint( 1727 1739 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE(UIKit)''', … … 1730 1742 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT(UIKit)''', 1731 1743 '') 1744 1745 def test_softlink_header(self): 1746 self.assert_lint( 1747 '''SOFT_LINK_FRAMEWORK(MyFramework)''', 1748 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create MyFrameworkSoftLink.{cpp,mm} instead.' 1749 ' [softlink/header] [5]', 1750 file_name='foo.h') 1751 self.assert_lint( 1752 '''SOFT_LINK_FRAMEWORK_OPTIONAL(MyFramework)''', 1753 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create MyFrameworkSoftLink.{cpp,mm} instead.' 1754 ' [softlink/header] [5]', 1755 file_name='foo.h') 1756 self.assert_lint( 1757 '''SOFT_LINK_FRAMEWORK_OPTIONAL_PREFLIGHT(MyFramework)''', 1758 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create MyFrameworkSoftLink.{cpp,mm} instead.' 1759 ' [softlink/header] [5]', 1760 file_name='foo.h') 1761 self.assert_lint( 1762 '''SOFT_LINK_PRIVATE_FRAMEWORK(MyPrivateFramework)''', 1763 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create MyPrivateFrameworkSoftLink.{cpp,mm} instead.' 1764 ' [softlink/header] [5]', 1765 file_name='foo.h') 1766 1767 self.assert_lint( 1768 '''SOFT_LINK_FRAMEWORK_FOR_HEADER(MyFramework)''', 1769 '', 1770 file_name='foo.h') 1771 self.assert_lint( 1772 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE(MyFramework)''', 1773 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create MyFrameworkSoftLink.{cpp,mm} instead.' 1774 ' [softlink/header] [5]', 1775 file_name='foo.h') 1776 self.assert_lint( 1777 '''SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT(MyFramework)''', 1778 'Never soft-link frameworks in headers. Put the soft-link macros in a source file, or create MyFrameworkSoftLink.{cpp,mm} instead.' 1779 ' [softlink/header] [5]', 1780 file_name='foo.h') 1732 1781 1733 1782 # Variable-length arrays are not permitted.
Note: See TracChangeset
for help on using the changeset viewer.