All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Tom Rini <trini@konsulko.com>,
	Rui Miguel Silva <rui.silva@linaro.org>,
	Stefan Roese <sr@denx.de>,
	U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: [PATCH 25/45] test: Support tests which can only be run manually
Date: Wed, 28 Sep 2022 04:20:42 -0600	[thread overview]
Message-ID: <CAPnjgZ2+b61PBoHEU=5j_LBJaC3E3f_XsvYmmzZ2=j9xTheTDA@mail.gmail.com> (raw)
In-Reply-To: <a20d9ca8-77ce-bc3e-87ab-9900cddbd179@gmx.de>

Hi Heinrich,

On Mon, 26 Sept 2022 at 00:56, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>
> On 9/25/22 17:02, Simon Glass wrote:
> > At present we normally write tests either in Python or in C. But most
> > Python tests end up doing a lot of checks which would be better done in C.
> > Checks done in C are orders of magnitude faster and it is possible to get
> > full access to U-Boot's internal workings, rather than just relying on
> > the command line.
> >
> > The model is to have a Python test set up some things and then use C code
> > (in a unit test) to check that they were done correctly. But we don't want
> > those checks to happen as part of normal test running, since each C unit
> > tests is dependent on the associate Python tests, so cannot run without
> > it.
> >
> > To acheive this, add a new UT_TESTF_MANUAL flag to use with the C 'check'
> > tests, so that they can be skipped by default when the 'ut' command is
> > used. Require that tests have a name ending with '_norun', so that pytest
> > knows to skip them.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> >
> >   arch/sandbox/cpu/spl.c        |  2 +-
> >   doc/develop/tests_writing.rst | 22 ++++++++++++++++++++++
> >   include/test/test.h           |  8 ++++++++
> >   include/test/ut.h             |  4 +++-
> >   test/cmd_ut.c                 | 16 +++++++++++++---
> >   test/dm/test-dm.c             |  2 +-
> >   test/py/conftest.py           |  8 +++++++-
> >   test/test-main.c              | 27 ++++++++++++++++++++++++++-
> >   8 files changed, 81 insertions(+), 8 deletions(-)
> >
> > diff --git a/arch/sandbox/cpu/spl.c b/arch/sandbox/cpu/spl.c
> > index 6d4981152bb..2678370481a 100644
> > --- a/arch/sandbox/cpu/spl.c
> > +++ b/arch/sandbox/cpu/spl.c
> > @@ -90,7 +90,7 @@ void spl_board_init(void)
> >               int ret;
> >
> >               ret = ut_run_list("spl", NULL, tests, count,
> > -                               state->select_unittests, 1);
> > +                               state->select_unittests, 1, false);
> >               /* continue execution into U-Boot */
> >       }
> >   }
> > diff --git a/doc/develop/tests_writing.rst b/doc/develop/tests_writing.rst
> > index 1ddf7a353a7..d3ffc550300 100644
> > --- a/doc/develop/tests_writing.rst
> > +++ b/doc/develop/tests_writing.rst
> > @@ -74,6 +74,28 @@ NOT rely on running with sandbox, but instead should function correctly on any
> >   board supported by U-Boot.
> >
> >
> > +Mixing Python and C
> > +-------------------
> > +
> > +The best of both worlds is sometimes to have a Python test set things up and
> > +perform some operations, with a 'checker' C unit test doing the checks
> > +afterwards. This can be achieved with these steps:
> > +
> > +- Add the `UT_TESTF_MANUAL` flag to the checker test so that the `ut` command
> > +  does not run it by default
> > +- Add a `_norun` suffix to the name so that pytest knows to skip it too
> > +
> > +In your Python test use the `-f` flag to the `ut` command to force the checker
> > +test to run it, e.g.::
> > +
> > +   # Do the Python part
> > +   host load ...
> > +   bootm ...
> > +
> > +   # Run the checker to make sure that everything worked
> > +   ut -f bootstd vbe_test_fixup_norun
>
> Shouldn't the documentation describes what a test looks like that can
> only be run manually?

It is just a normal test and I figure there is an example in the code.
What sort of info is missing here?

