All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 1/7] test/py: Implement pytest infrastructure
Date: Thu, 14 Jan 2016 16:12:24 -0700	[thread overview]
Message-ID: <CAPnjgZ0YOCOu1Y0a2pXMYNfM5ZfrHUDyF3tCOOs54krhFkp8pQ@mail.gmail.com> (raw)
In-Reply-To: <56724BFB.5070502@denx.de>

Hi Heiko,

On 16 December 2015 at 22:45, Heiko Schocher <hs@denx.de> wrote:
> Hello Stephen,
>
>
> Am 16.12.2015 um 17:27 schrieb Stephen Warren:
>>
>> On 12/16/2015 08:11 AM, Michal Simek wrote:
>>>
>>> On 9.12.2015 17:32, Stephen Warren wrote:
>>>>
>>>> On 12/02/2015 03:18 PM, Stephen Warren wrote:
>>>>>
>>>>> This tool aims to test U-Boot by executing U-Boot shell commands using
>>>>> the
>>>>> console interface. A single top-level script exists to execute or
>>>>> attach
>>>>> to the U-Boot console, run the entire script of tests against it, and
>>>>> summarize the results. Advantages of this approach are:
>>>>>
>>>>> - Testing is performed in the same way a user or script would interact
>>>>>     with U-Boot; there can be no disconnect.
>>>>> - There is no need to write or embed test-related code into U-Boot
>>>>> itself.
>>>>>     It is asserted that writing test-related code in Python is simpler
>>>>> and
>>>>>     more flexible that writing it all in C.
>>>>> - It is reasonably simple to interact with U-Boot in this way.
>>>>>
>>>>> A few simple tests are provided as examples. Soon, we should convert as
>>>>> many as possible of the other tests in test/* and test/cmd_ut.c too.
>>>>>
>>>>> In the future, I hope to publish (out-of-tree) the hook scripts, relay
>>>>> control utilities, and udev rules I will use for my own HW setup.
>>>>
>>>>
>>>> I finally got permission to publish these. Examples are at:
>>>> https://github.com/swarren/uboot-test-hooks
>>>
>>>
>>> Interesting. What's the normal setup which you have for the board?
>>> I see from your description that you use numato usb relay - I expect one
>>> with more channels for reset.
>>> Then you are able to control boot mode. Is it also via the same relay?
>>> How do you power up the board?
>>
>>
>> In my current setup I leave the board on all the time (or rather, manually
>> turn on the power when
>> I'm about to run the tests). Automating control of the power source is a
>> step I'll take later.
>
>
> Maybe you give tbot (I mentioned it in this thread) a chance?
>
> There, this things are automated, also you can do linux (and other console
> based)
> tests ... Currently added a testcase [1] which adds patches from patchwork,
> which are in a users ToDo list, to a git tree! In this case it is a u-boot
> git
> tree ... checks them with checkpatch, compiles it, and tries the new image
> on
> the board and calls testcases ... fully automated in a now weekly build [2]
> ...
> (only weekly, but thats a setup parameter in buildbot, as I have tbot and
> buildbot
> running on a raspberry pi)
> and don;t forget, I have the board not where I run tbot, the boards are
> ~1000km
> from me .. So, it is possible to add a U-Boot Testsetup on a server,
> and test boards all over the world ...

This sounds like a great development.

How can we get this so that it can be used by U-Boot people? Do you
think you could add a README to the mainline, or some scripts to aid
setting it up? I would be interested in setting up a few boards that
run continuous testing, and I suspect others would also if it were
easier.

>
>> For Tegra, there are two important signals: reset and "force recovery".
>> Each of these has a separate
>> relay, so the system currently uses 2 relays per target board. The numato
>> relay board I own has 8
>> relays, although there are a number of different models.
>>
>> On Tegra, when reset is pulsed:
>>
>> - If force-recovery is connected, the SoC enters USB recovery mode. In
>> this state, SW can be
>> downloaded over USB into RAM and executed.
>>
>> - If force-recovery is not connected, the SoC boots normally, from SW
>> stored in flash (eMMC, SPI, ...)
>>
>> The example scripts always use recovery mode to download U-Boot into RAM
>> rather than writing it to
>> flash first and then resetting. This saves wear cycles on the flash, but
>> does mean the download
>> happens in the "reset" rather than "flash" script, which may make the
>> examples a bit different than
>> for some other SoCs.
>>
>> Finally, the example scripts support two boards; my home/laptop dev setup
>> that uses a Numato relay
>> board to control the signals to the board I use there, and my work desktop
>> dev setup that uses our
>> "PM342" debug board to controll the signals. The latter works logically
>> the same as the numato relay
>> board, except it contains electronic switches driven by an FTDI chip.
>
>
> I seperated such functions into a seperate python class, so such setup
> specific things should be easy to add for other (in tbot called lab)
> setups ...
>
> Currently I have only a bdi testcase, which flashes a new image into
> the board, when it is broken ... but such relay things can be added
> of course ...
>
> bye,
> Heiko
> [1] get patchlist from patchwork
>
> https://github.com/hsdenx/tbot/commit/0bcaf4877e7aad4df2039913dcb6e85303a0b15f
>     apply them to git tree:
>
> https://github.com/hsdenx/tbot/commit/b7e2de3731252b518754cc3f71dc782559b0cad6
>     and use this on the smartweb board:
>
> https://github.com/hsdenx/tbot/commit/56a1ac18e5730ae9ffa7686acfc52877272be91d
>
> [2] weekly started testcase for the smartweb board:
>     http://xeidos.ddns.net/buildbot/builders/smartweb_dfu
>     log with the testcases from [1]
>
> http://xeidos.ddns.net/buildbot/builders/smartweb_dfu/builds/32/steps/shell/logs/tbotlog
>
> --
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

Regards,
Simon

  reply	other threads:[~2016-01-14 23:12 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02 22:18 [U-Boot] [PATCH V2 1/7] test/py: Implement pytest infrastructure Stephen Warren
2015-12-02 22:18 ` [U-Boot] [PATCH V2 2/7] test/py: test that sandbox exits when asked Stephen Warren
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 3/7] test/py: add test of setenv/printenv/echo Stephen Warren
2015-12-18 13:50   ` Michal Simek
2015-12-18 18:09     ` Stephen Warren
2016-01-04  8:36       ` Michal Simek
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 4/7] test/py: test the md/mw commands Stephen Warren
2015-12-18 13:51   ` Michal Simek
2015-12-18 18:15     ` Stephen Warren
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 5/7] test/py: add test of basic shell functionality Stephen Warren
2015-12-19 22:24   ` Simon Glass
2015-12-02 22:18 ` [U-Boot] [PATCH V2 6/7] test/py: test the shell if command Stephen Warren
2015-12-19 22:24   ` Simon Glass
2016-01-04 21:18     ` Stephen Warren
2015-12-02 22:18 ` [U-Boot] [PATCH V2 7/7] test/py: test the ums command Stephen Warren
2015-12-19 22:24   ` Simon Glass
2016-01-04 21:19     ` Stephen Warren
2015-12-03  6:47 ` [U-Boot] [PATCH V2 1/7] test/py: Implement pytest infrastructure Heiko Schocher
2015-12-07 21:51   ` Stephen Warren
2015-12-08  5:42     ` Heiko Schocher
2015-12-09 16:32 ` Stephen Warren
2015-12-16 15:11   ` Michal Simek
2015-12-16 16:27     ` Stephen Warren
2015-12-16 17:43       ` Michal Simek
2015-12-16 18:09         ` Stephen Warren
2015-12-16 18:32           ` Michal Simek
2015-12-16 18:41             ` Stephen Warren
2015-12-18 14:50               ` Michal Simek
2015-12-18 18:33                 ` Stephen Warren
2015-12-18 22:36                   ` Stephen Warren
2016-01-04  8:50                     ` Michal Simek
2016-01-04 12:41                   ` Michal Simek
2016-01-04 20:34                     ` Stephen Warren
2015-12-17  5:45       ` Heiko Schocher
2016-01-14 23:12         ` Simon Glass [this message]
2016-01-16  6:29           ` [U-Boot] U-Boot: using tbot for U-Boot tests was: " Heiko Schocher
2016-01-19  3:42             ` Simon Glass
2016-01-19 11:42               ` Heiko Schocher
2015-12-19 22:24 ` [U-Boot] " Simon Glass
2016-01-04 21:16   ` Stephen Warren
2016-01-04 22:23   ` Stephen Warren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ0YOCOu1Y0a2pXMYNfM5ZfrHUDyF3tCOOs54krhFkp8pQ@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.