[tbot] Next steps

Harald Seiler hws at denx.de
Thu Jan 17 19:59:59 UTC 2019


Hi Stefano,

On Wed, 2019-01-16 at 12:31 +0100, Stefano Babic wrote:
> Hi Harald,
> 
> On 16/01/19 11:01, Harald Seiler wrote:
> > Hello!
> > 
> > I want to ask for some input on the priorities of the following
> > features.  Which of the following features/changes would you need
> > the most?
> > 
> > ## Documentation Generation
> >    ------------------------
> > Old tbot had this feature and I definitely want it in new tbot as well.
> > The basic idea is the following:  A generator that takes a test-run's logfile
> > and a 'template' and uses these to generate a pdf documenting the process
> > of reproducing the results.  The usecase is for example automatically generating
> > documentation for board bringup.
> > 
> 
> Just my two cents: this has a high priority. The JSON log file is nice
> but unreadable for customers. I fully agree with your approach.
> 
> I would also like to have an automatic "performance" output, as the log
> contains the time.
> 
> For target output separated by "\n", it would be nice to have the
> related timestamp. Or atr least, let tbot to record this if requested.
> 
> Now I see for example:
> 
> "time": 3.7857260500022676,
>    "data": {
>      "output": "Trying 192.168.178.37...\nConnected to
> raspbx.fritz.box.\nEscape character is '^]'.\n\nser2net port 2014 device
> /dev/ttyUSB14 [115200 N81] (Debian   GNU/Linux)\n\n\u0000\nU-Boot SPL
> 2016.05-00276-g176c732-dirty (Jun 21 2016 - 20:04:29)\nBoot device
> 1\nTrying to boot from MMC1\nmmc_load_image_raw_sector: mmc     block
> read error\n ** ext4fs_devread read error - block\nFailed to mount ext2
> filesystem...\nspl_load_image_ext: ext4fs mount err - 0\n\nU-Boot SPL
> 2016.05-00276-  g176c732-dirty (Jun 21 2016 - 20:04:29)\nBoot device
> 1\nTrying to boot from MMC1\nmmc_load_image_raw_sector: mmc block read
> error\n** Can't read partition table    on 0:0 **\nspl
> 
> But it would be nice to know how much time is elapsed for each output
> sent from the hardware to find bottlenecks, similar to the "grabserial"
> tool (this is also a small python script).
> 
> I would also record something like:
> 
> [timestamp] U-Boot 2018.07 (Nov 19 2018 - 23:01:09 +0000)
> 
> [timestamp] CPU:   Freescale i.MX6Q rev1.5 996 MHz (running at 792 MHz)
> [timestamp] CPU:   Automotive temperature grade (-40C to 125C) at 25C
> [timestamp] Reset cause: WDOG
> [timestamp] I2C:   ready
> [timestamp] DRAM:  1 GiB
> [timestamp] NAND:  1024 MiB
> [timestamp] MMC:   FSL_SDHC: 0
> 
> This helps to measure boottime instead of dropping tbot and using other
> tools.

You can already get this info, at least kind of.  If you run tbot with -vvv,
the log will be filled with __debug__ events detailing the timestamps of
each stream fragment.

> > ## Refactored Configuration
> >    ------------------------
> > Currently tbot takes two config files, one with `-l` and one with `-b`.
> > The new system would only have one parameter `-c` which can be specified
> > multiple times.  Each config file can then specify any of
> > 
> > 	* LAB
> > 	* BOARD
> > 	* UBOOT
> > 	* LINUX
> > 
> > .  tbot will read the files in order and for each of the names takes
> > the last one that was defined.
> >    This would allow a more modularized config approach which (hopefully)
> > makes sharing configs easier.
> > 
> 
> IMHO it is very important to have orthogonal configuration. If this is a
> way to do this, nice. A board configuration file (even if small) should
> not depend on lab setup, and so on. My goal remains to have a unmodified
> board file and to test the target again in another lab, just passing the
> new lab configuration to tbot.
> 
> 
> > ## JTAG Debugger Integration
> >    -------------------------
> > New machine flavors for eg. BDI debuggers.
> 
> I will this on a lower priority for now. It is maybe important to show a
> way to do this and contribution can be done by users.
> 
> > ## More Documentation
> >    ------------------
> > Right now, the docs are pretty lacking, especially for onboarding and
> > getting started with tbot.  This has to change sooner rather than later
> > but might not be the biggest prio right now ... You decide!
> >    Another point to include here is "marketing":  I got feedback that
> > while the docs provide a reference, there is way to little explanation
> > what tbot is actually useful for.  "Why should I even use tbot?" The
> > reason I haven't written much about this is, to be quite honest:  I am
> > not yet sure.  Right now people are experimenting what tbot is good at,
> > where it is still lacking, or where it might not the right choice
> > at all.  I need some input here ... Tell me what you think!
> > 
> 
> What is really missing is a database of test cases and / or boards.

Missing that as well, problem is there are as good as no testcases that have
been written yet ...

> Users could check into the test cases instead of documentation. There is
> no test cases at all, the exceptions are interactive_uboot and
> interactive_linux.
> 
> What I strongly recommend is to set up a repo (outside tbot core) where
> test cases can be stored and sorted, like
> 
> tc/time
> tc/network/
> tc/network/bridging
> tc/network/routing
> 
> and so on. Even the most simple use cases are missing, like "test and
> report U-Boot version" or "test and report kernel version".
> 
> 
> > ## Refactored Build-System
> >    -----------------------
> > As I previously mentioned, the current build testcases are not really
> > in a state that is fun to use.  Before making them more feature rich
> > there should be an overhaul of the design.
> > 
> > ## More builtin Testcases
> >    ----------------------
> > Right now, there are about 5 testcases included with tbot (not counting
> > selftests).  While I don't want to stick every possible testcase into
> > tbot core, there should definitely be a few more.  For example a testcase
> > to build linux or to run U-Boot's test/py.
> 
> I tend to let tbot "core" thin and to push testcases in a separate (not
> tbot-denx) repo. This supposes that testcases are general enough, like
> interactive_* are, see above.
> 

I completely agree.

> > ## Examples
> >    --------
> > While the docs contain some code scattered about, there is no official
> > working demo yet.  I think such a repo would help beginners a lot with
> > understanding the basics of tbot.
> > 
> > ## DENX Internal: CI
> >    -----------------
> > New tbot should run in a CI for all our hardware at some point.  This needs
> > to be set up so you can add your CI testcases. (Discussion about this should
> > probably be moved to the internal ML, especially security considerations)
> > 
> > 
> > If there is anything I missed, please mention that as well!
> > 
> 
> Regards,
> Stefano
> 

-- 
Harald

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



More information about the tbot mailing list