Skip to content

Commit 288eced

Browse files
committed
ci: Use bash scripts
1 parent c6b82b1 commit 288eced

File tree

10 files changed

+125
-98
lines changed

10 files changed

+125
-98
lines changed

Diff for: .github/workflows/hil.yml

+16-98
Original file line numberDiff line numberDiff line change
@@ -89,122 +89,40 @@ jobs:
8989
name: espflash
9090
path: espflash_app
9191

92-
- run: chmod +x espflash_app/espflash
92+
- run: |
93+
chmod +x espflash_app/espflash
94+
export PATH="$PWD/espflash_app:$PATH"
95+
echo "$PATH" >> "$GITHUB_PATH"
9396
9497
- name: board-info test
9598
shell: bash
96-
run: |
97-
result=$(espflash_app/espflash board-info)
98-
echo "$result"
99-
if [[ $? -ne 0 || ! "$result" =~ "esp32" ]]; then
100-
exit 1
101-
fi
99+
run: bash espflash/tests/scripts/board-info.sh
102100

103101
- name: flash test
104102
shell: bash
105-
run: |
106-
result=$(espflash_app/espflash flash --no-skip ${{ env.ESPFLASH_APP }} 2>&1)
107-
echo "$result"
108-
if [[ ! $result =~ "Flashing has completed!" ]]; then
109-
exit 1
110-
fi
103+
run: bash espflash/tests/scripts/flash.sh ${{ env.ESPFLASH_APP }}
111104

112105
- name: monitor test
113106
shell: bash
114-
run: |
115-
result=$(timeout 5s espflash_app/espflash monitor --non-interactive || true)
116-
echo "$result"
117-
if ! echo "$result" | grep -q "Hello world!"; then
118-
exit 1
119-
fi
107+
run: bash espflash/tests/scripts/monitor.sh
120108

121-
- name: erase-flash test
122-
run: |
123-
result=$(espflash_app/espflash erase-flash 2>&1)
124-
echo "$result"
125-
if [[ ! $result =~ "Flash has been erased!" ]]; then
126-
exit 1
127-
fi
128-
result=$(espflash_app/espflash read-flash 0 0x200 flash_content.bin 2>&1)
129-
echo "$result"
130-
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
131-
exit 1
132-
fi
133-
echo "Checking if flash is empty"
134-
if hexdump -v -e '/1 "%02x"' "flash_content.bin" | grep -qv '^ff*$'; then
135-
exit 1
136-
fi
137-
echo "Flash is empty!"
109+
# - name: erase-flash test
110+
# run: bash espflash/tests/scripts/erase-flash.sh
138111

139112
- name: save-image/write-bin test
140113
run: |
141-
result=$(espflash_app/espflash save-image --merge --chip ${{ matrix.board.mcu }} ${{ matrix.board.flag }} ${{ env.ESPFLASH_APP }} app.bin 2>&1)
142-
echo "$result"
143-
if [[ ! $result =~ "Image successfully saved!" ]]; then
144-
exit 1
145-
fi
146-
echo "Writting binary"
147-
result=$(espflash_app/espflash write-bin 0x0 app.bin 2>&1)
148-
echo "$result"
149-
if [[ ! $result =~ "Binary successfully written to flash!" ]]; then
150-
exit 1
151-
fi
152-
echo "Monitoring..."
153-
result=$(timeout 5s espflash_app/espflash monitor --non-interactive || true)
154-
echo "$result"
155-
if ! echo "$result" | grep -q "Hello world!"; then
156-
exit 1
157-
fi
114+
bash espflash/tests/scripts/save-image_write-bin.sh ${{ matrix.board.mcu }} ${{ matrix.board.flag }} ${{ env.ESPFLASH_APP }}
115+
bash espflash/tests/scripts/monitor.sh
158116
159117
- name: erase-region test
160-
run: |
161-
result=$(espflash_app/espflash erase-region 0x1000 0x1000 2>&1)
162-
echo "$result"
163-
if [[ ! $result =~ "Erasing region at" ]]; then
164-
exit 1
165-
fi
166-
result=$(espflash_app/espflash read-flash 0x1000 0x2000 flash_content.bin 2>&1)
167-
echo "$result"
168-
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
169-
exit 1
170-
fi
171-
# Check first 0x1000 bytes are FF
172-
if head -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -qv '^ff*$'; then
173-
echo "First 0x1000 bytes should be empty (FF)"
174-
exit 1
175-
fi
176-
# Check next 0x1000 bytes contain some non-FF bytes
177-
if ! tail -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -q '[0-e]'; then
178-
echo "Next 0x1000 bytes should contain some non-FF bytes"
179-
exit 1
180-
fi
181-
echo "Flash contents verified!"
118+
run: bash espflash/tests/scripts/erase-region.sh
182119

183120
- name: hold-in-reset test
184-
run: |
185-
result=$(espflash_app/espflash hold-in-reset 2>&1)
186-
echo "$result"
187-
if [[ ! $result =~ "Holding target device in reset" ]]; then
188-
exit 1
189-
fi
121+
run: bash espflash/tests/scripts/hold-in-reset.sh
190122

