Bug 306214
| Summary: | build-and-analyze: WebKit checker lists diverged between --enable-webkit-checkers and --only-smart-pointers | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | David Kilzer (:ddkilzer) <ddkilzer> |
| Component: | Tools / Tests | Assignee: | David Kilzer (:ddkilzer) <ddkilzer> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
David Kilzer (:ddkilzer)
The WebKit checker list in build-and-analyze has diverged between two command-line options:
- --enable-webkit-checkers: only enables 6 WebKit-specific checkers
- --only-smart-pointers: enables 15 WebKit-specific checkers (including the same 6)
The lists should be identical since they both claim to enable "WebKit checkers". The --enable-webkit-checkers option is missing 9 checkers that are available in --only-smart-pointers.
This can be verified with --dry-run:
```
cd OpenSource
Tools/Scripts/build-and-analyze --output-dir /tmp/test --enable-webkit-checkers --dry-run
Tools/Scripts/build-and-analyze --output-dir /tmp/test --only-smart-pointers --dry-run
```
The ANALYZER_FLAGS output shows different numbers of webkit.* and alpha.webkit.* checkers.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
David Kilzer (:ddkilzer)
Fixed by extracting the complete list of 15 WebKit checkers into a global WEBKIT_CHECKERS constant and using it in both code paths.
The fix involved:
1. Creating a global constant with all 15 checkers:
```
WEBKIT_CHECKERS = [
'alpha.webkit.ForwardDeclChecker',
'alpha.webkit.MemoryUnsafeCastChecker',
'alpha.webkit.NoUncheckedPtrMemberChecker',
'alpha.webkit.NoUnretainedMemberChecker',
'alpha.webkit.RetainPtrCtorAdoptChecker',
'alpha.webkit.UncheckedCallArgsChecker',
'alpha.webkit.UncheckedLocalVarsChecker',
'alpha.webkit.UncountedCallArgsChecker',
'alpha.webkit.UncountedLocalVarsChecker',
'alpha.webkit.UnretainedCallArgsChecker',
'alpha.webkit.UnretainedLambdaCapturesChecker',
'alpha.webkit.UnretainedLocalVarsChecker',
'webkit.NoUncountedMemberChecker',
'webkit.RefCntblBaseVirtualDtor',
'webkit.UncountedLambdaCapturesChecker',
]
```
2. Updating both code paths to use the constant:
```
if args.enable_webkit_checkers:
additional_checkers.extend(WEBKIT_CHECKERS)
if args.only_smart_pointers:
additional_checkers.extend(WEBKIT_CHECKERS)
```
This ensures both options use the same complete list of WebKit checkers and eliminates future divergence.
Radar WebKit Bug Importer
<rdar://problem/168872496>
David Kilzer (:ddkilzer)
Pull request: https://github.com/WebKit/WebKit/pull/57208
EWS
Committed 306247@main (7e19925f7d5a): <https://commits.webkit.org/306247@main>
Reviewed commits have been landed. Closing PR #57208 and removing active labels.