harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Okomin" <ilya.oko...@gmail.com>
Subject Re: [classlib][tests] Junit best practice
Date Fri, 27 Oct 2006 07:52:33 GMT
Mark, Tony thanks for working with this topic.
I found it very helpful and necessary for all of us.

Tony, I've played with your add-on to CheckStyle plug-in - it works well !
I'm going to use it in my Eclipse configuration to check future tests.

PS One thing in Eclipse is quite annoying. Everything works with small
projects but Eclipse fails with OutOfMemory error to me if I switch
CheckStyle on in large projects. Did anyone else faced with this error? I
use Eclipse 3.1.1.

Thanks,
Ilya.

On 10/27/06, Tony Wu <wuyuehao@gmail.com> wrote:
>
> the configure file of CheckStyle in attachment, you can import it to
> your eclipse plugin
>
> On 10/27/06, Tony Wu <wuyuehao@gmail.com> wrote:
> > On 10/26/06, Mark Hindess <mark.hindess@googlemail.com> wrote:
> > >
> > > On 26 October 2006 at 19:16, "Tony Wu" <wuyuehao@gmail.com> 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
> >
>
>
> --
> Tony Wu
> China Software Development Lab, IBM
>
>
>


-- 
--
Ilya Okomin
Intel Enterprise Solutions Software Division

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message