On Mon, Jun 17, 2024 at 12:05:11PM +0200, Przemek Kitszel wrote: > On 6/17/24 10:28, Simon Horman wrote: > > openvswitch.sh makes use of substitutions of the form ${ns:0:1}, to > > obtain the first character of $ns. Empirically, this is works with bash > > but not dash. When run with dash these evaluate to an empty string and > > printing an error to stdout. > > > > # dash -c 'ns=client; echo "${ns:0:1}"' 2>error > > # cat error > > dash: 1: Bad substitution > > # bash -c 'ns=client; echo "${ns:0:1}"' 2>error > > c > > # cat error > > > > This leads to tests that neither pass nor fail. > > F.e. > > > > TEST: arp_ping [START] > > adding sandbox 'test_arp_ping' > > Adding DP/Bridge IF: sbx:test_arp_ping dp:arpping {, , } > > create namespaces > > ./openvswitch.sh: 282: eval: Bad substitution > > TEST: ct_connect_v4 [START] > > adding sandbox 'test_ct_connect_v4' > > Adding DP/Bridge IF: sbx:test_ct_connect_v4 dp:ct4 {, , } > > ./openvswitch.sh: 322: eval: Bad substitution > > create namespaces > > > > Resolve this by making openvswitch.sh a bash script. > > > > Fixes: 918423fda910 ("selftests: openvswitch: add an initial flow programming case") > > Signed-off-by: Simon Horman <horms@xxxxxxxxxx> > > That's good fix, > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx> > > sidenote: I like very much the idea to use the least powerful tool, like > sh vs bash, awk vs gawk, but it breaks when we forget what is outside of > the scope of the former/standard. > Perhaps for shell, we could convert all the selftests at once? Thanks, Now that you mention it, I have the same feelings. Do we ever expect to use the minimal tools, when other parts of the test suite depend on the enhanced ones? ...