diff mbox series

[ndctl,v2,1/2] test/cxl-region-sysfs.sh: use '[[ ]]' command to evaluate operands as arithmetic expressions

Message ID 20231212074228.1261164-1-lizhijian@fujitsu.com (mailing list archive)
State Superseded
Headers show
Series [ndctl,v2,1/2] test/cxl-region-sysfs.sh: use '[[ ]]' command to evaluate operands as arithmetic expressions | expand

Commit Message

Li Zhijian Dec. 12, 2023, 7:42 a.m. UTC
It doesn't work for '[ operand1 -ne operand2 ]' where either operand1 or
operand2 is not integer value.
It's tested that bash 4.1/4.2/5.0/5.1 are impacted.

Per bash man page, use '[[ ]]' command to evaluate operands as arithmetic
expressions

Fix errors:
line 111: [: 0x80000000: integer expression expected
line 112: [: 0x3ff110000000: integer expression expected
line 141: [: 0x80000000: integer expression expected
line 143: [: 0x3ff110000000: integer expression expected

Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
---
V2: use '[[ ]]' instead of conversion before comparing in V1
---
 test/cxl-region-sysfs.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Alison Schofield Dec. 12, 2023, 8:51 p.m. UTC | #1
On Tue, Dec 12, 2023 at 03:42:27PM +0800, Li Zhijian wrote:
> It doesn't work for '[ operand1 -ne operand2 ]' where either operand1 or
> operand2 is not integer value.
> It's tested that bash 4.1/4.2/5.0/5.1 are impacted.

So, when validating the endpoint decoder settings the region_size and
region_base were not really being checked. With this syntax fix, the
check works as intended.

Please include such an impact statement.

Alison

> 
> Per bash man page, use '[[ ]]' command to evaluate operands as arithmetic
> expressions
> 
> Fix errors:
> line 111: [: 0x80000000: integer expression expected
> line 112: [: 0x3ff110000000: integer expression expected
> line 141: [: 0x80000000: integer expression expected
> line 143: [: 0x3ff110000000: integer expression expected
> 
> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
> ---
> V2: use '[[ ]]' instead of conversion before comparing in V1
> ---
>  test/cxl-region-sysfs.sh | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/test/cxl-region-sysfs.sh b/test/cxl-region-sysfs.sh
> index 8636392..6a5da6d 100644
> --- a/test/cxl-region-sysfs.sh
> +++ b/test/cxl-region-sysfs.sh
> @@ -108,8 +108,8 @@ do
>  
>  	sz=$(cat /sys/bus/cxl/devices/$i/size)
>  	res=$(cat /sys/bus/cxl/devices/$i/start)
> -	[ $sz -ne $region_size ] && err "$LINENO: decoder: $i sz: $sz region_size: $region_size"
> -	[ $res -ne $region_base ] && err "$LINENO: decoder: $i base: $res region_base: $region_base"
> +	[[ $sz -ne $region_size ]] && err "$LINENO: decoder: $i sz: $sz region_size: $region_size"
> +	[[ $res -ne $region_base ]] && err "$LINENO: decoder: $i base: $res region_base: $region_base"
>  done
>  
>  # validate all switch decoders have the correct settings
> @@ -138,9 +138,9 @@ do
>  
>  	res=$(echo $decoder | jq -r ".resource")
>  	sz=$(echo $decoder | jq -r ".size")
> -	[ $sz -ne $region_size ] && err \
> +	[[ $sz -ne $region_size ]] && err \
>  	"$LINENO: decoder: $i sz: $sz region_size: $region_size"
> -	[ $res -ne $region_base ] && err \
> +	[[ $res -ne $region_base ]] && err \
>  	"$LINENO: decoder: $i base: $res region_base: $region_base"
>  done
>  
> -- 
> 2.41.0
> 
>
Li Zhijian Dec. 13, 2023, 8:02 a.m. UTC | #2
On 13/12/2023 04:51, Alison Schofield wrote:
> On Tue, Dec 12, 2023 at 03:42:27PM +0800, Li Zhijian wrote:
>> It doesn't work for '[ operand1 -ne operand2 ]' where either operand1 or
>> operand2 is not integer value.
>> It's tested that bash 4.1/4.2/5.0/5.1 are impacted.
> 
> So, when validating the endpoint decoder settings the region_size and
> region_base were not really being checked. With this syntax fix, the
> check works as intended.
> 
> Please include such an impact statement.


No problem, thanks



> 
> Alison
> 
>>
>> Per bash man page, use '[[ ]]' command to evaluate operands as arithmetic
>> expressions
>>
>> Fix errors:
>> line 111: [: 0x80000000: integer expression expected
>> line 112: [: 0x3ff110000000: integer expression expected
>> line 141: [: 0x80000000: integer expression expected
>> line 143: [: 0x3ff110000000: integer expression expected
>>
>> Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
>> ---
>> V2: use '[[ ]]' instead of conversion before comparing in V1
>> ---
>>   test/cxl-region-sysfs.sh | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/test/cxl-region-sysfs.sh b/test/cxl-region-sysfs.sh
>> index 8636392..6a5da6d 100644
>> --- a/test/cxl-region-sysfs.sh
>> +++ b/test/cxl-region-sysfs.sh
>> @@ -108,8 +108,8 @@ do
>>   
>>   	sz=$(cat /sys/bus/cxl/devices/$i/size)
>>   	res=$(cat /sys/bus/cxl/devices/$i/start)
>> -	[ $sz -ne $region_size ] && err "$LINENO: decoder: $i sz: $sz region_size: $region_size"
>> -	[ $res -ne $region_base ] && err "$LINENO: decoder: $i base: $res region_base: $region_base"
>> +	[[ $sz -ne $region_size ]] && err "$LINENO: decoder: $i sz: $sz region_size: $region_size"
>> +	[[ $res -ne $region_base ]] && err "$LINENO: decoder: $i base: $res region_base: $region_base"
>>   done
>>   
>>   # validate all switch decoders have the correct settings
>> @@ -138,9 +138,9 @@ do
>>   
>>   	res=$(echo $decoder | jq -r ".resource")
>>   	sz=$(echo $decoder | jq -r ".size")
>> -	[ $sz -ne $region_size ] && err \
>> +	[[ $sz -ne $region_size ]] && err \
>>   	"$LINENO: decoder: $i sz: $sz region_size: $region_size"
>> -	[ $res -ne $region_base ] && err \
>> +	[[ $res -ne $region_base ]] && err \
>>   	"$LINENO: decoder: $i base: $res region_base: $region_base"
>>   done
>>   
>> -- 
>> 2.41.0
>>
>>
diff mbox series

Patch

diff --git a/test/cxl-region-sysfs.sh b/test/cxl-region-sysfs.sh
index 8636392..6a5da6d 100644
--- a/test/cxl-region-sysfs.sh
+++ b/test/cxl-region-sysfs.sh
@@ -108,8 +108,8 @@  do
 
 	sz=$(cat /sys/bus/cxl/devices/$i/size)
 	res=$(cat /sys/bus/cxl/devices/$i/start)
-	[ $sz -ne $region_size ] && err "$LINENO: decoder: $i sz: $sz region_size: $region_size"
-	[ $res -ne $region_base ] && err "$LINENO: decoder: $i base: $res region_base: $region_base"
+	[[ $sz -ne $region_size ]] && err "$LINENO: decoder: $i sz: $sz region_size: $region_size"
+	[[ $res -ne $region_base ]] && err "$LINENO: decoder: $i base: $res region_base: $region_base"
 done
 
 # validate all switch decoders have the correct settings
@@ -138,9 +138,9 @@  do
 
 	res=$(echo $decoder | jq -r ".resource")
 	sz=$(echo $decoder | jq -r ".size")
-	[ $sz -ne $region_size ] && err \
+	[[ $sz -ne $region_size ]] && err \
 	"$LINENO: decoder: $i sz: $sz region_size: $region_size"
-	[ $res -ne $region_base ] && err \
+	[[ $res -ne $region_base ]] && err \
 	"$LINENO: decoder: $i base: $res region_base: $region_base"
 done