#!/bin/bash
# Run some tests as root. Output TAP format because why not

set -e

timeout="timeout 300s"
ret=0
i=0

for d in /usr/lib/dbus-1.0/installed-tests/dbus
do
    export DBUS_TEST_DATA="$d/data"
    export DBUS_TEST_EXEC="$d"

    for t in \
        $d/test-dbus-daemon \
        $d/test-uid-permissions \
        ${NULL}
    do
        i=$(( $i + 1 ))
        echo "# $i - $t ..."
        echo "x" > "$ADTTMP/result"
        (
            set +e
            # One test needs us to have a small fd limit
            ulimit -S -n 1024
            ulimit -H -n 1024
            $timeout $t --tap
            echo "$?" > "$ADTTMP/result"
        ) | sed 's/^/    /'
        e="$(cat "$ADTTMP/result")"
        case "$e" in
            (0)
                echo "ok $i - $t"
                ;;
            (77)
                echo "ok $i # SKIP $t"
                ;;
            (*)
                echo "not ok $i - $t ($e)"
                ret=1
                ;;
        esac
    done
done

echo "1..$i"
exit $ret
