summaryrefslogtreecommitdiffstatshomepage
path: root/tools
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-11-06 12:43:04 +1100
committerDamien George <damien@micropython.org>2024-11-18 23:27:13 +1100
commitc1a85bb6debb6f20a19d8699f2a009fadd4ed9d2 (patch)
treeb994e8002e48a811d01eea4e712a7d8412a36fd9 /tools
parent72799f99739f99496fd82b06b0c55ad7f58d2290 (diff)
downloadmicropython-c1a85bb6debb6f20a19d8699f2a009fadd4ed9d2.tar.gz
micropython-c1a85bb6debb6f20a19d8699f2a009fadd4ed9d2.zip
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>
Diffstat (limited to 'tools')
-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 8c0a6cd224..e6e397020f 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 11d82c9bb3..b25b5fd7d2 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