summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@samsung.com>2019-01-25 16:21:22 +0300
committerBen Pfaff <blp@ovn.org>2019-01-25 11:08:10 -0800
commit39bd2f6b7074780418880f156fac7276affea6a3 (patch)
tree786d6fbb169df54ed9d7ec30355ec23bf9fa00de
parent9e4f118e2caa7e08556a7327dcb8ba7233ab42c2 (diff)
downloadopenvswitch-39bd2f6b7074780418880f156fac7276affea6a3.tar.gz
ovs-macros.at: Better hide 'exec -a' checking.
There is some issue with parsing of redirection options on some shells. For example: $ (exec -a name true) 2>&1 >/dev/null || echo "failed" sh: 10: exec: -a: not found failed $ (exec -a name true) >/dev/null 2>&1 || echo "failed" failed So, the order of redirections matters for some reason. Let's replace our current version with simple redirection of stderr. This version seems to work in most of shells except [t]csh. But it's really tricky to write portable redirections that works with csh and this shell will not be used by the testsuite on most of the systems. With the new version: # cat test.sh ((exec -a myname true 2>/dev/null) && echo "OK") || echo "fail" # sh ./test.sh fail # bash ./test.sh OK # tcsh ./test.sh -a: Command not found. fail Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
-rw-r--r--tests/ovs-macros.at2
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at
index 4a21f72b2..10593429d 100644
--- a/tests/ovs-macros.at
+++ b/tests/ovs-macros.at
@@ -173,7 +173,7 @@ uuidfilt () {
# prints a message if a bunch of identical processes are running.
#
# Not all shells support "exec -a NAME", so test for it.
-if (exec -a myname true 2>&1 >/dev/null); then
+if (exec -a myname true 2>/dev/null); then
run_as () {
(exec -a "$@")
}