tools/testing/selftests/net/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The testcase failed as below:
$./vlan_bridge_binding.sh
...
+ adf_ip_link_set_up d1
+ local name=d1
+ shift
+ ip_link_is_up d1
+ ip_link_has_flag d1 UP
+ local name=d1
+ shift
+ local flag=UP
+ shift
++ ip -j link show d1
++ jq --arg flag UP 'any(.[].flags.[]; . == $flag)'
jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START
(Unix shell quoting issues?) at <top-level>, line 1:
any(.[].flags.[]; . == $flag)
jq: 1 compile error
Remove the extra dot (.) after flags array to fix this.
Fixes: 4baa1d3a5080 ("selftests: net: lib: Add ip_link_has_flag()")
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
---
tools/testing/selftests/net/lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh
index 0ec131b339bc..b40694573f4c 100644
--- a/tools/testing/selftests/net/lib.sh
+++ b/tools/testing/selftests/net/lib.sh
@@ -577,7 +577,7 @@ ip_link_has_flag()
local flag=$1; shift
local state=$(ip -j link show "$name" |
- jq --arg flag "$flag" 'any(.[].flags.[]; . == $flag)')
+ jq --arg flag "$flag" 'any(.[].flags[]; . == $flag)')
[[ $state == true ]]
}
--
2.39.2
Yue Haibing <yuehaibing@huawei.com> writes:
> The testcase failed as below:
> $./vlan_bridge_binding.sh
> ...
> + adf_ip_link_set_up d1
> + local name=d1
> + shift
> + ip_link_is_up d1
> + ip_link_has_flag d1 UP
> + local name=d1
> + shift
> + local flag=UP
> + shift
> ++ ip -j link show d1
> ++ jq --arg flag UP 'any(.[].flags.[]; . == $flag)'
> jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START
> (Unix shell quoting issues?) at <top-level>, line 1:
> any(.[].flags.[]; . == $flag)
> jq: 1 compile error
>
> Remove the extra dot (.) after flags array to fix this.
>
> Fixes: 4baa1d3a5080 ("selftests: net: lib: Add ip_link_has_flag()")
> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Interesting, both work for me on 1.7.1. What jq version do you use?
Nevertheless, I believe the fix is correct.
Reviewed-by: Petr Machata <petrm@nvidia.com>
> ---
> tools/testing/selftests/net/lib.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh
> index 0ec131b339bc..b40694573f4c 100644
> --- a/tools/testing/selftests/net/lib.sh
> +++ b/tools/testing/selftests/net/lib.sh
> @@ -577,7 +577,7 @@ ip_link_has_flag()
> local flag=$1; shift
>
> local state=$(ip -j link show "$name" |
> - jq --arg flag "$flag" 'any(.[].flags.[]; . == $flag)')
> + jq --arg flag "$flag" 'any(.[].flags[]; . == $flag)')
> [[ $state == true ]]
> }
On 2026/2/12 0:01, Petr Machata wrote:
>
> Yue Haibing <yuehaibing@huawei.com> writes:
>
>> The testcase failed as below:
>> $./vlan_bridge_binding.sh
>> ...
>> + adf_ip_link_set_up d1
>> + local name=d1
>> + shift
>> + ip_link_is_up d1
>> + ip_link_has_flag d1 UP
>> + local name=d1
>> + shift
>> + local flag=UP
>> + shift
>> ++ ip -j link show d1
>> ++ jq --arg flag UP 'any(.[].flags.[]; . == $flag)'
>> jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START
>> (Unix shell quoting issues?) at <top-level>, line 1:
>> any(.[].flags.[]; . == $flag)
>> jq: 1 compile error
>>
>> Remove the extra dot (.) after flags array to fix this.
>>
>> Fixes: 4baa1d3a5080 ("selftests: net: lib: Add ip_link_has_flag()")
>> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
>
> Interesting, both work for me on 1.7.1. What jq version do you use?
I run this on Ubuntu 23.04,
jq - commandline JSON processor [version 1.6]
>
> Nevertheless, I believe the fix is correct.
>
> Reviewed-by: Petr Machata <petrm@nvidia.com>
>
>> ---
>> tools/testing/selftests/net/lib.sh | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh
>> index 0ec131b339bc..b40694573f4c 100644
>> --- a/tools/testing/selftests/net/lib.sh
>> +++ b/tools/testing/selftests/net/lib.sh
>> @@ -577,7 +577,7 @@ ip_link_has_flag()
>> local flag=$1; shift
>>
>> local state=$(ip -j link show "$name" |
>> - jq --arg flag "$flag" 'any(.[].flags.[]; . == $flag)')
>> + jq --arg flag "$flag" 'any(.[].flags[]; . == $flag)')
>> [[ $state == true ]]
>> }
>
Yue Haibing <yuehaibing@huawei.com> writes: > On 2026/2/12 0:01, Petr Machata wrote: >> >> Yue Haibing <yuehaibing@huawei.com> writes: >> >>> ++ jq --arg flag UP 'any(.[].flags.[]; . == $flag)' >>> jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START >>> (Unix shell quoting issues?) at <top-level>, line 1: >>> any(.[].flags.[]; . == $flag) >>> jq: 1 compile error >>> >>> Remove the extra dot (.) after flags array to fix this. >> >> Interesting, both work for me on 1.7.1. What jq version do you use? > > I run this on Ubuntu 23.04, > jq - commandline JSON processor [version 1.6] Hmm, I see, 1.6 doesn't seem to have accepted the syntax. Thanks for the fix!
© 2016 - 2026 Red Hat, Inc.