[dpdk-dev] scripts: fix checkpatch from standard input

Message ID 1479768161-6123-1-git-send-email-thomas.monjalon@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
checkpatch/checkpatch warning coding style issues

Commit Message

Thomas Monjalon Nov. 21, 2016, 10:42 p.m. UTC
  When checking a valid patch from standard input,
the footer lines of the report are not filtered out.

The function check is called outside of any loop,
so the statement continue has no effect and the footer is printed.

Fixes: 8005feef421d ("scripts: add standard input to checkpatch")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 scripts/checkpatches.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Olivier Matz Nov. 28, 2016, 3:21 p.m. UTC | #1
On Mon, 21 Nov 2016 23:42:41 +0100, Thomas Monjalon
<thomas.monjalon@6wind.com> wrote:
> When checking a valid patch from standard input,
> the footer lines of the report are not filtered out.
> 
> The function check is called outside of any loop,
> so the statement continue has no effect and the footer is printed.
> 
> Fixes: 8005feef421d ("scripts: add standard input to checkpatch")
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>

The 'continue' statement is not always without effect. On my machine
(but it looks it's not the same everywhere):
- with dash, the 'continue' acts like a return in that case
- with bash, it displays an error:
  "continue: only meaningful in a `for', `while', or `until' loop"
- with bash --posix, the 'continue' is ignored...

In my case, checkpatches.sh was displaying "0/1 valid" although there
was no error. This patch solves the issue, thanks.


Acked-by: Olivier Matz <olivier.matz@6wind.com>
  
Thomas Monjalon Nov. 30, 2016, 2:32 p.m. UTC | #2
2016-11-28 16:21, Olivier Matz:
> On Mon, 21 Nov 2016 23:42:41 +0100, Thomas Monjalon
> <thomas.monjalon@6wind.com> wrote:
> > When checking a valid patch from standard input,
> > the footer lines of the report are not filtered out.
> > 
> > The function check is called outside of any loop,
> > so the statement continue has no effect and the footer is printed.
> > 
> > Fixes: 8005feef421d ("scripts: add standard input to checkpatch")
> > 
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> 
> The 'continue' statement is not always without effect. On my machine
> (but it looks it's not the same everywhere):
> - with dash, the 'continue' acts like a return in that case
> - with bash, it displays an error:
>   "continue: only meaningful in a `for', `while', or `until' loop"
> - with bash --posix, the 'continue' is ignored...
> 
> In my case, checkpatches.sh was displaying "0/1 valid" although there
> was no error. This patch solves the issue, thanks.
> 
> 
> Acked-by: Olivier Matz <olivier.matz@6wind.com>

I've amended with your explanations and applied, thanks
  

Patch

diff --git a/scripts/checkpatches.sh b/scripts/checkpatches.sh
index 336cc7b..cfe262b 100755
--- a/scripts/checkpatches.sh
+++ b/scripts/checkpatches.sh
@@ -94,7 +94,7 @@  check () { # <patch> <commit> <title>
 	else
 		report=$($DPDK_CHECKPATCH_PATH $options - 2>/dev/null)
 	fi
-	[ $? -ne 0 ] || continue
+	[ $? -ne 0 ] || return 0
 	$verbose || printf '\n### %s\n\n' "$3"
 	printf '%s\n' "$report" | sed -n '1,/^total:.*lines checked$/p'
 	status=$(($status + 1))