Regards,
Simon

  reply	other threads:[~2022-09-28 10:22 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-25 15:02 [PATCH 00/45] vbe: Implement the full firmware flow Simon Glass
2022-09-25 15:02 ` [PATCH 01/45] Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE Simon Glass
2022-09-25 15:02 ` [PATCH 02/45] disk: Drop debug messages in part_efi Simon Glass
2022-09-26  6:11   ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 03/45] bloblist: Drop debugging Simon Glass
2022-09-25 15:02 ` [PATCH 04/45] rsa: Avoid warning in padding_pss_verify() Simon Glass
2022-09-26  6:23   ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 05/45] spl: Use binman suffix allow symbols of any SPL etype Simon Glass
2022-09-25 15:02 ` [PATCH 06/45] spl: Split up the board_init_r() function Simon Glass
2022-09-25 15:02 ` [PATCH 07/45] spl: Refactor controls for console output Simon Glass
2022-09-29 15:16   ` Tom Rini
2022-09-25 15:02 ` [PATCH 08/45] spl: Add a separate silence option for SPL Simon Glass
2022-09-25 15:02 ` [PATCH 09/45] CI: Install pyelftools for builds Simon Glass
2022-09-26  6:29   ` Heinrich Schuchardt
2022-09-28 10:20     ` Simon Glass
2022-09-29 15:05       ` Tom Rini
2022-09-29 23:55         ` Simon Glass
2022-09-30 12:56           ` Tom Rini
2022-09-30 13:28             ` Simon Glass
2022-09-25 15:02 ` [PATCH 10/45] binman: Allow obtaining a symbol value Simon Glass
2022-09-25 15:02 ` [PATCH 11/45] binman: Split out looking up a symbol into a function Simon Glass
2022-09-25 15:02 ` [PATCH 12/45] binman: Handle writing ELF symbols in the Entry class Simon Glass
2022-09-25 15:02 ` [PATCH 13/45] binman: Support writing symbols into ELF files Simon Glass
2022-09-25 15:02 ` [PATCH 14/45] dm: blk: Add udevice functions Simon Glass
2022-09-26  0:17   ` AKASHI Takahiro
2022-09-28 10:20     ` Simon Glass
2022-09-29  0:51       ` AKASHI Takahiro
2022-09-29  2:35         ` Simon Glass
2022-09-30  1:54           ` AKASHI Takahiro
2022-09-25 15:02 ` [PATCH 15/45] dm: usb: Update the test to cover reading and writing Simon Glass
2022-09-25 15:02 ` [PATCH 16/45] dm: blk: mmc: Tidy up some Makefile rules for SPL Simon Glass
2022-09-25 15:02 ` [PATCH 17/45] dm: mmc: Allow sandbox emulator to build without writes Simon Glass
2022-09-25 15:02 ` [PATCH 18/45] sandbox: Drop message about writing sandbox state Simon Glass
2022-09-26  6:31   ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 19/45] sandbox: Generalise SPL booting Simon Glass
2022-09-25 15:02 ` [PATCH 20/45] sandbox: Add a way to specify the sandbox executable Simon Glass
2022-09-26  6:49   ` Heinrich Schuchardt
2022-11-07 23:35     ` Simon Glass
2022-09-25 15:02 ` [PATCH 21/45] bootstd: Add a way to set up a bootflow Simon Glass
2022-09-25 15:02 ` [PATCH 22/45] image: Move comment for fit_conf_find_compat() Simon Glass
2022-09-26  6:54   ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 23/45] test: Report skippped tests Simon Glass
2022-09-25 15:02 ` [PATCH 24/45] test: Update tests to use the skip feature Simon Glass
2022-09-25 15:02 ` [PATCH 25/45] test: Support tests which can only be run manually Simon Glass
2022-09-26  6:56   ` Heinrich Schuchardt
2022-09-28 10:20     ` Simon Glass [this message]
2022-09-25 15:02 ` [PATCH 26/45] image: Add the concept of a phase to FIT Simon Glass
2022-09-25 15:02 ` [PATCH 27/45] image: Allow loading a FIT config for a particular phase Simon Glass
2022-09-25 15:02 ` [PATCH 28/45] image: Correct strncpy() warning with image_set_name() Simon Glass
2022-09-25 15:02 ` [PATCH 29/45] vbe: Rename vbe_fixup to vbe_request Simon Glass
2022-09-25 15:02 ` [PATCH 30/45] vbe: Use a warning for a failed requests Simon Glass
2022-09-25 15:02 ` [PATCH 31/45] spl: Allow multiple loaders of the same type Simon Glass
2022-09-30 16:28   ` Tom Rini
2022-09-30 16:37     ` Simon Glass
2022-09-30 16:39       ` Tom Rini
2022-09-30 16:45         ` Simon Glass
2022-09-30 16:50           ` Tom Rini
2022-09-30 16:55             ` Simon Glass
2022-09-25 15:02 ` [PATCH 32/45] sandbox: Support obtaining the next phase from an image Simon Glass
2022-09-25 15:02 ` [PATCH 33/45] vbe: Support selecting operations by SPL phase Simon Glass
2022-09-25 15:02 ` [PATCH 34/45] vbe: Support reading the next SPL phase via VBE Simon Glass
2022-09-25 15:02 ` [PATCH 35/45] vbe: Move OS implementation into a separate file Simon Glass
2022-09-25 15:02 ` [PATCH 36/45] vbe: Drop the U-Boot prefix from the version Simon Glass
2022-09-25 15:02 ` [PATCH 37/45] vbe: Add Kconfig options for VPL Simon Glass
2022-09-25 15:02 ` [PATCH 38/45] vbe: Add info about the VBE device to the fwupd node Simon Glass
2022-09-25 15:02 ` [PATCH 39/45] sandbox: Add a binman image for VPL Simon Glass
2022-09-25 15:02 ` [PATCH 40/45] vbe: Correct pylint warnings in test_vbe Simon Glass
2022-09-25 15:02 ` [PATCH 41/45] vbe: Use a manual test Simon Glass
2022-09-25 15:02 ` [PATCH 42/45] vbe: Record which phases loaded using VBE Simon Glass
2022-09-25 15:02 ` [PATCH 43/45] vbe: Add docs and a test for the VBE command Simon Glass
2022-09-25 15:02 ` [PATCH 44/45] vbe: Add a subcommand to show the VBE state Simon Glass
2022-09-25 15:02 ` [PATCH 45/45] vbe: Add a test for the VBE flow into U-Boot proper Simon Glass

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='CAPnjgZ2+b61PBoHEU=5j_LBJaC3E3f_XsvYmmzZ2=j9xTheTDA@mail.gmail.com' \
    --to=sjg@chromium.org \
    --cc=rui.silva@linaro.org \
    --cc=sr@denx.de \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.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.