If we're running Windows executables using Wine, then tap-driver.sh
won't accept "1..4\r\n" as TAP syntax.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92538
Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
set -e
t="$1"
shift
-exec "$t" --tap "$@"
+
+case "$t" in
+ (*.exe)
+ # We're running a Windows executable, possibly on a Unix
+ # platform. Avoid having invalid TAP syntax like "ok 3\r\n"
+ # where "ok 3\n" was intended.
+ echo 1 > "$t".exit-status.tmp
+ (
+ set +e
+ "$t" --tap "$@"
+ echo "$?" > "$t".exit-status.tmp
+ ) | sed -e 's/\r$//'
+ e="$(cat "$t".exit-status.tmp)"
+ rm "$t".exit-status.tmp
+ exit "$e"
+ ;;
+
+ (*)
+ exec "$t" --tap "$@"
+ ;;
+esac