summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-11-06 12:43:04 +1100
committerDamien George <damien@micropython.org>2024-11-13 11:51:35 +1100
commit76e6c6345cbaa694ac8f33cfc8b8daaa11fd58ed (patch)
tree4c0a0d17c78b7403870b65e446af43173d630e05
parent69023622ee837df051ef7e606c2f0511015d01f7 (diff)
tools/mpremote: Make sure stdout and stderr output appear in order.
mpremote error messages now go to stderr, so make sure stdout is flushed before printing them. Also update the test runner to capture error messages. Signed-off-by: Damien George <damien@micropython.org>
-rw-r--r--tools/mpremote/mpremote/main.py3
-rwxr-xr-xtools/mpremote/tests/run-mpremote-tests.sh2
2 files changed, 4 insertions, 1 deletions
diff --git a/tools/mpremote/mpremote/main.py b/tools/mpremote/mpremote/main.py
index 8c0a6cd22..e6e397020 100644
--- a/tools/mpremote/mpremote/main.py
+++ b/tools/mpremote/mpremote/main.py
@@ -547,7 +547,10 @@ def main():
return 0
except CommandError as e:
+ # Make sure existing stdout appears before the error message on stderr.
+ sys.stdout.flush()
print(f"{_PROG}: {e}", file=sys.stderr)
+ sys.stderr.flush()
return 1
finally:
do_disconnect(state)
diff --git a/tools/mpremote/tests/run-mpremote-tests.sh b/tools/mpremote/tests/run-mpremote-tests.sh
index 11d82c9bb..b25b5fd7d 100755
--- a/tools/mpremote/tests/run-mpremote-tests.sh
+++ b/tools/mpremote/tests/run-mpremote-tests.sh
@@ -16,7 +16,7 @@ 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}" | tr -d '\r' | sed "s,${TMP},"'${TMP},g' > "${t}.out"; then
+ 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