From: "Zhijian Li (Fujitsu)" <lizhijian@fujitsu.com>
To: Alison Schofield <alison.schofield@intel.com>
Cc: "nvdimm@lists.linux.dev" <nvdimm@lists.linux.dev>,
"linux-cxl@vger.kernel.org" <linux-cxl@vger.kernel.org>
Subject: Re: [ndctl PATCH v2] test/monitor.sh: Fix 2 bash syntax errors
Date: Thu, 17 Oct 2024 03:30:13 +0000 [thread overview]
Message-ID: <daaa02b8-a9c7-4644-a47e-476641a7dd8a@fujitsu.com> (raw)
In-Reply-To: <ZxBhpCc-HrzbeILd@aschofie-mobl2.lan>
On 17/10/2024 09:00, Alison Schofield wrote:
> On Wed, Oct 16, 2024 at 01:20:42PM +0800, Li Zhijian wrote:
>> $ grep -w line build/meson-logs/testlog.txt
>> test/monitor.sh: line 99: [: too many arguments
>> test/monitor.sh: line 99: [: nmem0: binary operator expected
>> test/monitor.sh: line 149: 40.0: syntax error: invalid arithmetic operator (error token is ".0")
>>
>> - monitor_dimms could be a string with multiple *spaces*, like: "nmem0 nmem1 nmem2"
>> - inject_value is a float value, like 40.0, which need to be converted to
>> integer before operation: $((inject_value + 1))
>>
>> Some features have not been really verified due to these errors
>>
>
> Good eye finding the complaints of a passing unit test!
> I'm confused on why the trap on err spewed the line number but
> didn't fail the test.
>
> While I, maybe others chew on that, thanks for the patch and
> can you do more :) ?
Sure, I will do that later.
>
> By quoting $monitor_dimms in the -z check ([ ! -z "$monitor_dimms" ]),
> the script breaks out of the loop correctly and monitors the first region
> that has DIMMs. I don't know if the test cared if it got the first or
> second region of nfit_test, but the syntax is definately wrong, and it's
> error prone in mulitple places in that shell script.
>
> '$ shellcheck monitor.sh' shows the instance you found:
>
>>> In monitor.sh line 99:
>>> [ ! -z $monitor_dimms ] && break
>>> ^-- SC2236: Use -n instead of ! -z.
>>> ^------------^ SC2086: Double quote to prevent globbing and word splitting.
>>>
>>> Did you mean:
>>> [ ! -z "$monitor_dimms" ] && break
>>>
>
> There are a bunch more instances in need of double quotes. Can you turn
> this around as a new patch that cleans it all. Note that you might not
> be able to get rid of all shellcheck complaints in the boilerplate of
> the script, but should be able to clean up the main body of the script
> and prevent more problems like you found here.
>
> I'll suggest turning this patch into a 2 patches:
>
> 1/1: test/monitor.sh address shellcheck bash syntax issues
> 2/2: test/monitor.sh convert float to integer before increment
Sound good to me
>
> For 2/2 it does stop the test prematurely. We never run the temperature
> inject test case of test_filter_dimmevent() because of the inability
> to increment the float. Please include that impact statement in the
> commit log.
Sure
Thanks
Zhijian
>
> -- Alison
>
>> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
>> ---
>> V1:
>> V1 has a mistake which overts to integer too late.
>> Move the conversion forward before the operation
>> ---
>> test/monitor.sh | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/test/monitor.sh b/test/monitor.sh
>> index c5beb2c..7809a7c 100755
>> --- a/test/monitor.sh
>> +++ b/test/monitor.sh
>> @@ -96,7 +96,7 @@ test_filter_region()
>> while [ $i -lt $count ]; do
>> monitor_region=$($NDCTL list -R -b $smart_supported_bus | jq -r .[$i].dev)
>> monitor_dimms=$(get_monitor_dimm "-r $monitor_region")
>> - [ ! -z $monitor_dimms ] && break
>> + [ ! -z "$monitor_dimms" ] && break
>> i=$((i + 1))
>> done
>> start_monitor "-r $monitor_region"
>> @@ -146,6 +146,7 @@ test_filter_dimmevent()
>> stop_monitor
>>
>> inject_value=$($NDCTL list -H -d $monitor_dimms | jq -r .[]."health"."temperature_threshold")
>> + inject_value=${inject_value%.*}
>> inject_value=$((inject_value + 1))
>> start_monitor "-d $monitor_dimms -D dimm-media-temperature"
>> inject_smart "-m $inject_value"
>> --
>> 2.44.0
>>
>>
prev parent reply other threads:[~2024-10-17 3:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-16 5:20 [ndctl PATCH v2] test/monitor.sh: Fix 2 bash syntax errors Li Zhijian
2024-10-16 22:45 ` Verma, Vishal L
2024-10-17 15:57 ` Alison Schofield
2024-10-17 1:00 ` Alison Schofield
2024-10-17 3:30 ` Zhijian Li (Fujitsu) [this message]
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=daaa02b8-a9c7-4644-a47e-476641a7dd8a@fujitsu.com \
--to=lizhijian@fujitsu.com \
--cc=alison.schofield@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
/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