@@ -64,21 +64,21 @@ jobs:
6464 # FinishTransmission() on the I2C slave when a STOP condition
6565 # occurs, causing the BME280 sensor to get stuck in Reading
6666 # state and ignore subsequent writes.
67- skip_i2c_test : true
67+ tests : " boot gpio spi crypto uart "
6868 - device : stm32f411ceu6
6969 max_size : 393216
7070 renode_platform : stm32f4.repl
7171 avm_address : " 0x08060000"
72- skip_i2c_test : true
7372 # No RNG peripheral on F411, so the firmware has no crypto NIFs
7473 # (mbedTLS is excluded by STM32_HAS_RNG in CMake).
75- skip_crypto_test : true
74+ tests : " boot gpio spi uart "
7675 - device : stm32f429zit6
7776 max_size : 524288
7877 - device : stm32h743vit6
7978 max_size : 524288
8079 renode_platform : stm32h743.repl
8180 avm_address : " 0x08080000"
81+ tests : " boot gpio i2c spi crypto uart"
8282 - device : stm32h743zit6
8383 max_size : 524288
8484 - device : stm32u585ait6q
9191 max_size : 524288
9292 renode_platform : stm32f746.repl
9393 avm_address : " 0x08080000"
94+ tests : " boot gpio i2c spi crypto uart"
9495 - device : stm32g474ret6
9596 max_size : 393216
9697 - device : stm32l476rgt6
@@ -102,10 +103,9 @@ jobs:
102103 # Renode's built-in stm32l552.repl uses STM32F4_I2C (legacy I2C
103104 # register layout) but the L5 HAL uses the newer I2C registers
104105 # (TIMINGR, ISR, etc.), causing a complete register mismatch.
105- skip_i2c_test : true
106106 # 512 KB flash with avm_address=0x08060000 leaves only 128 KB,
107107 # but the crypto AVM is 207 KB and gets truncated.
108- skip_crypto_test : true
108+ tests : " boot gpio spi uart "
109109 - device : stm32f207zgt6
110110 max_size : 524288
111111 - device : stm32u375rgt6
@@ -117,7 +117,7 @@ jobs:
117117 # No RNG peripheral on G0B1 (only G041/G061/G081/G0C1 have one),
118118 # so the firmware has no crypto NIFs (mbedTLS is excluded by
119119 # STM32_HAS_RNG in CMake).
120- skip_crypto_test : true
120+ tests : " boot gpio i2c spi uart "
121121
122122 steps :
123123 - uses : erlef/setup-beam@v1
@@ -195,7 +195,7 @@ jobs:
195195 mkdir build-host
196196 cd build-host
197197 cmake .. -G Ninja
198- cmake --build . -t stm32_boot_test stm32_gpio_test stm32_i2c_test stm32_spi_test stm32_crypto_test
198+ cmake --build . -t stm32_boot_test stm32_gpio_test stm32_i2c_test stm32_spi_test stm32_crypto_test stm32_uart_test
199199
200200 - name : Install Renode
201201 if : matrix.renode_platform
@@ -207,7 +207,7 @@ jobs:
207207 echo "$PWD/renode-portable" >> $GITHUB_PATH
208208 pip install -r renode-portable/tests/requirements.txt
209209
210- - name : Run Renode boot test
210+ - name : Run Renode tests
211211 if : matrix.renode_platform
212212 run : |
213213 LOCAL_REPL="src/platforms/stm32/tests/renode/${{ matrix.renode_platform }}"
@@ -216,71 +216,10 @@ jobs:
216216 else
217217 PLATFORM="@platforms/cpus/${{ matrix.renode_platform }}"
218218 fi
219- renode-test src/platforms/stm32/tests/renode/stm32_boot_test.robot \
220- --variable ELF:@$PWD/src/platforms/stm32/build/AtomVM-${{ matrix.device }}.elf \
221- --variable AVM:@$PWD/build-host/src/platforms/stm32/tests/test_erl_sources/stm32_boot_test.avm \
222- --variable AVM_ADDRESS:${{ matrix.avm_address }} \
223- --variable PLATFORM:$PLATFORM
224-
225- - name : Run Renode GPIO test
226- if : matrix.renode_platform
227- run : |
228- LOCAL_REPL="src/platforms/stm32/tests/renode/${{ matrix.renode_platform }}"
229- if [ -f "$LOCAL_REPL" ]; then
230- PLATFORM="@$PWD/$LOCAL_REPL"
231- else
232- PLATFORM="@platforms/cpus/${{ matrix.renode_platform }}"
233- fi
234- renode-test src/platforms/stm32/tests/renode/stm32_gpio_test.robot \
235- --variable ELF:@$PWD/src/platforms/stm32/build/AtomVM-${{ matrix.device }}.elf \
236- --variable AVM:@$PWD/build-host/src/platforms/stm32/tests/test_erl_sources/stm32_gpio_test.avm \
237- --variable AVM_ADDRESS:${{ matrix.avm_address }} \
238- --variable PLATFORM:$PLATFORM
239-
240- - name : Run Renode I2C test
241- if : matrix.renode_platform && !matrix.skip_i2c_test
242- run : |
243- LOCAL_REPL="src/platforms/stm32/tests/renode/${{ matrix.renode_platform }}"
244- if [ -f "$LOCAL_REPL" ]; then
245- PLATFORM="@$PWD/$LOCAL_REPL"
246- else
247- PLATFORM="@platforms/cpus/${{ matrix.renode_platform }}"
248- fi
249- renode-test src/platforms/stm32/tests/renode/stm32_i2c_test.robot \
250- --variable ELF:@$PWD/src/platforms/stm32/build/AtomVM-${{ matrix.device }}.elf \
251- --variable AVM:@$PWD/build-host/src/platforms/stm32/tests/test_erl_sources/stm32_i2c_test.avm \
252- --variable AVM_ADDRESS:${{ matrix.avm_address }} \
253- --variable PLATFORM:$PLATFORM
254-
255- - name : Run Renode SPI test
256- if : matrix.renode_platform
257- run : |
258- LOCAL_REPL="src/platforms/stm32/tests/renode/${{ matrix.renode_platform }}"
259- if [ -f "$LOCAL_REPL" ]; then
260- PLATFORM="@$PWD/$LOCAL_REPL"
261- else
262- PLATFORM="@platforms/cpus/${{ matrix.renode_platform }}"
263- fi
264- renode-test src/platforms/stm32/tests/renode/stm32_spi_test.robot \
265- --variable ELF:@$PWD/src/platforms/stm32/build/AtomVM-${{ matrix.device }}.elf \
266- --variable AVM:@$PWD/build-host/src/platforms/stm32/tests/test_erl_sources/stm32_spi_test.avm \
267- --variable AVM_ADDRESS:${{ matrix.avm_address }} \
268- --variable PLATFORM:$PLATFORM
269-
270- - name : Run Renode crypto test
271- # Devices without RNG hardware (F411 / G0) don't ship mbedTLS at all;
272- # L562 has only 512 KB of flash and the 207 KB crypto AVM is truncated
273- # at AVM_ADDRESS=0x08060000, which kills kernel boot.
274- if : matrix.renode_platform && !matrix.skip_crypto_test
275- run : |
276- LOCAL_REPL="src/platforms/stm32/tests/renode/${{ matrix.renode_platform }}"
277- if [ -f "$LOCAL_REPL" ]; then
278- PLATFORM="@$PWD/$LOCAL_REPL"
279- else
280- PLATFORM="@platforms/cpus/${{ matrix.renode_platform }}"
281- fi
282- renode-test src/platforms/stm32/tests/renode/stm32_crypto_test.robot \
283- --variable ELF:@$PWD/src/platforms/stm32/build/AtomVM-${{ matrix.device }}.elf \
284- --variable AVM:@$PWD/build-host/src/platforms/stm32/tests/test_erl_sources/stm32_crypto_test.avm \
285- --variable AVM_ADDRESS:${{ matrix.avm_address }} \
286- --variable PLATFORM:$PLATFORM
219+ for TEST in ${{ matrix.tests }}; do
220+ renode-test "src/platforms/stm32/tests/renode/stm32_${TEST}_test.robot" \
221+ --variable ELF:@$PWD/src/platforms/stm32/build/AtomVM-${{ matrix.device }}.elf \
222+ --variable AVM:@$PWD/build-host/src/platforms/stm32/tests/test_erl_sources/stm32_${TEST}_test.avm \
223+ --variable AVM_ADDRESS:${{ matrix.avm_address }} \
224+ --variable PLATFORM:$PLATFORM
225+ done
0 commit comments