summaryrefslogtreecommitdiffstatshomepage
path: root/tools/mpremote/tests/run-mpremote-tests.sh
blob: b25b5fd7d2966ab60bde0e3a6facd41c2bef9504 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
set -e

TEST_DIR=$(dirname $0)
MPREMOTE=${TEST_DIR}/../mpremote.py

if [ -z "$1" ]; then
    # Find tests matching test_*.sh
    TESTS=${TEST_DIR}/test_*.sh
else
    # Specific test path from the command line.
    TESTS="$1"
fi

for t in $TESTS; do
    TMP=$(mktemp -d)
    echo -n "${t}: "
    # Strip CR and replace the random temp dir with a token.
    if env MPREMOTE=${MPREMOTE} TMP="${TMP}" "${t}" 2>&1 | tr -d '\r' | sed "s,${TMP},"'${TMP},g' > "${t}.out"; then
        if diff "${t}.out" "${t}.exp" > /dev/null; then
            echo "OK"
        else
            echo "FAIL"
            diff "${t}.out" "${t}.exp" || true
        fi
    else
        echo "CRASH"
    fi
    rm -r "${TMP}"
done