Releases: Rahix/tbot
Releases · Rahix/tbot
Version 0.10.10
Added
- Added a
requires_legacy_scpsetting for SSH-based machines to makelinux.copy()and similar functions use the legacy SCP protocol instead of SFTP (#123 by @olmanqj). This may be useful for some old systems where no SFTP is available.
Changed
- Dropped official support for Python 3.8 - tbot now expects at least Python 3.9.
Fixed
- Fixed an error about incorrect slots in
SubprocessChannelIOon more recent Python versions.
Version 0.10.9
Version 0.10.8
Added
- Added a sanity check to Linux shell initialization which should catch situations where things went wrong. This should provided a more clear error message in the future (#115).
- A specific (and documented) error type for situations where a bounded regex pattern is required but an unbounded pattern was supplied.
- A specific error type for situations where a tool is missing on a host which would be required by some testcase.
Fixed
- Fixed U-Boot selftests failing on some systems due to an unclean environment.
Version 0.10.7
Changed
- Dropped official support for Python 3.7 - tbot now expects at least Python 3.8.
- Improved exception message when parsing of a command's return code fails (for example due to console clutter).
- Made the shell detection mechanism a bit more robust (
wait_for_shell()).
Fixed
Version 0.10.6
Added
Gpio.pulse()method intbot_contribfor pulsing a GPIO pin (#95 by @bauer-alex-174).- Added coverage tracking for tests. Feel free to help improving coverage, especially of obscure features that will easily break when we don't ensure their functionality with tests.
- Added an
AskfirstInitializerwhich can be used to deal with boards where the console is configured withaskfirst(#98). - Added the ability to use environment variables in
@<filename>argument files (#96 by @hsdenx).
Version 0.10.5
Added
- Added a
password_promptconfiguration toLinuxBootLoginwhich allows customizing what password prompt to wait for. This helps when the system is localized in a different language (#93 by @bauer-alex-174). - Added a
tbot_contrib.utils.find_block_partitions()helper for finding all partitions of a particular block device.
Version 0.10.4
Added
- Added a
tbot_contrib.linux.meminfo()helper for extracting info from/proc/meminfo.
Changed
- Updated the best-practice example for pytest integration (pytest Integration). It now properly allows accessing the configured machines before tests are run (#86 by @micaeb). An example, where this may be useful, is parameterizing a test depending on a configured machine:
# board config class MyBoard(......): interfaces = ["eth0", "usb0"] # testcase module import pytest import tbot def _interfaces(): with tbot.ctx.request(tbot.role.Board) as b: return b.interfaces @pytest.mark.parametrize("interface", _interfaces()) def test_interface(interface): tbot.log.message(f"Testing interface {interface}")
Fixed
- Fixed a file descriptor leak in the
SubprocessConnector(#88 by @micaeb). This would lead to an ever increasing number of open files in long test runs. On systems with a low file descriptor limit, tbot would then crash withOSError: [Errno 24] Too many open files. - Fixed channels not being closed by
SSHConnector(#91 by @micaeb). Channels stayed open until tbot exited, which is again problematic for long running tests. - Fixed
SSHConnectornot using the lab-host to connect to remote hosts (#92). This was the behavior in the past and got broken in tbot 0.9.0. - Fixed a couple of robustness issues in
tbot_contrib.gdbwhere tbot would hang or throw the wrong type of exception when encountering unexpected situations.
Version 0.10.3
Added
- Added a
forceparameter totbot.tc.check_for_tool()which forces the check even if a result was already cached for this tool (#83 by @jneuhauser). - Added an
only_decreaseparameter totbot.log.with_verbosity(). - Added an
AutoConsoleConnectortotbot_contribwhich automatically selects the best available tool for connecting to a serial console.
Version 0.10.2
Added
- Added a
tbot_contrib.utils.copy_to_dir()helper which copies multiple files to a directory. It is a more ergonomic wrapper around the existingcopy()function. Check its documentation for more details:copy_to_dir()(#77). - Lots of custom exception types in the
tbot.errormodule so test-code can differentiate between different kinds of errors. This is ongoing work and will continue in future releases (#79). - Added a
--json-log-streamCLI option tonewbotwhich can be used to reactivate the existing old json-stream logging infrastructure. A new logging mechansim will be added for newbot at some point in the future (#78 by @locomotiveviaduct).
Changed
- Moved
tbot.tc.shell.copy()totbot.machine.linux.copy()as it is a core part of tbot. The old name still exists for compatibility (#77).
Fixed
- Fixed tbot hanging when the remote side closes a channel while tbot is reading from it (#74).
- Fixed a double exception in the context manager for a channel (#74).
- Fixed the U-Boot shell not initializing correctly on very slow serial lines.
- Fixed
copy()not honoring theuse_multiplexingsetting (#77).
Version 0.10.1
Added
- Added
linux.RedirStdinto feed file contents to stdin of a command (#69 by @Lusus). - Added a mechanism which allows tbot to skip entering the password if the remote system never asks for one (
61800b63461b). Seeno_password_timeoutfor details. - Added the
tbot.log.with_verbosity()helper which can be used to temporarily change the verbosity level of tbot. - Added some documentation on how to integrate tbot with pytest: pytest Integration
Fixed
- Fixed
Channel.send()behavior when called with large amounts of data. - Fixed invalid non-blocking I/O handling in the
SubprocessChannelimplementation. - Fixed a few more escape sequences that clobber tbot's output.
Changed
- Updated the
tbot_contrib.swupdatetestcases to newer tbot APIs. - Changed the escape sequence for exiting interactive sessions. You can now press
CTRL-]three times within 1 second to exit any interactive session at any time. PressingCTRL-Dis no longer supported in any but the interactive linux-shell sessions (#70). - For all who didn't get the memo that Python 3.6 is EOL: tbot now requires 3.7 as the minimum supported Python version.