[ovs-dev] [PATCH] treewide: Get rid of "echo -n", and add a test to prevent regression.
Ben Pfaff
blp at ovn.org
Fri Oct 27 16:59:33 UTC 2017
"echo -n" is not POSIX and has spotty support in shells.
CC: Timothy Redaelli <tredaelli at redhat.com>
CC: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
Makefile.am | 11 +++++++++++
tests/automake.mk | 2 +-
tests/ofp-print.at | 10 +++++-----
tests/ofproto-dpif.at | 6 +++---
tutorial/ovs-sandbox | 2 +-
5 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 31d6331792af..5ceb3822c976 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -303,6 +303,17 @@ check-endian:
fi
.PHONY: check-endian
+ALL_LOCAL += check-echo-n
+check-echo-n:
+ @if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1 && \
+ git --no-pager grep -n 'echo'' -n' $(srcdir); \
+ then \
+ echo "See above for uses for \"echo"" -n\", which is non-POSIX"; \
+ echo "and does not work with all shells. Use \"printf\" instead."; \
+ exit 1; \
+ fi
+.PHONY: check-echo-n
+
ALL_LOCAL += thread-safety-check
thread-safety-check:
@cd $(srcdir); \
diff --git a/tests/automake.mk b/tests/automake.mk
index 156b40f58d7c..198ba64e5cc2 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -201,7 +201,7 @@ $(valgrind_wrappers): tests/valgrind-wrapper.in
CLEANFILES += $(valgrind_wrappers)
EXTRA_DIST += tests/valgrind-wrapper.in
-VALGRIND = valgrind --log-file=valgrind.%p --leak-check=full \
+VALGRIND = valgrind --log-file=valgrind.%p --leak-check=no \
--suppressions=$(abs_top_srcdir)/tests/glibc.supp \
--suppressions=$(abs_top_srcdir)/tests/openssl.supp --num-callers=20
HELGRIND = valgrind --log-file=helgrind.%p --tool=helgrind \
diff --git a/tests/ofp-print.at b/tests/ofp-print.at
index 50083a34d556..17682aa73db2 100644
--- a/tests/ofp-print.at
+++ b/tests/ofp-print.at
@@ -1656,26 +1656,26 @@ AT_KEYWORDS([ofp-print OFPT_STATS_REPLY])
00 00 00 07 00 00 00 00 00 0f 42 40 "
tail="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"
- echo -n "03 13 7f 90 00 00 00 02 00 03 00 00 00 00 00 00 "
+ printf "03 13 7f 90 00 00 00 02 00 03 00 00 00 00 00 00 "
x=0
printf "%02x $pad7" $x
printf "%s$pad32" "classifier" | od -A n -t x1 -v -N 32 | tr '\n' ' '
- echo -n "$mid 00 00 00 01 "
- echo -n "00 00 00 00 00 01 23 76 00 00 00 00 00 01 9e 28 "
+ printf "$mid 00 00 00 01 "
+ printf "00 00 00 00 00 01 23 76 00 00 00 00 00 01 9e 28 "
x=1
while test $x -lt 254; do
printf "%02x $pad7" $x
printf "%s$pad32" "table$x" | od -A n -t x1 -v -N 32 | tr '\n' ' '
- echo -n "$mid 00 00 00 00 $tail "
+ printf "$mid 00 00 00 00 $tail "
x=`expr $x + 1`
done
x=254
printf "%02x $pad7" $x
printf "%s$pad32" "table$x" | od -A n -t x1 -v -N 32 | tr '\n' ' '
- echo -n "$mid 00 00 00 02 $tail") > in
+ printf "$mid 00 00 00 02 $tail") > in
AT_CHECK([ovs-ofctl ofp-print - < in], [0], [expout])
AT_CLEANUP
diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at
index c75a1acbf906..583907b9aa0d 100644
--- a/tests/ofproto-dpif.at
+++ b/tests/ofproto-dpif.at
@@ -7333,7 +7333,7 @@ m4_define([OFPROTO_DPIF_GET_FLOW],
set Open_vSwitch . other_config:max-idle=10000], [], [],
[m4_if([$1], [], [], [--dummy-numa="0,0,0,0,1,1,1,1"])])
- func=`echo -n "$1_" | cut -c 4-`
+ func=`printf '%s_' "$1" | cut -c 4-`
add_${func}of_ports br0 1 2
AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
@@ -7665,7 +7665,7 @@ m4_define([OFPROTO_DPIF_MEGAFLOW_NORMAL],
[AT_SETUP([ofproto-dpif megaflow - normal$1])
OVS_VSWITCHD_START([], [], [], [m4_if([$1], [], [], [--dummy-numa="0,0,0,0,1,1,1,1"])])
AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg])
- func=`echo -n "$1_" | cut -c 4-`
+ func=`printf '%s_' "$1" | cut -c 4-`
add_${func}of_ports br0 1 2
AT_CHECK([ovs-ofctl add-flow br0 action=normal])
AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
@@ -8068,7 +8068,7 @@ m4_define([OFPROTO_DPIF_MEGAFLOW_DISABLED],
[AT_SETUP([ofproto-dpif megaflow - disabled$1])
OVS_VSWITCHD_START([], [], [], [m4_if([$1], [], [], [--dummy-numa="0,0,0,0,1,1,1,1"])])
AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg])
- func=`echo -n "$1_" | cut -c 4-`
+ func=`printf '%s_' "$1" | cut -c 4-`
add_${func}of_ports br0 1 2
AT_DATA([flows.txt], [dnl
table=0 in_port=1,ip,nw_dst=10.0.0.1 actions=output(2)
diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox
index 7ae8cdb8a782..1632ad15da5a 100755
--- a/tutorial/ovs-sandbox
+++ b/tutorial/ovs-sandbox
@@ -385,7 +385,7 @@ sleep 0.1
#Wait for ovsdb-server to finish launching.
if test ! -e "$sandbox"/db.sock; then
- echo -n "Waiting for ovsdb-server to start..."
+ printf "Waiting for ovsdb-server to start..."
while test ! -e "$sandbox"/db.sock; do
sleep 1;
done
--
2.10.2
More information about the dev
mailing list