Question on running uboot_testpy with tbot
Simon Glass
sjg at chromium.org
Sat Oct 30 21:47:13 CEST 2021
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 at 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 at 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 at 7e202000: 0, sdhci at 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
>
>
More information about the U-Boot
mailing list