191123
- name: reset test
192-
run: |
193-
result=$(espflash_app/espflash reset 2>&1)
194-
echo "$result"
195-
if [[ ! $result =~ "Resetting target device" ]]; then
196-
exit 1
197-
fi
124+
run: bash espflash/tests/scripts/reset.sh
198125

199126
- name: checksum-md5 test
200-
run: |
201-
result=$(espflash_app/espflash erase-flash 2>&1)
202-
echo "$result"
203-
if [[ ! $result =~ "Flash has been erased!" ]]; then
204-
exit 1
205-
fi
206-
result=$(espflash_app/espflash checksum-md5 --address 0x1000 --length 0x100 2>&1)
207-
echo "$result"
208-
if [[ ! $result =~ "0x827f263ef9fb63d05499d14fcef32f60" ]]; then
209-
exit 1
210-
fi
127+
run: bash espflash/tests/scripts/checksum-md5.sh
128+

Diff for: espflash/tests/scripts/board-info.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash board-info)
4+
echo "$result"
5+
if [[ $? -ne 0 || ! "$result" =~ "esp32" ]]; then
6+
exit 1
7+
fi

Diff for: espflash/tests/scripts/checksum-md5.sh

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash erase-flash 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Flash has been erased!" ]]; then
6+
exit 1
7+
fi
8+
result=$(espflash checksum-md5 --address 0x1000 --length 0x100 2>&1)
9+
echo "$result"
10+
if [[ ! $result =~ "0x827f263ef9fb63d05499d14fcef32f60" ]]; then
11+
exit 1
12+
fi

Diff for: espflash/tests/scripts/erase-flash.sh

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash erase-region 0x1000 0x1000 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Erasing region at" ]]; then
6+
exit 1
7+
fi
8+
echo "Flash region erased!"
9+
echo "Reading flash content..."
10+
result=$(espflash read-flash 0x1000 0x2000 flash_content.bin 2>&1)
11+
echo "$result"
12+
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
13+
exit 1
14+
fi
15+
# Check first 0x1000 bytes are FF
16+
if head -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -qv '^ff*$'; then
17+
echo "First 0x1000 bytes should be empty (FF)"
18+
exit 1
19+
fi
20+
# Check next 0x1000 bytes contain some non-FF bytes
21+
if ! tail -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -q '[0-e]'; then
22+
echo "Next 0x1000 bytes should contain some non-FF bytes"
23+
exit 1
24+
fi
25+
echo "Flash contents verified!"

Diff for: espflash/tests/scripts/erase-region.sh

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash erase-region 0x1000 0x1000 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Erasing region at" ]]; then
6+
exit 1
7+
fi
8+
result=$(espflash read-flash 0x1000 0x2000 flash_content.bin 2>&1)
9+
echo "$result"
10+
if [[ ! $result =~ "Flash content successfully read and written to" ]]; then
11+
exit 1
12+
fi
13+
# Check first 0x1000 bytes are FF
14+
if head -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -qv '^ff*$'; then
15+
echo "First 0x1000 bytes should be empty (FF)"
16+
exit 1
17+
fi
18+
# Check next 0x1000 bytes contain some non-FF bytes
19+
if ! tail -c 4096 flash_content.bin | hexdump -v -e '/1 "%02x"' | grep -q '[0-e]'; then
20+
echo "Next 0x1000 bytes should contain some non-FF bytes"
21+
exit 1
22+
fi
23+
echo "Flash contents verified!"

Diff for: espflash/tests/scripts/flash.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash flash --no-skip $1 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Flashing has completed!" ]]; then
6+
exit 1
7+
fi

Diff for: espflash/tests/scripts/hold-in-reset.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash hold-in-reset 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Holding target device in reset" ]]; then
6+
exit 1
7+
fi

Diff for: espflash/tests/scripts/monitor.sh

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/usr/bin/env bash
2+
3+
echo "Monitoring..."
4+
result=$(timeout 5s espflash monitor --non-interactive || true)
5+
echo "$result"
6+
if ! echo "$result" | grep -q "Hello world!"; then
7+
exit 1
8+
fi

Diff for: espflash/tests/scripts/reset.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash reset 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Resetting target device" ]]; then
6+
exit 1
7+
fi

Diff for: espflash/tests/scripts/save-image_write-bin.sh

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
3+
result=$(espflash save-image --merge --chip $1 $2 $3 app.bin 2>&1)
4+
echo "$result"
5+
if [[ ! $result =~ "Image successfully saved!" ]]; then
6+
exit 1
7+
fi
8+
echo "Writting binary"
9+
result=$(espflash write-bin 0x0 app.bin 2>&1)
10+
echo "$result"
11+
if [[ ! $result =~ "Binary successfully written to flash!" ]]; then
12+
exit 1
13+
fi

0 commit comments

Comments
 (0)