The SEI CERT Coding Standards wiki documents which analysis tools detect violations of which rules/recs. To edit or add to this information, follow these guidelines.
Adding a Tool Page
The tool of interest should have a page created under the "Analyzers" section of the backmatter, if one does not exist already. Here is the list of "Analyzers" pages for each space.
Space | Analyzers Page |
---|---|
C | EE. Analyzers |
C++ | CC. Analyzers |
Java | |
Perl | BB. Analyzers |
The page should be titled with the name of the analysis tool. The page will be automatically populated with the information that you provide on individual rule pages.
Additionally, a "version" page should be created alongside the tool page. This paged is title "ToolName_V", and contains only the version number of the tool. For example, GCC_V documents the version of the GCC compiler.
Editing Automated Detection Tables
Each rule/rec page has an "Automated Detection" (AD) section, describing which tools can detect violations of the rule/rec. This section contains a table. Each row of the table contains information for a specific version of a tool. A row in the AD table has the following format.
Tool | Version | Checker | Description |
---|---|---|---|
Hyperlinked name of the tool | The version of the tool | Checker Name 1 Checker Name 2 Checker Name 3 ... | Checker Description 1 Checker Description 2 Checker Description 3 ... |
The information in these tables is periodically aggregated for each tool. A wiki page is then updated for each tool with the aggregated data, showing all of the rules/recs that the tool can detect. For example, the Clang page displays all of the rules/recs detected by various checkers in the Clang compiler.
This aggregation process is automatic. In order for the process to pick up your changes, you should adhere to certain guidelines when entering data into the AD tables.
- The Tool column contains the name of the tool, hyperlinked to the corresponding tool wiki page. The easiest way to populate this field is with the Link macro in Confluence. Simply insert a Link macro and point it towards the appropriate tool page.
- The Version column contains the version of the tool to which this information pertains. The easiest way to populate this field is with the "Include Page" macro in Confluence. You should include the version page associated with the tool into this cell.
- Each checker name should be provided on a separate line in the Checker column
- Each checker description should be provided on a separate line in the Description column, adjacent to the associated checker.