* Question on running uboot_testpy with tbot @ 2021-10-30 19:34 Simon Glass 2021-10-30 19:47 ` Simon Glass 2022-01-27 14:53 ` Harald Seiler 0 siblings, 2 replies; 6+ messages in thread From: Simon Glass @ 2021-10-30 19:34 UTC (permalink / raw) To: tbot List; +Cc: Harald Seiler, U-Boot Mailing List 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Question on running uboot_testpy with tbot 2021-10-30 19:34 Question on running uboot_testpy with tbot Simon Glass @ 2021-10-30 19:47 ` Simon Glass 2021-12-24 12:47 ` Simon Glass 2022-01-27 14:53 ` Harald Seiler 1 sibling, 1 reply; 6+ messages in thread From: Simon Glass @ 2021-10-30 19:47 UTC (permalink / raw) To: tbot List; +Cc: Harald Seiler, U-Boot Mailing List 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 > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Question on running uboot_testpy with tbot 2021-10-30 19:47 ` Simon Glass @ 2021-12-24 12:47 ` Simon Glass 0 siblings, 0 replies; 6+ messages in thread From: Simon Glass @ 2021-12-24 12:47 UTC (permalink / raw) To: tbot List; +Cc: Harald Seiler, U-Boot Mailing List Hi, Just pinging this thread in case someone can explain how to use this feature. Regards, Simon On Sat, 30 Oct 2021 at 13:47, Simon Glass <sjg@chromium.org> wrote: > > 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 >> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Question on running uboot_testpy with tbot 2021-10-30 19:34 Question on running uboot_testpy with tbot Simon Glass 2021-10-30 19:47 ` Simon Glass @ 2022-01-27 14:53 ` Harald Seiler 2022-01-27 16:05 ` Simon Glass 1 sibling, 1 reply; 6+ messages in thread From: Harald Seiler @ 2022-01-27 14:53 UTC (permalink / raw) To: Simon Glass, tbot List; +Cc: U-Boot Mailing List Hi Simon, first of all, sorry for the super late response to this :/ I had it on my list for a long time but had trouble finding enough time to revisit the test/py integration properly. You see, the existing test/py integration has bitrotten quite a lot and I couldn't even get the existing code working in my environment anymore... I've now tried reworking all this code for a more robust solution [1]. It has reached a state where it works well for me and if you are still interested, I'd be grateful for some feedback on how it fares for your needs. That said, if your lab and board config haven't changed, the old integration might still work for you. The new one is not yet in a tbot release but will be shortly. In the meantime you could check it out from the master branch and documentation can be found here: https://tbot.tools/contrib/uboot.html#tbot_contrib.uboot.testpy More regarding your actual problem below. [1]: https://github.com/Rahix/tbot/pull/64 On Sat, 2021-10-30 at 13:34 -0600, Simon Glass 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/l > ocal/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:/u > sr/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? The challenge here is that tbot is in control of the board (because we need seamless integration of tbot's board config) while test/py directs what should happen. To facilitate this, IO if funneled through tbot by means of some fifos/named pipes on the host where test/py is running. Roughly speaking, the setup looks like this (details may differ, depending on config): +---------------------------------------------------------+ | "build host" | +---------------+ | has u-boot sources | | tbot host | | +----------+ | | //====================<bh channel>==[captures stdout/stderr]======test/py | | | | //=================<m_command channel>==[powercycle trigger]=== | | | | | //============<m_console channel>==[board rx/tx console]==invocation| | | | | | | | +----------+ | | +----+ | | +---------------------------------------------------------+ | |tbot| | | | |runs| | | +------------------------------------+ | |here| | | | lab host | | +----+ | | | from here, we | | | | | | can connect to | | | | | | the board | | | | | | | +----------------+ | | \\============<board channel>==[board console]========== DUT | | \\=================<lh channel>==[trigger powercycle] | | the device | | | +------------------------------------+ | that is tested | +---------------+ +----------------+ The board console is essentially forwared as is between test/py and the board. This is technically handled by tbot, but data is passed through verbatim. The m_command channel is used to notify when test/py requests a powercycle of the board. tbot then calls the relevant methods from the board config. The "bh" channel is where test/py is actually executed and from where pytest stdout is captured. Lastly, we usually have an lh channel where the command to actually do a powercycle runs. ------ That all said, I am not really sure what is going wrong in your case. The traceback frame > │ File "tbot/tc/uboot/testpy.py", line 321, in testpy > │ os.write(chan_console.fileno(), data) > │ OSError: [Errno 9] Bad file descriptor indicates that writing to the board's console failed (chan_console is the <board channel> from above). To me, this means either the terminal emulator you're using shut down (unlikely). Or the channel you are using does not support `.fileno()` correctly/returns some wrong file descriptor? Maybe try a different connector if at all possible? E.g. using `SSHConnector` instead of `ParamikoConnector` or using `ConsoleConnector` instead of `PyserialConnector`... If you can share you configs, I can take a closer look. Regards, -- Harald ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Question on running uboot_testpy with tbot 2022-01-27 14:53 ` Harald Seiler @ 2022-01-27 16:05 ` Simon Glass 2022-02-01 9:35 ` Harald Seiler 0 siblings, 1 reply; 6+ messages in thread From: Simon Glass @ 2022-01-27 16:05 UTC (permalink / raw) To: Harald Seiler; +Cc: tbot List, U-Boot Mailing List Hi Harald, On Thu, 27 Jan 2022 at 07:54, Harald Seiler <hws@denx.de> wrote: > > Hi Simon, > > first of all, sorry for the super late response to this :/ I had it on > my list for a long time but had trouble finding enough time to revisit > the test/py integration properly. You see, the existing test/py > integration has bitrotten quite a lot and I couldn't even get the > existing code working in my environment anymore... > > I've now tried reworking all this code for a more robust solution [1]. > It has reached a state where it works well for me and if you are still > interested, I'd be grateful for some feedback on how it fares for your > needs. That said, if your lab and board config haven't changed, the old > integration might still work for you. > > The new one is not yet in a tbot release but will be shortly. In the > meantime you could check it out from the master branch and documentation > can be found here: > > https://tbot.tools/contrib/uboot.html#tbot_contrib.uboot.testpy > > More regarding your actual problem below. > > [1]: https://github.com/Rahix/tbot/pull/64 > > On Sat, 2021-10-30 at 13:34 -0600, Simon Glass 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/l > > ocal/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:/u > > sr/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? > > The challenge here is that tbot is in control of the board (because we > need seamless integration of tbot's board config) while test/py directs > what should happen. To facilitate this, IO if funneled through tbot by > means of some fifos/named pipes on the host where test/py is running. > Roughly speaking, the setup looks like this (details may differ, > depending on config): > > > +---------------------------------------------------------+ > | "build host" | > +---------------+ | has u-boot sources | > | tbot host | | +----------+ | > | //====================<bh channel>==[captures stdout/stderr]======test/py | | > | | //=================<m_command channel>==[powercycle trigger]=== | | > | | | //============<m_console channel>==[board rx/tx console]==invocation| | > | | | | | | +----------+ | > | +----+ | | +---------------------------------------------------------+ > | |tbot| | | > | |runs| | | +------------------------------------+ > | |here| | | | lab host | > | +----+ | | | from here, we | > | | | | | can connect to | > | | | | | the board | > | | | | | | +----------------+ > | | \\============<board channel>==[board console]========== DUT | > | \\=================<lh channel>==[trigger powercycle] | | the device | > | | +------------------------------------+ | that is tested | > +---------------+ +----------------+ > > The board console is essentially forwared as is between test/py and the > board. This is technically handled by tbot, but data is passed through > verbatim. > > The m_command channel is used to notify when test/py requests a > powercycle of the board. tbot then calls the relevant methods from the > board config. > > The "bh" channel is where test/py is actually executed and from where > pytest stdout is captured. > > Lastly, we usually have an lh channel where the command to actually do a > powercycle runs. > > ------ > > That all said, I am not really sure what is going wrong in your case. > The traceback frame > > > │ File "tbot/tc/uboot/testpy.py", line 321, in testpy > > │ os.write(chan_console.fileno(), data) > > │ OSError: [Errno 9] Bad file descriptor > > indicates that writing to the board's console failed (chan_console is > the <board channel> from above). To me, this means either the terminal > emulator you're using shut down (unlikely). Or the channel you are > using does not support `.fileno()` correctly/returns some wrong file > descriptor? > > Maybe try a different connector if at all possible? E.g. using > `SSHConnector` instead of `ParamikoConnector` or using > `ConsoleConnector` instead of `PyserialConnector`... > > If you can share you configs, I can take a closer look. Thanks for all the info. I tried master and it mostly works, although Iget the same error: 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 │ │ │ ## remote: Enumerating objects: 16467, done. │ │ │ ## remote: Counting objects: 100% (7350/7350), done. │ │ │ ## remote: Compressing objects: 100% (2267/2267), done. │ │ │ ## remote: Total 4857 (delta 4223), reused 2903 (delta 2545) │ │ │ ## Receiving objects: 100% (4857/4857), 943.01 KiB | 18.13 MiB/s, done. │ │ │ ## Resolving deltas: 100% (4223/4223), completed with 1664 local objects. │ │ │ ## From git://ellesmere/u-boot │ │ │ ## + 7bc37ec5293...44a53218e33 acpi -> origin/acpi (forced update) │ │ │ ## * [new branch] acpi2 -> origin/acpi2 │ │ │ ## * [new branch] bin-doc -> origin/bin-doc │ │ │ ## + 94cc73dfc3f...fcc379bdbeb bm3f -> origin/bm3f (forced update) │ │ │ ## + cb586ac4001...7d7e1b96bdb cb3 -> origin/cb3 (forced update) │ │ │ ## * [new branch] conf2a -> origin/conf2a │ │ │ ## + 9f4e246ceef...9072e7357c0 conf3 -> origin/conf3 (forced update) │ │ │ ## 6c9e3d1fc08..2d2384bbaff dm-push -> origin/dm-push │ │ │ ## + 518a1b4a099...3a0072f9967 efi -> origin/efi (forced update) │ │ │ ## + b2ff5ec422b...7a00dec65d7 kconf2 -> origin/kconf2 (forced update) │ │ │ ## * [new branch] mki2 -> origin/mki2 │ │ │ ## * [new branch] rpi4 -> origin/rpi4 │ │ │ ## + f936e485c68...8e81bcd7801 ser -> origin/ser (forced update) │ │ │ ## * [new branch] sera -> origin/sera │ │ │ ## * [new branch] small -> origin/small │ │ │ ## * [new branch] try-m4 -> origin/try-m4 │ │ │ ## * [new branch] try-rk2 -> origin/try-rk2 │ │ │ ## * [new branch] try-sunix -> origin/try-sunix │ │ │ ## * [new branch] vid -> origin/vid │ │ │ ## * [new tag] archive/conf3-21-Jan-22 -> archive/conf3-21-Jan-22 │ │ │ ## * [new tag] archive/conf4-21-Jan-22 -> archive/conf4-21-Jan-22 │ │ │ ## * [new tag] archive/kconf-21-Jan-22 -> archive/kconf-21-Jan-22 │ │ │ ## * [new tag] archive/rpi2-21-Jan-22 -> archive/rpi2-21-Jan-22 │ │ │ ## * [new tag] archive/rpi3-21-Jan-22 -> archive/rpi3-21-Jan-22 │ │ │ ## * [new tag] dm-pull-26jan22 -> dm-pull-26jan22 │ │ │ ## * [new tag] fixes-for-2020.10-rc1 -> fixes-for-2020.10-rc1 │ │ │ ## * [new tag] next-2021-03-04 -> next-2021-03-04 │ │ │ ## * [new tag] video-2021-07-rc1 -> video-2021-07-rc1 │ │ │ ## * [new tag] video-2021-07-rc1-2 -> video-2021-07-rc1-2 │ │ │ ## * [new tag] video-2021-08-05 -> video-2021-08-05 │ │ │ ## * [new tag] video-20211009 -> video-20211009 │ │ │ ## * [new tag] video-20211228 -> video-20211228 │ │ │ ## * [new tag] video-for-2021-07-rc3 -> video-for-2021-07-rc3 │ │ │ ## * [new tag] video-for-2021.01 -> video-for-2021.01 │ │ │ ## * [new tag] video-for-2021.01-rc1 -> video-for-2021.01-rc1 │ │ │ ## * [new tag] video-for-v2021.04 -> video-for-v2021.04 │ │ │ ## * [new tag] video-for-v2021.04-rc3 -> video-for-v2021.04-rc3 │ │ │ ## * [new tag] video-next-20211228 -> video-next-20211228 │ │ └─Done. (1.585s) │ ├─[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 2022.01-00116-g94cc73dfc3f (Jan 17 2022 - 14:42:07 -0700) │ │ <> │ │ <> DRAM: 992 MiB │ │ <> RPI 3 Model B (0xa22082) │ │ <> Core: 67 devices, 14 uclasses, devicetree: embed │ │ <> MMC: mmc@7e202000: 0, mmc@7e300000: 1 │ │ <> Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... │ │ <> In: serial │ │ <> Out: vidconsole │ │ <> Err: vidconsole │ │ <> Net: No ethernet found. │ │ <> starting USB... │ │ <> Bus usb@7e980000: USB DWC2 │ │ <> scanning bus usb@7e980000 for devices... usb_kbd usb_kbd: Timeout poll on interrupt endpoint │ │ <> Failed to get keyboard state from device 0c40:8000 │ │ <> 4 USB Device(s) found │ │ <> scanning usb for storage devices... 0 Storage Device(s) 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 343 items / 341 deselected / 2 selected │ │ ## │ │ ## test/py/tests/test_fpga.py::test_fpga_help SKIPPED [ 50%] │ │ ## test/py/tests/test_help.py::test_help │ ├─[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. (43.705s) ├─Exception: │ Traceback (most recent call last): │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/main.py", line 345, in main │ func(**params) │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-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.4-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.4-py3.8.egg/tbot/tc/uboot/testpy.py", line 332, in testpy │ os.write(chan_console.fileno(), data) │ OSError: [Errno 9] Bad file descriptor ├───────────────────────────────────────── └─FAILURE (43.835s) That happens after the tests finish, and what seems to be an exact 30 second delay from 'Exiting poweroff' to 'Fail'. I am not really any the wiser about what is happening there. The config is: # Generated by labman from dut rpi3 import tbot from tbot.machine import board, channel, connector, linux from tbot.tc import git, shell, uboot from flash import Flash from send import Send from sdwire import Sdwire from ykush import Ykush class Rpi3UBootBuilder(uboot.UBootBuilder): name = "rpi3" defconfig = "rpi_3_32b_defconfig" toolchain = "armv7-a" class Rpi3( connector.ConsoleConnector, board.PowerControl, board.Board, Flash, Send, Sdwire, Ykush, ): name = "rpi3" desc = "Raspberry Pi 3b Fedora 34" console_uart = "/dev/ttyusb_port1" mount_point = "rpi3_b_boot" mount_uuid = "5B0C-97DF" sdwire_serial = "sdwire-18" ykush_port = "1" ykush_serial = "YK17698" ether_mac = "b8:27:eb:b4:f9:f2" def poweron(self) -> None: """Procedure to turn power on.""" self.sdwire_dut() self.ykush_reset() def poweroff(self) -> None: """Procedure to turn power off.""" self.ykush_off() self.sdwire_ts() tbot.log.message('Exiting poweroff') def connect(self, mach) -> channel.Channel: """Connect to the board's serial interface.""" return mach.open_channel("picocom", "-q", "-b", "115200", self.console_uart) def flash(self, repo: git.GitRepository) -> None: self.sdwire_ts() self.flash_rpi(repo) self.sdwire_dut() def send(self, repo: git.GitRepository) -> None: self.sdwire_ts() self.ykush_reset() self.send_None(repo) self.sdwire_dut() class Rpi3UBoot( board.Connector, board.UBootAutobootIntercept, board.UBootShell, ): prompt = "U-Boot> " build = Rpi3UBootBuilder() class Rpi3Linux( board.Connector, board.LinuxBootLogin, linux.Bash, ): username = "pi" password = "raspberry" BOARD = Rpi3 UBOOT = Rpi3UBoot LINUX = Rpi3Linux Also I saw a failure for self tests: │ │ ├─selftest_machine_labhost_shell: │ │ │ Traceback (most recent call last): │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/tc/__init__.py", line 43, in testsuite │ │ │ test(**kwargs) │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/decorators.py", line 62, in wrapped │ │ │ return tc(*args, **kwargs) │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/tc/selftest/machine.py", line 54, in selftest_machine_labhost_shell │ │ │ selftest_machine_shell(lh) │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/decorators.py", line 62, in wrapped │ │ │ return tc(*args, **kwargs) │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/tc/selftest/machine.py", line 258, in selftest_machine_shell │ │ │ bs.terminate0() │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/machine/linux/util.py", line 158, in terminate0 │ │ │ retcode, output = self.terminate() │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/machine/linux/util.py", line 174, in terminate │ │ │ next(self._cmd_context) │ │ │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/machine/linux/bash.py", line 204, in cmd_context │ │ │ retcode = int(proxy_ch.read_until_prompt()) │ │ │ ValueError: invalid literal for int() with base 10: 'o $?\n' │ │ │ │ │ └─Fail. (1.050s) │ └─Fail. (1.091s) ├─Exception: Finally, I have about 10 local patches which I'd like to send... Regards, Simon ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Question on running uboot_testpy with tbot 2022-01-27 16:05 ` Simon Glass @ 2022-02-01 9:35 ` Harald Seiler 0 siblings, 0 replies; 6+ messages in thread From: Harald Seiler @ 2022-02-01 9:35 UTC (permalink / raw) To: Simon Glass; +Cc: tbot List, U-Boot Mailing List Hi Simon, On Thu, 2022-01-27 at 09:05 -0700, Simon Glass wrote: > Hi Harald, > [...] > > Thanks for all the info. I tried master and it mostly works, although > Iget the same error: > [...] > │ File "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/tc/uboot/testpy.py", > line 332, in testpy > │ os.write(chan_console.fileno(), data) > │ OSError: [Errno 9] Bad file descriptor > ├───────────────────────────────────────── > └─FAILURE (43.835s) > > That happens after the tests finish, and what seems to be an exact 30 > second delay from 'Exiting poweroff' to 'Fail'. I am not really any > the wiser about what is happening there. The config is: Did you try changing the channel as I mentioned? The channel is probably actually selected in the lab config where the connection to the machine labelled "sglass" is made. If that's still a ParamikoConnector, please try switching to the SSHConnector as a test (and the SSHConnector is generally preferred these days...). > # Generated by labman from dut rpi3 > [...] > > Also I saw a failure for self tests: > [...] > │ │ │ File > "/home/sglass/.local/lib/python3.8/site-packages/tbot-0.9.4-py3.8.egg/tbot/machine/linux/bash.py", > line 204, in cmd_context > │ │ │ retcode = int(proxy_ch.read_until_prompt()) > │ │ │ ValueError: invalid literal for int() with base 10: 'o $?\n' > │ │ │ > │ │ └─Fail. (1.050s) > │ └─Fail. (1.091s) > ├─Exception: > Hmm, that's the old selftests... Can you try running the new selftests in the tbot repository: cd /path/to/tbot-sources python3 -m pytest selftest/ > > Finally, I have about 10 local patches which I'd like to send... Sure, please go ahead! Either on the tbot list or on GitHub, whatever you prefer. Regards, -- Harald DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-62 Fax: +49-8142-66989-80 Email: hws@denx.de ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-02-01 9:35 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-10-30 19:34 Question on running uboot_testpy with tbot Simon Glass 2021-10-30 19:47 ` Simon Glass 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
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.