diff options
author | Ilya Maximets <i.maximets@samsung.com> | 2019-01-25 16:21:22 +0300 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2019-01-25 11:08:10 -0800 |
commit | 39bd2f6b7074780418880f156fac7276affea6a3 (patch) | |
tree | 786d6fbb169df54ed9d7ec30355ec23bf9fa00de | |
parent | 9e4f118e2caa7e08556a7327dcb8ba7233ab42c2 (diff) | |
download | openvswitch-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.at | 2 |
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 "$@") } |