]> git.proxmox.com Git - mirror_ovs.git/commit - tests/ovs-macros.at
ovs-macros.at: Better hide 'exec -a' checking.
authorIlya Maximets <i.maximets@samsung.com>
Fri, 25 Jan 2019 13:21:22 +0000 (16:21 +0300)
committerBen Pfaff <blp@ovn.org>
Fri, 25 Jan 2019 19:08:10 +0000 (11:08 -0800)
commit39bd2f6b7074780418880f156fac7276affea6a3
tree786d6fbb169df54ed9d7ec30355ec23bf9fa00de
parent9e4f118e2caa7e08556a7327dcb8ba7233ab42c2
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>
tests/ovs-macros.at