Using "pushd tests && test-command && popd" loses the exit code of the test command, as it's not taken into account by "set -e" when the command is part of a "&&" list. Fix this by simply splitting such lists in their individual commands.