# Copyright (c) 2016 DENX Software Engineering GmbH
# Heiko Schocher <hs@denx.de>
#
# SPDX-License-Identifier:	GPL-2.0+
#

ToDo list for tbot
==================

please look also into the tbot ToDo list.
https://github.com/hsdenx/tbot/blob/master/ToDo

- cleanup tbot code:
  - remove all retry / timeout pieces of code
  - clean up tbot function names, as I am not good in
    giving function a understandable name ;-)
  - as I am not a python programmer, cleanup whole tbot code

- introduce a "layering" like yocto do, so U-Boot TC can integrated
  into U-Boot source code.

  Proposal:
  introduce  subdirs in "src/tc"

       lab: all lab specific stuff
       lab/common: common lab stuff (for example ssh handling)
       lab/ssh_std: ssh_std specific stuff

       u-boot: all u-boot tests
       u-boot/common: common u-boot tc
       u-boot/duts: DUTS tc
       u-boot-dxr2: all u-boot dxr2 board specific tc

       board: board tc
       board/common: common board tc
       board/dxr2: all tc for dxr2 board

       linux: all linux tc
       linux/common: common linux tc
       linux/dxr2

  - move U-Boot special TC to U-Boot source
    -> need a mechanism in tbot, how it gets automatically for example
       U-Boot TC from U-Boot source...
    -> add a consistency checker

- simplify tbot log output (seperate a lot of output which is currently
  in INFO logging level, to another logging level)
  started (new loglevel "CON", whih prints read/write from console only), see:
  https://github.com/hsdenx/tbot/commit/b4ab2567ad8c19ad53f785203159d3c8465a21c6
  - make the timestamp configurable

- Open more than 2 filehandles ?
  Do we need for more complex TC more than 2 filehandles?

- Find a way to document all TC and document all variables they use in an
  automated way.

- write a lot of more TC

- get U-Boot configuration settings from current U-Boot code and use
  them in U-Boot TC-es
