Skip to content

Commit

Permalink
Add CI test for eboot build (esp8266#7546)
Browse files Browse the repository at this point in the history
Check that building the eboot.c block generates the same binary as
the verison checked into the repo.  Catches the case where a library
or eboot.c file is changed, but an updated eboot.elf isn't included
in a PR.

Can't do simple binary diff of the ELFs because paths and compile
times will change, so dump the two sections we care about.
  • Loading branch information
earlephilhower committed Aug 28, 2020
1 parent 53e4dec commit c366f84
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,16 @@ jobs:
- uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Cache Linux toolchain
id: cache-linux
uses: actions/cache@v2
with:
path: ./tools/dist
key: key-linux-toolchain
- name: Boards.txt diff
env:
TRAVIS_BUILD_DIR: ${{ github.workspace }}
TRAVIS_TAG: ${{ github.ref }}
run: |
bash ./tests/ci/build_boards.sh
bash ./tests/ci/eboot_test.sh
21 changes: 21 additions & 0 deletions tests/ci/eboot_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

READELF="$TRAVIS_BUILD_DIR/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-readelf"

set -ev

cd $TRAVIS_BUILD_DIR/tools
python3 get.py -q

cd $TRAVIS_BUILD_DIR/bootloaders/eboot

"$READELF" -x .data -x .text eboot.elf > git.txt
make clean
make
"$READELF" -x .data -x .text eboot.elf > build.txt
diff git.txt build.txt
if [ $? -ne 0 ]; then
echo ERROR: eboot.elf in repo does not match output from compile.
echo ERROR: Need to rebuild and check in updated eboot.
exit 1
fi

0 comments on commit c366f84

Please sign in to comment.