From: Andrew Jones <andrew.jones@linux.dev>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Alexandru Elisei" <alexandru.elisei@arm.com>,
"Eric Auger" <eric.auger@redhat.com>,
"Janosch Frank" <frankja@linux.ibm.com>,
"Claudio Imbrenda" <imbrenda@linux.ibm.com>,
"Nico Böhr" <nrb@linux.ibm.com>,
"David Hildenbrand" <david@redhat.com>,
"Shaoqin Huang" <shahuang@redhat.com>,
"Nikos Nikoleris" <nikos.nikoleris@arm.com>,
"Nadav Amit" <namit@vmware.com>,
"David Woodhouse" <dwmw@amazon.co.uk>,
"Ricardo Koller" <ricarkol@google.com>,
rminmin <renmm6@chinaunicom.cn>, "Gavin Shan" <gshan@redhat.com>,
"Nina Schoetterl-Glausch" <nsg@linux.ibm.com>,
"Sean Christopherson" <seanjc@google.com>,
kvm@vger.kernel.org, kvmarm@lists.linux.dev,
kvm-riscv@lists.infradead.org, linux-s390@vger.kernel.org
Subject: Re: [kvm-unit-tests RFC PATCH 17/17] shellcheck: Suppress various messages
Date: Fri, 5 Apr 2024 16:55:11 +0200 [thread overview]
Message-ID: <20240405-7c0ad5d3ce76e1ad9ad2f5a9@orel> (raw)
In-Reply-To: <20240405090052.375599-18-npiggin@gmail.com>
On Fri, Apr 05, 2024 at 07:00:49PM +1000, Nicholas Piggin wrote:
> Various info and warnings are suppressed here, where circumstances
> (commented) warrant.
>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> run_tests.sh | 3 +++
> scripts/arch-run.bash | 9 +++++++++
> scripts/mkstandalone.sh | 2 ++
> scripts/runtime.bash | 2 ++
> 4 files changed, 16 insertions(+)
>
> diff --git a/run_tests.sh b/run_tests.sh
> index 938bb8edf..152323ffc 100755
> --- a/run_tests.sh
> +++ b/run_tests.sh
> @@ -45,6 +45,9 @@ fi
> only_tests=""
> list_tests=""
> args=$(getopt -u -o ag:htj:vl -l all,group:,help,tap13,parallel:,verbose,list,probe-maxsmp -- "$@")
> +# Shellcheck likes to test commands directly rather than with $? but sometimes they
> +# are too long to put in the same test.
> +# shellcheck disable=SC2181
> [ $? -ne 0 ] && exit 2;
> set -- $args;
> while [ $# -gt 0 ]; do
> diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash
> index ed440b4aa..fe8785cfd 100644
> --- a/scripts/arch-run.bash
> +++ b/scripts/arch-run.bash
> @@ -44,6 +44,8 @@ run_qemu ()
> if [ "$errors" ]; then
> sig=$(grep 'terminating on signal' <<<"$errors")
> if [ "$sig" ]; then
> + # This is too complex for ${var/search/replace}
> + # shellcheck disable=SC2001
> sig=$(sed 's/.*terminating on signal \([0-9][0-9]*\).*/\1/' <<<"$sig")
> fi
> fi
> @@ -174,9 +176,12 @@ run_migration ()
>
> # Holding both ends of the input fifo open prevents opens from
> # blocking and readers getting EOF when a writer closes it.
> + # These fds appear to be unused to shellcheck so quieten the warning.
> mkfifo ${src_infifo}
> mkfifo ${dst_infifo}
> + # shellcheck disable=SC2034
> exec {src_infifo_fd}<>${src_infifo}
> + # shellcheck disable=SC2034
> exec {dst_infifo_fd}<>${dst_infifo}
>
> "${migcmdline[@]}" \
> @@ -184,6 +189,8 @@ run_migration ()
> -mon chardev=mon,mode=control \
> < ${src_infifo} > ${src_outfifo} &
> live_pid=$!
> + # SC complains about useless cat but I prefer it over redirect here.
Let's spell out 'shellcheck' when referring to it rather than call it
'SC'. And instead of "but I prefer..." let's write
# shellcheck complains about a useless cat, but using a redirect here is
# harder to read
or something like that. Don't tell my cat-loving daughter that I just
wrote "a useless cat"!
> + # shellcheck disable=SC2002
> cat ${src_outfifo} | tee ${src_out} | filter_quiet_msgs &
>
> # Start the first destination QEMU machine in advance of the test
> @@ -224,6 +231,8 @@ do_migration ()
> -mon chardev=mon,mode=control -incoming unix:${dst_incoming} \
> < ${dst_infifo} > ${dst_outfifo} &
> incoming_pid=$!
> + # SC complains about useless cat but I prefer it over redirect here.
Same comment as above.
> + # shellcheck disable=SC2002
> cat ${dst_outfifo} | tee ${dst_out} | filter_quiet_msgs &
>
> # The test must prompt the user to migrate, so wait for the
> diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh
> index 756647f29..2318a85f0 100755
> --- a/scripts/mkstandalone.sh
> +++ b/scripts/mkstandalone.sh
> @@ -65,6 +65,8 @@ generate_test ()
> fi
>
> temp_file bin "$kernel"
> + # Don't want to expand $bin but print it as-is.
> + # shellcheck disable=SC2016
> args[3]='$bin'
>
> (echo "#!/usr/bin/env bash"
> diff --git a/scripts/runtime.bash b/scripts/runtime.bash
> index 3b76aec9e..c87613b96 100644
> --- a/scripts/runtime.bash
> +++ b/scripts/runtime.bash
> @@ -137,6 +137,8 @@ function run()
> # the check line can contain multiple files to check separated by a space
> # but each check parameter needs to be of the form <path>=<value>
> if [ "$check" ]; then
> + # There is no globbing allowed in the check parameter.
> + # shellcheck disable=SC2206
> check=($check)
Hmm, I'm not sure about this one. $check is an arbitrary path, which means
it can have spaces, then =, and then an arbitrary value, which means it can
contain spaces. If there are multiple check path=value pairs then
separation by space is a bad idea, and any deliminator really is. It seems
like each pair should be quoted, i.e.
check = "path1=value1" "path2=value2"
and then that should be managed here.
> for check_param in "${check[@]}"; do
> path=${check_param%%=*}
> --
> 2.43.0
>
Thanks,
drew
next prev parent reply other threads:[~2024-04-05 14:55 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 9:00 [kvm-unit-tests RFC PATCH 00/17] add shellcheck support Nicholas Piggin
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 01/17] Add initial shellcheck checking Nicholas Piggin
2024-04-05 14:12 ` Andrew Jones
2024-04-06 6:39 ` Nicholas Piggin
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 02/17] shellcheck: Fix SC2223 Nicholas Piggin
2024-04-05 14:14 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 03/17] shellcheck: Fix SC2295 Nicholas Piggin
2024-04-05 14:15 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 04/17] shellcheck: Fix SC2094 Nicholas Piggin
2024-04-05 14:17 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 05/17] shellcheck: Fix SC2006 Nicholas Piggin
2024-04-05 14:17 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 06/17] shellcheck: Fix SC2155 Nicholas Piggin
2024-04-05 14:20 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 07/17] shellcheck: Fix SC2235 Nicholas Piggin
2024-04-05 14:24 ` Andrew Jones
2024-04-06 6:41 ` Nicholas Piggin
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 08/17] shellcheck: Fix SC2119, SC2120 Nicholas Piggin
2024-04-05 14:28 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 09/17] shellcheck: Fix SC2143 Nicholas Piggin
2024-04-05 14:29 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 10/17] shellcheck: Fix SC2013 Nicholas Piggin
2024-04-05 14:31 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 11/17] shellcheck: Fix SC2145 Nicholas Piggin
2024-04-05 14:35 ` Andrew Jones
2024-04-06 6:47 ` Nicholas Piggin
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 12/17] shellcheck: Fix SC2124 Nicholas Piggin
2024-04-05 14:37 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 13/17] shellcheck: Fix SC2294 Nicholas Piggin
2024-04-05 14:38 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 14/17] shellcheck: Fix SC2178 Nicholas Piggin
2024-04-05 14:40 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 15/17] shellcheck: Fix SC2048 Nicholas Piggin
2024-04-05 14:40 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 16/17] shellcheck: Fix SC2153 Nicholas Piggin
2024-04-05 14:42 ` Andrew Jones
2024-04-05 9:00 ` [kvm-unit-tests RFC PATCH 17/17] shellcheck: Suppress various messages Nicholas Piggin
2024-04-05 14:55 ` Andrew Jones [this message]
2024-04-06 6:31 ` Nicholas Piggin
2024-04-06 7:30 ` Andrew Jones
2024-04-06 10:56 ` Nicholas Piggin
2024-04-05 13:59 ` [kvm-unit-tests RFC PATCH 00/17] add shellcheck support Andrew Jones
2024-04-06 6:34 ` Nicholas Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240405-7c0ad5d3ce76e1ad9ad2f5a9@orel \
--to=andrew.jones@linux.dev \
--cc=alexandru.elisei@arm.com \
--cc=david@redhat.com \
--cc=dwmw@amazon.co.uk \
--cc=eric.auger@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=gshan@redhat.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-s390@vger.kernel.org \
--cc=namit@vmware.com \
--cc=nikos.nikoleris@arm.com \
--cc=npiggin@gmail.com \
--cc=nrb@linux.ibm.com \
--cc=nsg@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=renmm6@chinaunicom.cn \
--cc=ricarkol@google.com \
--cc=seanjc@google.com \
--cc=shahuang@redhat.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox