Frequently, organizations deploy automated static analysis tools to implement a certain internal coding policy. Such a policy typically originates as a document that formalizes the coding conventions and best practices, and has its own classification of issues and their severities.
In most cases, the cleanest implementation of a coding policy in a static analysis tool utilizes rule descriptions and IDs that are already contained in this document, since it has already been reviewed by the development groups. C/C++test provides simple facilities to customize rule IDs and names, as well as to create new rule categories, so that the actual deployed rules exactly match the contents of the coding policy document.
This mapping is done via a Rule Map file. The Rule Map file can be used and imported/exported locally, or deployed via Team Server to the entire user team.
If you use test configurations stored on DTP, see the 'Rule Maps' section in the DTP User Guide for details about managing, customizing, and applying rule mapping.
To specify rule mappings:
To change the rule ID, name, and/or severity level: Add an entry to the Rules tab. A map entry defines a rule map which can change the specified built-in rule’s category ID, name, and/or severity level. Enter the current rule ID using CATEGORY-ID format (for instance, SECURITY-01) in the Original ID column, then enter the desired changes in the appropriate column.
If you want to change the rule name, enter the desired name in the Header column.
When you change the rule ID, a new category will be created automatically. You must specify a rule category description for each new category in the Categories tab, as described below. Otherwise, the rule will be added to the UNKNOWN category.
To create a "clone" of a rule (e.g. to create different versions of a parameterized rule): Add an entry to the Clones tab. Cloning rules is useful for mapping a single rule instance to multiple rule IDs. Enter the current rule ID (for example, BD.MISC-TRANS) in the Original ID column, then enter the desired clone rule ID (for example, ACME-TRANS) in the Clone ID column and/or select the desired clone severity level from the Severity column drop down menu. Note that cloning applies only to rules that cannot be edited in RuleWizard—such as BugDetective rules. If you want to copy a rule that can be edited in RuleWizard, use the method described in Customizing Rules with RuleWizard.
To add a new rule category: Add an entry to the Categories tab. Enter a new category ID in the Category ID column, then enter a brief category description in the Category Description column.
After you enter rule mappings in the UI, they are saved in a simple text file named
rulemap.xml in the "User Rule" directory that you specified in the Preferences panel (on the Parasoft> Configurations page).
Want to copy an existing rule to another rule ID and/or severity level?
Right-click the rule in the Rules tree, then choose Duplicate. A duplicate rule will be added to the Rules tree. You can then customize the duplicate rule as needed.
If you are using Team Server and you want team members to share the rule changes, you should upload the
rulemap.xml file to the Team Server
To upload the file to Team Server:
If a machine has access to both a local
rulemap.xml file and a team
rulemap.xml file, the team file will take precedence over the local file.
Even if you do not have Team Server, you can share rule mappings by exporting/importing them.
To export rule mappings:
To import a rule mappings: