Re: [PATCH] scripts/checkpatch.pl: added test for repeated lines

From: Joe Perches
Date: Sun Jul 10 2011 - 18:35:33 EST


On Sun, 2011-07-10 at 22:23 +0200, Edwin van Vliet wrote:
> On 10-7-2011 20:49, Joe Perches wrote:
> > On Sun, 2011-07-10 at 20:18 +0200, Edwin van Vliet wrote:
> >> Repeated lines may indicate a bug or code that needs clarification. If the
> >> repeated line is intentional, an extra comment may be helpful for reviewers
> >> since the repeated pattern is likely to draw attention.
> > []
> >> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > []
> >> @@ -1479,6 +1479,11 @@ sub process {
> >> +# check for repeated lines which may indicate bugs or lack of clarity
> >> + if ($rawline eq $prevrawline) {
> >> + WARN("repeated line\n" . $herecurr);
> >> + }
> >> +
> > Interest concept, but I think it needs to check for
> > comment lines and blank lines and such.
> > Also, there are uses of appropriate multiple close braces
> > on consecutive lines like:
> > switch (foo) {
> > case bar: {
> > etc...
> > }
> > }
[]
> You might be correct about empty lines and comment lines, but there are
> actually very few reasons to have a repeated line.
[]
> Repeated lines draw (my) attention, and are likely to confuse.

I don't disagree, I just think your patch needs to handle
some obvious exceptions.

> Do you reckon this test would lead to programmers trying to "fool" the
> test and actually insert extra tabs to work around it?

No.

> If the final goal of the checkpatch.pl script is for the entire kernel
> source code to not generate any warnings at all,

It's not.

> I understand your concerns and agree this might need a little testing

and expanding and improving.

[]
> Sure, double #endif's and closing brackets will cause a warning, quite a
> number of false positives are inevitable.

Not if your patch handles them appropriately.
Maybe use both CHK and WARN.

> But it will hopefully help to
> prevent or spot errors too, and it might lead to better documentation of
> certain routines as well.

True. But don't expect me to ack or add a sign-off to
a patch that has obvious defects or doesn't do the
thing it purports to do well.

cheers, Joe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/