From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Andrew Jones" <andrew.jones@linux.dev>
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: Sat, 06 Apr 2024 16:31:17 +1000 [thread overview]
Message-ID: <D0CTUKHP4IZV.2OQZNUD6J9U1P@gmail.com> (raw)
In-Reply-To: <20240405-7c0ad5d3ce76e1ad9ad2f5a9@orel>
On Sat Apr 6, 2024 at 12:55 AM AEST, Andrew Jones wrote:
> 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
Sounds good, will do.
>
> or something like that. Don't tell my cat-loving daughter that I just
> wrote "a useless cat"!
:D
>
>
> > + # 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.
Yeah I did think of that, valid paths could also have = and ", and even
with double quotes it seems to be tricky to handle spaces.
Maybe I'll just add to the unittest.cfg docs to stick with alphanumeric
paths, and we can improve it if someone complains?
Thanks,
Nick
next prev parent reply other threads:[~2024-04-06 6:31 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
2024-04-06 6:31 ` Nicholas Piggin [this message]
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=D0CTUKHP4IZV.2OQZNUD6J9U1P@gmail.com \
--to=npiggin@gmail.com \
--cc=alexandru.elisei@arm.com \
--cc=andrew.jones@linux.dev \
--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=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