Skip to content

Commit 7495637

Browse files
Improve HIL tests (#773)
* tests: Add log-format test * ci: Add list-ports test * feat: Read a larger flash section * feat: Update how we check the erase-region command * fix: Elf paths * fix: Typo * feat: Add defmt_log level * feat: Update defmt elf * docs: Add instructions to build defmt elf * feat: Change test order to keep a non-defmt elf flashed on c6
1 parent 403b93d commit 7495637

File tree

8 files changed

+47
-22
lines changed

8 files changed

+47
-22
lines changed

.github/workflows/hil.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ jobs:
7171
fail-fast: false
7272
env:
7373
ESPFLASH_PORT: /dev/serial_ports/${{ matrix.board.mcu }}
74-
ESPFLASH_APP: espflash/tests/data/${{ matrix.board.mcu }}
7574
steps:
7675
- uses: actions/checkout@v4
7776

@@ -89,7 +88,7 @@ jobs:
8988
run: bash espflash/tests/scripts/board-info.sh
9089

9190
- name: flash test
92-
run: bash espflash/tests/scripts/flash.sh ${{ env.ESPFLASH_APP }}
91+
run: bash espflash/tests/scripts/flash.sh ${{ matrix.board.mcu }}
9392

9493
- name: monitor test
9594
run: bash espflash/tests/scripts/monitor.sh
@@ -99,7 +98,7 @@ jobs:
9998

10099
- name: save-image/write-bin test
101100
run: |
102-
bash espflash/tests/scripts/save-image_write-bin.sh ${{ matrix.board.mcu }} ${{ env.ESPFLASH_APP }}
101+
bash espflash/tests/scripts/save-image_write-bin.sh ${{ matrix.board.mcu }}
103102
bash espflash/tests/scripts/monitor.sh
104103
105104
- name: erase-region test
@@ -113,3 +112,6 @@ jobs:
113112

114113
- name: checksum-md5 test
115114
run: bash espflash/tests/scripts/checksum-md5.sh
115+
116+
- name: list-ports test
117+
run: bash espflash/tests/scripts/list-ports.sh

espflash/tests/data/README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1-
The elf files under this folder have been generated using `[email protected]`:
1+
The `$CHIP` elf files under this folder have been generated using `[email protected]`:
22

33
```
44
esp-generate --chip=$CHIP --headless $CHIP
55
cd $CHIP
66
cargo build --release
77
```
8+
9+
The `esp32c6_defmt` elf file under this folder has been generated using `esp-generate@04d69c9`:
10+
11+
```
12+
esp-generate --chip=esp32c6 -o defmt --headless esp32c6_defmt
13+
cd esp32c6_defmt
14+
DEFMT_LOG=info cargo build --release
15+
```

espflash/tests/data/esp32c6_defmt

895 KB
Binary file not shown.

espflash/tests/scripts/erase-flash.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ echo "$result"
55
if [[ ! $result =~ "Flash has been erased!" ]]; then
66
exit 1
77
fi
8-
# TODO: Once https://github.com/esp-rs/espflash/issues/697 is resolved this should read a larger portion of flash
9-
result=$(espflash read-flash 0 0x200 flash_content.bin 2>&1)
8+
result=$(espflash read-flash 0 0x4000 flash_content.bin 2>&1)
109
echo "$result"
1110
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
1211
exit 1

espflash/tests/scripts/erase-region.sh

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,20 @@ echo "$result"
3030
if [[ ! $result =~ "Erasing region at" ]]; then
3131
exit 1
3232
fi
33-
# TODO: Once https://github.com/esp-rs/espflash/issues/697 is resolved we should look like:
34-
# https://github.com/esp-rs/espflash/pull/754/commits/288eced61e7b21deface52a67e2f023b388ce6ed#diff-083bacee91d55c6adddc9dcd306da31db24e33591d5453e819999552995b85b7R8-R23
35-
36-
# Check first 0x1000 bytes are FF
37-
result=$(espflash read-flash 0x1000 0x200 flash_content.bin 2>&1)
33+
result=$(espflash read-flash 0x1000 0x2000 flash_content.bin 2>&1)
3834
echo "$result"
3935
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
36+
echo "Failed to read flash contents"
4037
exit 1
4138
fi
42-
if hexdump -v -e '/1 "%02x"' "flash_content.bin" | grep -qv '^ff*$'; then
39+
# Check first 0x1000 bytes are FF
40+
if head -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -qv '^ff*$'; then
41+
echo "First 0x1000 bytes should be empty (FF)"
4342
exit 1
4443
fi
4544
# Check next 0x1000 bytes contain some non-FF bytes
46-
result=$(espflash read-flash 0x2000 0x200 flash_content.bin 2>&1)
47-
echo "$result"
48-
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
49-
echo "This region should be empty (FF)"
50-
exit 1
51-
fi
52-
if ! hexdump -v -e '/1 "%02x"' "flash_content.bin" | grep -q '[0-e]'; then
53-
echo "This region should contain some non-FF bytes"
45+
if ! tail -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -q '[0-e]'; then
46+
echo "Next 0x1000 bytes should contain some non-FF bytes"
5447
exit 1
5548
fi
5649
echo "Flash contents verified!"

espflash/tests/scripts/flash.sh

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
#!/usr/bin/env bash
2+
app="espflash/tests/data/$1"
23

3-
result=$(timeout 8s espflash flash --no-skip --monitor --non-interactive $1 2>&1)
4+
if [[ "$1" == "esp32c6" ]]; then
5+
app_defmt="${app}_defmt"
6+
result=$(timeout 8s espflash flash --no-skip --monitor --non-interactive $app_defmt --log-format defmt 2>&1)
7+
echo "$result"
8+
if [[ ! $result =~ "Flashing has completed!" ]]; then
9+
echo "Flashing failed!"
10+
exit 1
11+
fi
12+
if ! echo "$result" | grep -q "Hello world!"; then
13+
echo "Monitoring failed!"
14+
exit 1
15+
fi
16+
fi
17+
18+
result=$(timeout 8s espflash flash --no-skip --monitor --non-interactive $app 2>&1)
419
echo "$result"
520
if [[ ! $result =~ "Flashing has completed!" ]]; then
621
echo "Flashing failed!"

espflash/tests/scripts/list-ports.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash list-ports 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Silicon Labs" ]]; then
6+
exit 1
7+
fi

espflash/tests/scripts/save-image_write-bin.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#!/usr/bin/env bash
2+
app="espflash/tests/data/$1"
23

34
# if $1 is esp32c2, create an variable that contains `-x 26mhz`
45
if [[ $1 == "esp32c2" ]]; then
56
freq="-x 26mhz"
67
fi
78

8-
result=$(espflash save-image --merge --chip $1 $freq $2 app.bin 2>&1)
9+
result=$(espflash save-image --merge --chip $1 $freq $app app.bin 2>&1)
910
echo "$result"
1011
if [[ ! $result =~ "Image successfully saved!" ]]; then
1112
exit 1

0 commit comments

Comments
 (0)