rmuir commented on code in PR #14804:
URL: https://github.com/apache/lucene/pull/14804#discussion_r2155360626


##########
gradle/validation/ast-grep/sgconfig.yml:
##########
@@ -0,0 +1,2 @@
+ruleDirs:
+  - ./rules

Review Comment:
   I've found the built-in self-test to be essential for having and keeping 
correct rules. It takes milliseconds and they are easy to write.
   
   ```suggestion
     - ./rules
   testConfigs:
   - testDir: ./tests
   ```
   
   I run these with `ast-grep test --skip-snapshot-tests` before the `ast-grep 
scan`. 
   
   For a rule like this one, I would add tests (untested!) like this: 
`tests/errorprone.yml` (which would test rules in `rules/errorprone.yml`. I 
organize them this way with `---` yaml doc separator between the rules in both 
files. For multiline tests, I use yaml literal style (`|`): 
https://yaml.org/spec/1.2-old/spec.html#id2795688
   
   ```yaml
   ---
   # test wildcard import detector
   id: wildcard-import-not-allowed
   valid:
     - import foo.bar.Baz;
     - import static foo.bar.Baz;
   invalid:
     - import foo.bar.*;
     - import static foo.bar.*;
   ---
   # test for another error prone rule
   id: some-other-errorprone-rule
   invalid: 
     - |
       if (x.equals(null) {
       }
     - |
       foo = x.equals(null) ? 1 : 2;
   # ...
   ```
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to