devtools: forbid writing to standard output streams

Message ID 20231221133120.1654941-1-david.marchand@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series devtools: forbid writing to standard output streams |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/github-robot: build success github build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-abi-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-unit-amd64-testing success Testing PASS
ci/intel-Testing success Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-sample-apps-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-compile-arm64-testing success Testing PASS

Commit Message

David Marchand Dec. 21, 2023, 1:31 p.m. UTC
  No output on stdout or stderr!
Drivers and libraries must use the logging framework.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 devtools/checkpatches.sh | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Comments

Bruce Richardson Dec. 21, 2023, 2:52 p.m. UTC | #1
On Thu, Dec 21, 2023 at 02:31:20PM +0100, David Marchand wrote:
> No output on stdout or stderr!
> Drivers and libraries must use the logging framework.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  devtools/checkpatches.sh | 8 ++++++++
>  1 file changed, 8 insertions(+)

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
Stephen Hemminger Dec. 21, 2023, 4:30 p.m. UTC | #2
On Thu, 21 Dec 2023 14:31:20 +0100
David Marchand <david.marchand@redhat.com> wrote:

> No output on stdout or stderr!
> Drivers and libraries must use the logging framework.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  devtools/checkpatches.sh | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
> index 10d1bf490b..c9e466f736 100755
> --- a/devtools/checkpatches.sh
> +++ b/devtools/checkpatches.sh
> @@ -61,6 +61,14 @@ check_forbidden_additions() { # <patch>
>  		-f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
>  		"$1" || res=1
>  
> +	# no output on stdout or stderr
> +	awk -v FOLDERS="lib drivers" \
> +		-v EXPRESSIONS="\\\<printf\\\> \\\<fprintf\\\(stdout, \\\<fprintf\\\(stderr," \
> +		-v RET_ON_FAIL=1 \
> +		-v MESSAGE='Writing to stdout or stderr' \
> +		-f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
> +		"$1" || res=1
> +
>  	# refrain from new additions of rte_panic() and rte_exit()
>  	# multiple folders and expressions are separated by spaces
>  	awk -v FOLDERS="lib drivers" \


Ok, noticed a lot of this in the crypto drivers dump code.
Probably other drivers have buried debug code as well.
  
Tyler Retzlaff Dec. 21, 2023, 5:06 p.m. UTC | #3
On Thu, Dec 21, 2023 at 02:31:20PM +0100, David Marchand wrote:
> No output on stdout or stderr!
> Drivers and libraries must use the logging framework.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---

Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
  
David Marchand Jan. 19, 2024, 11:09 a.m. UTC | #4
On Thu, Dec 21, 2023 at 2:31 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> No output on stdout or stderr!
> Drivers and libraries must use the logging framework.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Applied, thanks.
  

Patch

diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
index 10d1bf490b..c9e466f736 100755
--- a/devtools/checkpatches.sh
+++ b/devtools/checkpatches.sh
@@ -61,6 +61,14 @@  check_forbidden_additions() { # <patch>
 		-f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
 		"$1" || res=1
 
+	# no output on stdout or stderr
+	awk -v FOLDERS="lib drivers" \
+		-v EXPRESSIONS="\\\<printf\\\> \\\<fprintf\\\(stdout, \\\<fprintf\\\(stderr," \
+		-v RET_ON_FAIL=1 \
+		-v MESSAGE='Writing to stdout or stderr' \
+		-f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+		"$1" || res=1
+
 	# refrain from new additions of rte_panic() and rte_exit()
 	# multiple folders and expressions are separated by spaces
 	awk -v FOLDERS="lib drivers" \