set -o posix is not portable, needs a guard

got hit by this on FreeBSD where /bin/sh is not bash.
tests/fakes de-bashed

(( expr )) is a bashism, $(( expr )) expands to the result
and blows up (because the expansion is not a command).