On 10/26/06, Mark Hindess <[EMAIL PROTECTED]> wrote:

On 26 October 2006 at 19:16, "Tony Wu" <[EMAIL PROTECTED]> wrote:
> I have scratched out the stand alone rules,
>
> should use assertNull, assertEquals\s*\((.*,\s*null\s*|\s*null\s*,.*)\)\s*;
> should use assertFalse, assertEquals\s*\((.*,\s*false\s*|\s*false\s*,.*)\)\s*
> ;
> should use assertTrue, assertEquals\s*\((.*,\s*true\s*|\s*true\s*,.*)\)\s*;
> last argument should not be a constant,
> assertEquals\s*\(.*,\s*("[^"]*"|'[^']'|[+-]?\d+[0-9a-fA-FLlPp]*|[A-Z_]*)\s*\)
> \s*;
> always true/false, assert(False|True)\s*\(\s*(false|true)\s*\)\s*;
> multiple assertion, assertTrue\s*\(.*\&\&.*\)\s*;
> multiple assertion, assertFalse\s*\(.*\|\|.*\)\s*;
> should use assertNull, assertTrue\s*\((.*==\s*null\s*|\s*null\s*==.*)\)\s*;
> should use assertTrue, assertTrue\s*\((.*==\s*true\s*|\s*true\s*==.*)\)\s*;
> should use assertFalse, assertTrue\s*\((.*==\s*false\s*|\s*false\s*==.*)\)\s*
> ;
> should use assertNotNull, assertTrue\s*\((.*!=\s*null\s*|\s*null\s*!=.*)\)\s*
> ;
> should use assertFalse, assertTrue\s*\((.*!=\s*true\s*|\s*true\s*!=.*)\)\s*;
> should use assertTrue, assertTrue\s*\((.*!=\s*false\s*|\s*false\s*!=.*)\)\s*;
> should use assertFalse, assertTrue\s*\(\s*!.*\)\s*;
> should use assertFalse, assertTrue\s*\("[^"]*"\s*,\s*!.*\)\s*;
> should use assertNotNull, assertFalse\s*\((.*==\s*null\s*|\s*null\s*==.*)\)\s
> *;
> should use assertFalse, assertFalse\s*\((.*!=\s*true\s*|\s*true\s*!=.*)\)\s*;
> should use assertTrue, assertFalse\s*\((.*!=\s*false\s*|\s*false\s*!=.*)\)\s*
> ;
> should use assertNull, assertFalse\s*\((.*!=\s*null\s*|\s*null\s*!=.*)\)\s*;
> should use assertFalse, assertFalse\s*\((.*==\s*true\s*|\s*true\s*==.*)\)\s*;
> should use assertTrue, assertFalse\s*\((.*==\s*false\s*|\s*false\s*==.*)\)\s*
> ;
> should use assertEquals, assertTrue\s*\(.*==.*\)\s*;
> should use assertEquals, assertTrue\s*\(.*\.euqals.*\)\s*;

There's a typo in that last one.
:p
But be careful with these.  For
example, the second last rule will match things like:

 modules/luni/src/test/java/tests/api/java/io/BufferedInputStreamTest.java:
   assertTrue("Wrong bytes", in.read() == 6 && in.read() == 7);
Oh, I know why you used [^|&] now.

My problem is that the CheckStyle can not do multi-step check,  so I
have to write rules in one line regexp. For one line regex, there are
many restrictions. It should only be used for assisting manual check.
Your script is better and stricter for auto fixing:)

I tried assertTrue\s*\(.*(?===)&(?!true|false|null).*\)\s*; to match a
string which have == and does not have true, false and null, but it
did not work:(
I know you are a regexp guru, do you have some tricks or tips to make
one line regexp match more accurate?


which is why the regular expressions in my script are a little stricter
(that is not using .* but a character class to avoid catching complex
cases).

> any comments?

If you fix any automatically, please check them over manual unless you
are really, really sure the fixes are not breaking anything.

hmm...I decided to do it manually...

Regards,
 Mark.





--
Tony Wu
China Software Development Lab, IBM

Reply via email to