MeshTalos-Client/managed_components/espressif__esp-serial-flasher/test/run_test.sh
2025-12-03 14:20:11 +08:00

33 lines
No EOL
1.1 KiB
Bash

#!/bin/bash
set -e
mkdir -p build && cd build
if [ "$1" = "host" ]; then
cmake -DQEMU_TEST=False .. && cmake --build . && ./serial_flasher_test
elif [ "$1" = "qemu" ]; then
# QEMU_PATH environment variable has to be defined, pointing to qemu-system-xtensa
# Example: export QEMU_PATH=/home/user/esp/qemu/xtensa-softmmu/qemu-system-xtensa
if [ -z "${QEMU_PATH}" ]; then
echo "QEMU_PATH environment variable needs to be set"
exit 1
fi
# Generate empty file into which application will be flashed and compared against
dd if=/dev/zero bs=1024 count=4096 of="empty_file.bin"
# Run qemu in background (daemonized)
${QEMU_PATH} \
-daemonize \
-machine esp32 \
-drive file=empty_file.bin,if=mtd,format=raw \
-global driver=esp32.gpio,property=strap_mode,value=0x0f \
-serial tcp::5555,server,nowait
cmake -DQEMU_TEST=True .. && cmake --build . && ./serial_flasher_test
# Kill qemu process running in background
kill -9 $(pidof qemu-system-xtensa)
else
echo "Please select which test to run: qemu or host"
fi