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 <[email protected]> --- tests/ovs-macros.at | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 "$@") } -- 2.17.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
