== Checkstyle ==
1. I configured checkstyle linter on a project with the following configuration:
```lang=json
"checkstyle": {
"type": "checkstyle",
"include": "(\\.java$)",
"bin": "./misc-utils/lib/jars/checkstyle-6.13-all.jar",
"flags": [
"-c",
"/Users/cspeckrun/Desktop/google_checks.xml"
],
"checkstyle.simplify-source-classname": true
}
```
2. I ran `arc linters` and verified that "checkstyle" was shown as "CONFIGURED"
3. I ran `arc linters checkstyle` and verified that it displayed appropriate configurations for checkstyle as well as the version being 6.13.
4. I ran `arc lint MyBadJavaClass.java` on a java file which contained a measurable number of lint errorserrors.
5. I verified that the reported lint errors corresponded to my expected lint errors from previously running checkstyle manually on the same file.
6. I ran `arc lint MyGoodJavaClass.java` on a java file which contained no lint errors.
7. I verified that there were no reported lint errors.
8. I updated the `.arclint` file to remove the `simplify-source-classname` field, then re-ran steps 2-4 and additionally verified that the reported source name was no longer simplified.
== PMD ==
1. I configured PMD linter on a project with the following configuration:
```lang=json
"pmd": {
"type": "pmd",
"include": "(\\.java$)",
"bin": "./misc-utils/lib/pmd-5.4.1/lib/pmd-core-5.4.1.jar",
"flags": [
"-rulesets",
"rulesets/java/unusedcode.xml",
"-dir"
]
}
```
2. I ran `arc linters` and verified that "pmd" was shown as "CONFIGURED".
3. I ran `arc linters pmd` and verified that it displayed appropriate configurations for pmd as well as the version being 5.4.1.
4. I verified that the reported lint errors corresponded to my expected lint errors from previously running checkstyleran `arc lint MyBadClass.java` on a java file which contained a measureable number of lint errors.
5. I verified that the reported lint errors corresponded to my expected lint errors from previously running pmd manually on the same file.
6. I ran `arc lint MyGoodJavaClass.java` on a java file which contained no lint errors.
7. I verified that there were no reported lint errors.
== CPD ==
1. I configured CPD linter on a project with the following configuration:
```lang=json
"pmd": {
"pmd.command": "cpd",
"type": "pmd",
"include": "(\\.java$)",
"bin": "./misc-utils/lib/pmd-5.4.1/lib/pmd-core-5.4.1.jar",
"flags": [
"--minimum-tokens",
"25",
"--files"
]
}
```
2. I ran `arc linters` and verified that "pmd" was shown as "CONFIGURED".
3. I ran `arc lint MyBadClass.java` on a java file which contained a measureable number of lint errors.
4. I verified that the reported lint errors corresponded to my expected lint errors from previously running pmd manually on the same file.
5. I ran `arc lint MyGoodJavaClass.java` on a java file which contained no lint errors.
6. I verified that there were no reported lint errors.
7. I updated the `.arclint` file to remove the `simplify-source-classname` field, then re-ran steps 2-4 and additionally verified that the reported source name was no longer simplified.