Skip to content

Commit

Permalink
Update pytest/qemu, add 5.2rc, arm64 binaries
Browse files Browse the repository at this point in the history
Signed-off-by: Peter M <petermm@gmail.com>
  • Loading branch information
petermm committed Feb 10, 2024
1 parent 292f710 commit 4e0000c
Show file tree
Hide file tree
Showing 3 changed files with 44 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,23 @@ jobs:
fail-fast: false

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

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
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,34 +67,56 @@ 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
- 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.6.4 \
pytest-embedded-serial-esp==1.6.4 \
pytest-embedded-idf==1.6.4 \
pytest-embedded-qemu==1.6.4
- name: Build ESP32 tests using idf.py
working-directory: ./src/platforms/esp32/test/
run: |
set -e
. $IDF_PATH/export.sh
idf.py set-target ${{matrix.esp-idf-target}}
idf.py build
- name: Run ESP32 tests using qemu
Expand Down
3 changes: 3 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,8 @@ 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)
#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 +215,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 4e0000c

Please sign in to comment.