Skip to content

Commit

Permalink
Update pytest/qemu, add 5.2, arm64 binaries
Browse files Browse the repository at this point in the history
Bump pytest/qemu and add esp-idf 5.2

Signed-off-by: Peter M <petermm@gmail.com>
  • Loading branch information
petermm committed Feb 23, 2024
1 parent e7ac8fc commit a0ba52f
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 16 deletions.
56 changes: 40 additions & 16 deletions .github/workflows/esp32-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,24 @@ jobs:
fail-fast: false

matrix:
esp-idf-target: ["esp32"]
idf-version:
- '4.4.6'
- '5.0.4'
- '5.0.6'
- '5.1.2'
- '5.2'

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Build with idf.py
shell: bash
working-directory: ./src/platforms/esp32/
run: |
. $IDF_PATH/export.sh
idf.py reconfigure
export IDF_TARGET=${{matrix.esp-idf-target}}
idf.py set-target ${{matrix.esp-idf-target}}
idf.py build
idf.py size
- name: Print component size info with idf.py
Expand All @@ -65,28 +68,49 @@ jobs:
DEBIAN_FRONTEND=noninteractive apt install -y -q \
doxygen erlang-base erlang-dialyzer \
libglib2.0-0 libpixman-1-0 \
gcc g++ zlib1g-dev
gcc g++ zlib1g-dev libsdl2-2.0-0 libslirp0 libmbedtls-dev
- name: Install qemu binary from espressif/qemu
if: matrix.idf-version != '5.1.2'
if: runner.arch != 'ARM64' && runner.os == 'Linux'
run: |
set -eu
QEMU_VER=esp-develop-20220919
QEMU_DIST=qemu-${QEMU_VER}.tar.bz2
QEMU_SHA256=f6565d3f0d1e463a63a7f81aec94cce62df662bd42fc7606de4b4418ed55f870
wget --no-verbose https://github.com/espressif/qemu/releases/download/${QEMU_VER}/${QEMU_DIST}
echo "${QEMU_SHA256} *${QEMU_DIST}" | sha256sum --check --strict -
tar -xf ${QEMU_DIST} -C /opt
QEMU_VER=esp-develop-8.2.0-20240122
# QEMU_RISCV32_DIST=qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-x86_64-linux-gnu.tar.xz
# QEMU_RISCV32_SHA256=95ac86d7b53bf98b5ff19c33aa926189b849f5a0daf8f41e160bc86c5e31abd4
# wget --no-verbose https://github.com/espressif/qemu/releases/download/${QEMU_VER}/${QEMU_RISCV32_DIST}
# echo "${QEMU_RISCV32_SHA256} *${QEMU_RISCV32_DIST}" | sha256sum --check --strict -
# tar -xf ${QEMU_RISCV32_DIST} -C /opt && rm ${QEMU_RISCV32_DIST}
QEMU_XTENSA_DIST=qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-x86_64-linux-gnu.tar.xz
QEMU_XTENSA_SHA256=e7c72ef5705ad1444d391711088c8717fc89f42e9bf6d1487f9c2a326b8cfa83
wget --no-verbose https://github.com/espressif/qemu/releases/download/${QEMU_VER}/${QEMU_XTENSA_DIST}
echo "${QEMU_XTENSA_SHA256} *${QEMU_XTENSA_DIST}" | sha256sum --check --strict -
tar -xf ${QEMU_XTENSA_DIST} -C /opt && rm ${QEMU_XTENSA_DIST}
- name: Install qemu binary from espressif/qemu ARM64
if: runner.arch == 'ARM64' && runner.os == 'Linux'
run: |
set -eu
QEMU_VER=esp-develop-8.2.0-20240122
# QEMU_RISCV32_DIST=qemu-riscv32-softmmu-esp_develop_8.2.0_20240122-aarch64-linux-gnu.tar.xz
# QEMU_RISCV32_SHA256=4089f7958f753779e5b4c93fe2469d62850a1f209b0bda8b75d55fe4a61ca39b
# wget --no-verbose https://github.com/espressif/qemu/releases/download/${QEMU_VER}/${QEMU_RISCV32_DIST}
# echo "${QEMU_RISCV32_SHA256} *${QEMU_RISCV32_DIST}" | sha256sum --check --strict -
# tar -xf ${QEMU_RISCV32_DIST} -C /opt && rm ${QEMU_RISCV32_DIST}
QEMU_XTENSA_DIST=qemu-xtensa-softmmu-esp_develop_8.2.0_20240122-aarch64-linux-gnu.tar.xz
QEMU_XTENSA_SHA256=77c83f2772f7d9b0c770722c2cebf3625d21d8eddbccfea6816f3d8f4982ea86
wget --no-verbose https://github.com/espressif/qemu/releases/download/${QEMU_VER}/${QEMU_XTENSA_DIST}
echo "${QEMU_XTENSA_SHA256} *${QEMU_XTENSA_DIST}" | sha256sum --check --strict -
tar -xf ${QEMU_XTENSA_DIST} -C /opt && rm ${QEMU_XTENSA_DIST}
- name: Install pytest and pytest-embedded plugins
run: |
set -e
. $IDF_PATH/export.sh
pip install pytest==7.0.1 \
pytest-embedded==1.2.5 \
pytest-embedded-serial-esp==1.2.5 \
pytest-embedded-idf==1.2.5 \
pytest-embedded-qemu==1.2.5
pip install pytest==7.4.4 \
pytest-embedded==1.8.0 \
pytest-embedded-serial-esp==1.8.0 \
pytest-embedded-idf==1.8.0 \
pytest-embedded-qemu==1.8.0
- name: Build ESP32 tests using idf.py
working-directory: ./src/platforms/esp32/test/
Expand Down
5 changes: 5 additions & 0 deletions src/platforms/esp32/test/main/test_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ TEST_CASE("test_esp_partition", "[test_run]")
TEST_ASSERT(term_to_int(ret_value) == 0);
}

// avoid: assert failed: sdmmc_ll_get_card_clock_div /IDF/components/hal/esp32/include/hal/sdmmc_ll.h:203 (hw->clksrc.card1 == 1)
// pending https://github.com/espressif/qemu/commit/fe80b1870651ef1227bffd7d4151aa2ce4bcf65f released
// due to assert fix in 5.2+ https://github.com/espressif/esp-idf/commit/263e39c32b447f7832744f2458f13abbfe2033a9
#if ESP_IDF_VERSION_MAJOR < 5 || (ESP_IDF_VERSION_MAJOR <= 5 && ESP_IDF_VERSION_MINOR < 2)
TEST_CASE("test_file", "[test_run]")
{
esp_vfs_fat_sdmmc_mount_config_t mount_config = {
Expand Down Expand Up @@ -213,6 +217,7 @@ TEST_CASE("test_file", "[test_run]")
esp_vfs_fat_sdcard_unmount(mount_point, card);
ESP_LOGI(TAG, "Card unmounted");
}
#endif

TEST_CASE("test_list_to_binary", "[test_run]")
{
Expand Down
1 change: 1 addition & 0 deletions src/platforms/esp32/test/sdkconfig.defaults
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=n
CONFIG_ESP_INT_WDT_TIMEOUT_MS=10000
CONFIG_ETH_USE_OPENETH=y
CONFIG_AVM_RTC_SLOW_MAX_SIZE=1024

0 comments on commit a0ba52f

Please sign in to comment.