[discussion]: reporting U-Boot test results with tbot

Heiko Schocher hs at denx.de
Fri May 1 07:21:27 CEST 2020


Hello Tom,

just playing to get a first graph out of my DB...:

https://github.com/EmbLux-Kft/uboot_results/commit/6dc79a119e9b8937645284f30b37dd4cf9a95d48

result:

http://xeidos.ddns.net/ubtestresults/stats/wandboard_defconfig/6
                                                                ^
                                            ^       get the last n=6 entries
                                            |
                                            name of defconfig

and you see commits from last night are increasing code size
of u-boot image!

values from last night:
http://xeidos.ddns.net/ubtestresults/result/54

the night before:
http://xeidos.ddns.net/ubtestresults/result/53

Same toolchain as before... so I won some bytes from value
2 -> 3 as I used newer linaro toolchain, and lost this last night...

This is not a problem for the wandboard, but it shows why it makes
sense to collect testresult ;-)

I currently have only one defconfig running, so only wandboard_defconfig
works, but you can play with n ... but the first ~40 entries in
my DB are not real values, they are hand edited and I  used them for
testing...

bye,
Heiko

Am 30.04.2020 um 16:58 schrieb Heiko Schocher:
> Hello Tom, Simon,
> 
> motivation for reading:
> 
> Get test results from U-Boot users fully automated from git checkout
> until reporting testresults to us back with one (or two) commands.
> 
> (and one more reason why it makes sense to use tbot)
> 
> As I see in some posts from Simon on u-boot and tbot ML, that Simon uses
> now tbot (which makes me really happy). Now as also U-Boots test/py is
> integrated into tbot [1], it is possible with one tbot command/testcase
> to checkout and patch U-Boot source, configure and build it [2], install
> resulting binaries on target and call test/py. See a full log [7]
> 
> So it makes sense to me to go a step further...
> 
> Sometime ago, I had running cyclic u-boot tests with (my old) tbot
> and showed the results on a webpage [3]. As you see, not really running
> anymore ... :-(
> 
> I want to see this reactivated, but slightly modified, so others
> can also report testresults ... hopefully with tbot...
> 
> What do we need to reactivate this again:
> 
> - Try tbot !
> 
>    Installation:
>    http://tbot.tools/installation.html
> 
>    Quick start:
>    http://tbot.tools/quickstart.html
> 
>    Configuration:
>    http://tbot.tools/configuration.html
> 
>    Harald rewrote the docs and we hope this is much more clearer
>    now, but try it out and report your problems, hints, ideas back
>    to us on tbot ml [4]
> 
>    Also Simon is working on a tool called labman, with which he
>    creates complete tbot config files.
> 
>    So there is progress here, but we need users and feedback
> 
> <advertisement>
>    tbot is designed to help developers for their daily work, if not
>    it is a bug and needs a fix. And of course you can use tbot also
>    for linux, yocto development ...
> </advertisement>
> 
> - write and run a server, where we collect testresults
> 
>    proof of concept see:
> 
>    https://github.com/EmbLux-Kft/uboot_results
> 
>    running demo
> 
>    http://xeidos.ddns.net/ubtestresults/home
> 
>    May you want to click the links ... the link in the column ID
>    shows you all infos for one build.
> 
>    ID 51 : build with linaro toolchain 2019.12
>    ID 50 : build with linaro toolchain 2018.05
> 
>    ID 51 saved some bytes in U-Boot image!
> 
>    Important topic here is to discuss which informations we want to collect
> 
>    https://github.com/EmbLux-Kft/uboot_results#todo
> 
>    here a list what I collect currently from an U-Boot build:
> 
>    - build date
>    - architecture
>    - CPU
>    - SoC
>    - base commit
>    - used toolchain
>    - board name
>    - used defconfig
>    - size of resulting images
>    - test py results (ToDo)
>    - tbot json log file, first step done, see result:
>      http://xeidos.ddns.net/ubtestresults/result/53
>      and click the links tbot.log or tbot.json
> 
>    - ...
> 
>    Read the Readme to see whats missing, basic features working,
>    how to run and post testresults by hand...
> 
>    but we want to automate this ... so, yes, again ... tbot!
> 
> - write a tbot generator [5], which collects all the stuff we want to
>    push to our server and push it
> 
>    proof of concept:
> 
>    https://github.com/EmbLux-Kft/tbot/blob/devel/generators/push-testresult.py
> 
>    Without any real error checking yet, nor what to report when tbot fails,
>    but a first step...
> 
> 
> Puuh... now a real life example for the wandboard:
> 
> Ok, I need some patches on top of current mainline tbot, see:
> 
> https://github.com/EmbLux-Kft/tbot/commits/devel
> 
> also my tbot config and testcases:
> 
> https://github.com/EmbLux-Kft/tbot-tbot2go/commits/wandboard-devel-messe
> 
> (Not all is needed, I should prepare a minimal setup...)
> 
> With this, I have 2 commands which do all the steps from U-Boot mainline
> checkout until reporting test result to server...
> 
> tbot Command:
> $ tbot @argswandboardlab1 wandboard_ub_build_install_test -q -q --log $TBOT_LOGFILE > 
> $TBOT_STDIO_LOGFILE
> 
> Command for executing tbot generator
> $ ./push-testresult.py -p /home/hs/data/Entwicklung/tbot -f $TBOT_LOGFILE
> 
> full log see [7]
> 
> And current mainline U-Boot is tested on the wandboard and result
> is reported to my running demo server!
> 
> You can now execute the 2 commands from jenkins, buildbot, gitlab CI or
> as I did for the demo, in a simple cron job ... and you have a full
> CI for U-Boot. It is really worth to try!
> 
> The cron job now runs each morning at ~4pm for the wandboard... we will
> see how it works ...
> 
> That is another reason why it makes sense for me to use tbot, as if
> you have finished your daily developer work, you have already testcases
> for integrating into a CI ... and if you get a bug report, simply write
> a python function, which triggers your bug on the board, so only once
> to type the commands by hand... and if bug is fixed ... you already
> have a new testcase for your CI ...
> 
> There are more things I want to reactivate from my old tbot like
> 
> - download patches from patchwork, run checkpatch and add the patches to
>    the build.
> 
> - automated git bisect if things go wrong, we already have git bisect
>    integrated in tbot see:
> 
>    http://tbot.tools/modules/tc.html#tbot.tc.git.GitRepository.bisect
> 
> - generate a U-Boot documentation with logs from commands
>    executed on the board, as our old DULG [6] did.
> 
> - make nice graphs from the data we collect
>    - spl/u-boot image size for a specific board over the time
>    - spl/u-boot image size for a specific board with using
>      different toolchains
> 
> - ...
> 
> But this is just for the future ...
> 
> What do you think? Comments/ideas welcome.
> 
> by,
> Heiko
> 
> [1] http://tbot.tools/modules/tc.html#u-boot-test-py
> [2] http://tbot.tools/modules/tc.html#u-boot
> [3] old tbot test results webpage
>      http://xeidos.ddns.net/tests/test_db_auslesen.php
> [4] tbot at lists.denx.de
> [5] http://tbot.tools/logging.html#generators
> [6] http://www.denx.de/wiki/DULG/WebHome
> [7] https://github.com/EmbLux-Kft/uboot_results/blob/master/LOG.md

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot-Custodians mailing list