All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: tbot List <tbot@lists.denx.de>
Cc: Harald Seiler <hws@denx.de>, U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: Question on running uboot_testpy with tbot
Date: Sat, 30 Oct 2021 13:47:13 -0600	[thread overview]
Message-ID: <CAPnjgZ2_8jOLTO4_QN9dsdkmrPK_r_wRyiAb8_3sqJsPS1R0Og@mail.gmail.com> (raw)
In-Reply-To: <CAPnjgZ0=HtTy5Q_+kqVF3C3WOROd6DZbjQ80tC9oTbsZ0TEhCQ@mail.gmail.com>

Hi again,

The relevant part of test-log.html is

 Section: flash
[-] Section: test_fpga_help

TIME: NOW: 2021/10/30 13:41:52.662614

TIME: SINCE-PREV: 0:00:00.142842

TIME: SINCE-START: 0:00:00.148402

SKIPPED:
('/home/sglass/tbot-workdir/uboot-rpi3/test/py/conftest.py', 486, 'Skipped:
.config feature "cmd_fpga" not enabled')

TIME: SINCE-SECTION: 0:00:00.000684

[-] Section: test_help

TIME: NOW: 2021/10/30 13:41:52.663392

TIME: SINCE-PREV: 0:00:00.000778

TIME: SINCE-START: 0:00:00.149180

[-] Section: test_help/Starting U-Boot

TIME: NOW: 2021/10/30 13:41:52.663511

TIME: SINCE-PREV: 0:00:00.000119

TIME: SINCE-START: 0:00:00.149299

Resetting board

[-] Stream: u-boot-test-reset

+u-boot-test-reset unknown na

TIME: NOW: 2021/10/30 13:41:52.666658

TIME: SINCE-PREV: 0:00:00.003147

TIME: SINCE-START: 0:00:00.152446

TIME: NOW: 2021/10/30 13:42:22.797678

TIME: SINCE-PREV: 0:00:30.131020

TIME: SINCE-START: 0:00:30.283466

TIME: SINCE-SECTION: 0:00:30.134391

FAILED:
request = <SubRequest 'u_boot_console' for <Function test_help>>

    @pytest.fixture(scope='function')
    def u_boot_console(request):
        """Generate the value of a test's u_boot_console fixture.

        Args:
            request: The pytest request.

        Returns:
            The fixture value.
        """

>       console.ensure_spawned()

test/py/conftest.py:364:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _
test/py/u_boot_console_base.py:372: in ensure_spawned
    m = self.p.expect([pattern_u_boot_main_signon] + self.bad_patterns)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _

self = <u_boot_spawn.Spawn object at 0x7f5a4979e208>
patterns = [re.compile('(U-Boot \\d{4}\\.\\d{2}[^\r\n]*\\))'),
re.compile('(U-Boot SPL \\d{4}\\.\\d{2}[^\r\n]*\\))'),
re.compile(...d{2}[^\r\n]*\\))'), re.compile('Hit any key to stop autoboot:
'), re.compile("Unknown command '.*' - try 'help'"), ...]

    def expect(self, patterns):
        """Wait for the sub-process to emit specific data.

        This function waits for the process to emit one pattern from the
        supplied list of patterns, or for a timeout to occur.

        Args:
            patterns: A list of strings or regex objects that we expect to
                see in the sub-process' stdout.

        Returns:
            The index within the patterns array of the pattern the process
            emitted.

        Notable exceptions:
            Timeout, if the process did not emit any of the patterns within
            the expected time.
        """

        for pi in range(len(patterns)):
            if type(patterns[pi]) == type(''):
                patterns[pi] = re.compile(patterns[pi])

        tstart_s = time.time()
        try:
            while True:
                earliest_m = None
                earliest_pi = None
                for pi in range(len(patterns)):
                    pattern = patterns[pi]
                    m = pattern.search(self.buf)
                    if not m:
                        continue
                    if earliest_m and m.start() >= earliest_m.start():
                        continue
                    earliest_m = m
                    earliest_pi = pi
                if earliest_m:
                    pos = earliest_m.start()
                    posafter = earliest_m.end()
                    self.before = self.buf[:pos]
                    self.after = self.buf[pos:posafter]
                    self.output += self.buf[:posafter]
                    self.buf = self.buf[posafter:]
                    return earliest_pi
                tnow_s = time.time()
                if self.timeout:
                    tdelta_ms = (tnow_s - tstart_s) * 1000
                    poll_maxwait = self.timeout - tdelta_ms
                    if tdelta_ms > self.timeout:
                        raise Timeout()
                else:
                    poll_maxwait = None
                events = self.poll.poll(poll_maxwait)
                if not events:
>                   raise Timeout()
E                   u_boot_spawn.Timeout

test/py/u_boot_spawn.py:170: Timeout

TIME: SINCE-SECTION: 0:00:30.159899

[-] Section: Status Report

TIME: NOW: 2021/10/30 13:42:22.825745

TIME: SINCE-PREV: 0:00:00.028067

TIME: SINCE-START: 0:00:30.311533

0 passed

1 skipped

... test_fpga_help

1 failed

... test_help

322 not run


Regards,
Simon


On Sat, 30 Oct 2021 at 13:34, Simon Glass <sjg@chromium.org> wrote:

> Hi,
>
> I am trying to run the pytests on my unit. The documentation doesn't
> really explain how it works.
>
> This is what I am trying:
>
> $ tbot -vv -l kea.py -b rpi3.py -T tbot/contrib  -p 'testpy_args=["-k",
> "help", "-vv"]' uboot_testpy
> tbot starting ...
> ├─Parameters:
> │     testpy_args = ['-k', 'help', '-vv']
> ├─Calling uboot_testpy ...
> │   ├─Logging in on sglass@kea:22 ...
> │   ├─[sglass] bash --norc --noprofile
> │   ├─Calling uboot_setup_testhooks ...
> │   │   ├─[sglass] echo " ${HOME}"
> │   │   │    ##  /home/sglass
> │   │   ├─[sglass] mkdir -p /home/sglass/tbot-workdir
> │   │   ├─[sglass] test -d /home/sglass/tbot-workdir/uboot-testpy-tbot
> │   │   ├─Creating FIFOs ...
> │   │   ├─[sglass] rm -rf
> /home/sglass/tbot-workdir/uboot-testpy-tbot/fifo_console_send
> │   │   ├─[sglass] mkfifo
> /home/sglass/tbot-workdir/uboot-testpy-tbot/fifo_console_send
> │   │   ├─[sglass] rm -rf
> /home/sglass/tbot-workdir/uboot-testpy-tbot/fifo_console_recv
> │   │   ├─[sglass] mkfifo
> /home/sglass/tbot-workdir/uboot-testpy-tbot/fifo_console_recv
> │   │   ├─[sglass] rm -rf
> /home/sglass/tbot-workdir/uboot-testpy-tbot/fifo_commands
> │   │   ├─[sglass] mkfifo
> /home/sglass/tbot-workdir/uboot-testpy-tbot/fifo_commands
> │   │   ├─[sglass] cat
> /home/sglass/tbot-workdir/uboot-testpy-tbot/tbot-scripts.sha256
> │   │   │    ##
> 2d30892b61eb713ce9413e06c4f2a0cd00d2a74b6b8c2ac6624e1e49909b1897
> │   │   ├─Hooks are up to date, skipping deployment ...
> │   │   ├─Adding hooks to $PATH ...
> │   │   ├─[sglass] echo " ${PATH}"
> │   │   │    ##
>  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/cosarm/depot_tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/cosarm/depot_tools:/home/sglass/.local/bin:/vid/software/devel/ubtest/u-boot-test-hooks/bin:/vid/software/devel/ubtest/standalone-hdctools
> │   │   ├─[sglass] export
> PATH=/home/sglass/tbot-workdir/uboot-testpy-tbot:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/cosarm/depot_tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/cosarm/depot_tools:/home/sglass/.local/bin:/vid/software/devel/ubtest/u-boot-test-hooks/bin:/vid/software/devel/ubtest/standalone-hdctools
> │   │   ├─Open console & command channels ...
> │   │   ├─[sglass] /home/sglass/tbot-workdir/uboot-testpy-tbot/tbot-console
> │   │   ├─[sglass]
> /home/sglass/tbot-workdir/uboot-testpy-tbot/tbot-commands
> │   │   └─Done. (0.028s)
> │   ├─Calling uboot_checkout ...
> │   │   ├─Builder: rpi3
> │   │   ├─[sglass] test -d /home/sglass/tbot-workdir/uboot-rpi3/.git
> │   │   ├─[sglass] git -C /home/sglass/tbot-workdir/uboot-rpi3 fetch
> │   │   └─Done. (0.121s)
> │   ├─[sglass] test -e /home/sglass/tbot-workdir/uboot-rpi3/.config
> │   ├─[sglass] test -e /home/sglass/tbot-workdir/uboot-rpi3/include/
> autoconf.mk
> │   ├─[sglass] picocom -q -b 115200 /dev/ttyusb_port1
> │   ├─POWERON (rpi3)
> │   ├─[sglass] sd-mux-ctrl --device-serial sdwire-18 --dut
> │   ├─[sglass] ykushcmd -s YK17698 -g 1
> │   │    ##
> │   │    ##
> │   │    ## Downstream port 1 is OFF
> │   │    ##
> │   ├─[sglass] ykushcmd -s YK17698 -u 1
> │   ├─UBOOT (rpi3-u-boot)
> │   │    <>
> │   │    <>
> │   │    <> U-Boot 2020.10-rc2-00140-g392aa09f310 (Oct 30 2021 - 12:38:07
> -0600)
> │   │    <>
> │   │    <> DRAM:  992 MiB
> │   │    <> RPI 3 Model B (0xa22082)
> │   │    <> MMC:   mmc@7e202000: 0, sdhci@7e300000: 1
> │   │    <> Loading Environment from FAT... *** Warning - bad CRC, using
> default environment
> │   │    <>
> │   │    <> In:    serial
> │   │    <> Out:   vidconsole
> │   │    <> Err:   vidconsole
> │   │    <> Net:   No ethernet found.
> │   │    <> Hit any key to stop autoboot:  0
> │   │    <> U-Boot>
> │   ├─[sglass] cd /home/sglass/tbot-workdir/uboot-rpi3
> │   ├─[sglass] ./test/py/test.py --build-dir . --board-type unknown -k
> help -vv
> │   │    ## +u-boot-test-flash unknown na
> │   │    ## ============================= test session starts
> ==============================
> │   │    ## platform linux -- Python 3.6.9, pytest-5.2.1, py-1.8.0,
> pluggy-0.13.0 -- /usr/bin/python3
> │   │    ## cachedir: .pytest_cache
> │   │    ## rootdir: /home/sglass/tbot-workdir/uboot-rpi3/test/py,
> inifile: pytest.ini
> │   │    ## collected 324 items / 322 deselected / 2 selected
>
> │   │    ##
> │   │    ## test/py/tests/test_fpga.py::test_fpga_help SKIPPED
>           [ 50%]│   ├─[sglass] ykushcmd -s YK17698 -d 1
> │   ├─[sglass] sd-mux-ctrl --device-serial sdwire-18 --ts
> │   ├─Exiting poweroff
> │   ├─[sglass] sd-mux-ctrl --device-serial sdwire-18 --dut
> │   ├─[sglass] ykushcmd -s YK17698 -g 1
> │   │    ##
> │   │    ##
> │   │    ## Downstream port 1 is OFF
> │   │    ##
> │   ├─[sglass] ykushcmd -s YK17698 -u 1
>
> │   ├─POWEROFF (rpi3)
> │   ├─[sglass] ykushcmd -s YK17698 -d 1
> │   ├─[sglass] sd-mux-ctrl --device-serial sdwire-18 --ts
> │   ├─Exiting poweroff
> │   └─Fail. (38.376s)
> ├─Exception:
> │   Traceback (most recent call last):
> │     File
> "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.2-py3.8.egg/tbot/main.py",
> line 345, in main
> │       func(**params)
> │     File
> "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.2-py3.8.egg/tbot/decorators.py",
> line 92, in wrapped
> │       return tc(*args, **kwargs)
> │     File
> "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.2-py3.8.egg/tbot/decorators.py",
> line 157, in wrapped
> │       return tc(lh, *args, **kwargs)
> │     File
> "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.2-py3.8.egg/tbot/tc/uboot/testpy.py",
> line 321, in testpy
> │       os.write(chan_console.fileno(), data)
> │   OSError: [Errno 9] Bad file descriptor
> ├─────────────────────────────────────────
> └─FAILURE (38.488s)
>
>
> I don't see the output appearing and I'm not sure how pytest is sending
> the commands to the board?
>
> Regards,
> Simon
>
>

  reply	other threads:[~2021-10-30 19:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-30 19:34 Question on running uboot_testpy with tbot Simon Glass
2021-10-30 19:47 ` Simon Glass [this message]
2021-12-24 12:47   ` Simon Glass
2022-01-27 14:53 ` Harald Seiler
2022-01-27 16:05   ` Simon Glass
2022-02-01  9:35     ` Harald Seiler

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_8jOLTO4_QN9dsdkmrPK_r_wRyiAb8_3sqJsPS1R0Og@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=hws@denx.de \
    --cc=tbot@lists.denx.de \
    --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.