
On Mon, Feb 17, 2020 at 05:32:45PM +0200, Andy Shevchenko wrote:
On Mon, Feb 17, 2020 at 5:09 PM Wolfgang Denk wd@denx.de wrote:
In message CAHp75VdUY7zJfkc4YV-KTt1aEKg9Ggy6PsJAEOkgo9eCtQx9Kg@mail.gmail.com you wrote:
git bisect is the usual way to figure out the culprit.
Too much work to do this way.
If you find bisecting is too much work you probably still do it manually. Why don't you use tbot to automize such boring and time consuming tasks?
Bisection time something about 10%, while 90% is flashing the board and, given the result, triggering either bad or good next cycle.
In case our emails crossed, this is where 'git bisect run' comes in handy if you can automate the flashing. It's why I have the follow script locally:
#!/bin/bash
if [ $# -ne 1 -a $# -ne 2 ]; then echo "Usage: $0 buildman-spec test.py-id" exit 1 fi
if [ $# -eq 2 ]; then ARGS="$1 --id $2" else ARGS="$1" fi
# Build the board virtualenv -p /usr/bin/python3 /tmp/venv . /tmp/venv/bin/activate pip install -r test/py/requirements.txt
set +e ./tools/buildman/buildman -o /tmp -P ^${1}$ set -e
# Run the tests export PATH=${PATH}:/home/trini/work/u-boot/uboot-test-hooks/bin export PYTHONPATH=/home/trini/work/u-boot/uboot-test-hooks/py/bill-the-cat:${PYTHONPATH} export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/$1 ./test/py/test.py --bd $ARGS --build-dir "$UBOOT_TRAVIS_BUILD_DIR" -k 'not sleep'
To run test.py automatically for a board, and I have several boards hooked up to the framework Stephen Warren has. When I need to bisect a boot failure I change 'not sleep' to 'version' so it only runs that one super quick test. Then 'git bisect run uboot-test.sh boardname' once I have the first good/bad. And I'll do a 'git checkout' of a commit or two if I have a hunch of what introduced the failure.