[U-Boot] [PATCH V3 1/7] test/py: Implement pytest infrastructure

Simon Glass
2016-01-11T15:25:02Z

Hi Stephen,

On 8 January 2016 at 11:32, Michal Simek <monstr@monstr.eu> wrote:
>
> On 8.1.2016 19:13, Stephen Warren wrote:
> > On 01/05/2016 03:58 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.
> >>
> >> The hook scripts, relay control utilities, and udev rules I use for my
> >> own HW setup are published at
> >> https://github.com/swarren/uboot-test-hooks.
> >>
> >> See README.md for more details!
> >
> > It looks like I need to send a v4 of this, since I renamed a Python
> > class but forgot to update all users of it. I didn't notice this, since
> > I had the old module lying around as a *.pyc file, so the old name
> > worked:-(
> >
> > I also have a couple of minor fixes to roll in that make the scripts
> > work better under a continuous integration environment (which doesn't
> > have a controlling TTY set when the scripts run, which need a minor
> > tweak to the Spawn code).

I see this now. Do I need another dependency?

/test/py/test.py --bd sandbox --build
+make O=/usr/local/google/c/cosarm/src/third_party/u-boot/files/build-sandbox
-s sandbox_defconfig
+make O=/usr/local/google/c/cosarm/src/third_party/u-boot/files/build-sandbox
-s -j8
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File
"/usr/lib/python2.7/dist-packages/_pytest/main.py", line 77, in
wrap_session
INTERNALERROR> config.do_configure()
INTERNALERROR> File
"/usr/lib/python2.7/dist-packages/_pytest/config.py", line 607, in
do_configure
INTERNALERROR> self.hook.pytest_configure(config=self)
INTERNALERROR> File
"/usr/lib/python2.7/dist-packages/_pytest/core.py", line 376, in
__call__
INTERNALERROR> return self._docall(methods, kwargs)
INTERNALERROR> File
"/usr/lib/python2.7/dist-packages/_pytest/core.py", line 387, in
_docall
INTERNALERROR> res = mc.execute()
INTERNALERROR> File
"/usr/lib/python2.7/dist-packages/_pytest/core.py", line 288, in
execute
INTERNALERROR> res = method(**kwargs)
INTERNALERROR> File
"/usr/local/google/c/cosarm/src/third_party/u-boot/files/test/py/conftest.py",
line 163, in pytest_configure
INTERNALERROR> import u_boot_console_sandbox
INTERNALERROR> File
"/usr/local/google/c/cosarm/src/third_party/u-boot/files/test/py/u_boot_console_sandbox.py",
line 9, in <module>
INTERNALERROR> from ubspawn import Spawn

Regards,
Simon