Skip to content

Releases: Rahix/tbot

Version 0.10.9

01 Nov 15:02
v0.10.9
Compare
Choose a tag to compare

Changed

  • Increased grace period for subprocesses to terminate from 1 to 10 seconds. A warning is emitted after 1 seconds anyway, to let the user know why tbot is waiting (#120).

Fixed

  • Added a workaround for the crc32 command in U-Boot which can collide with the U-Boot prompt in some cases (#112).

Version 0.10.8

18 May 11:49
v0.10.8
Compare
Choose a tag to compare

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

17 Mar 18:06
v0.10.7
Compare
Choose a tag to compare

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

  • Fixed tbot hanging when an unresponsive subprocess does not terminate by itself (#104 by @Mike8).
  • Fixed tbot no longer detecting unbounded regex patterns on recent Python versions.

Version 0.10.6

08 Sep 14:48
v0.10.6
Compare
Choose a tag to compare

Added

  • Gpio.pulse() method in tbot_contrib for 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 AskfirstInitializer which can be used to deal with boards where the console is configured with askfirst (#98).
  • Added the ability to use environment variables in @<filename> argument files (#96 by @hsdenx).

Version 0.10.5

12 Jun 07:41
v0.10.5
Compare
Choose a tag to compare

Added

  • Added a password_prompt configuration to LinuxBootLogin which 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

13 Apr 12:15
v0.10.4
Compare
Choose a tag to compare

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 with OSError: [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 SSHConnector not 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.gdb where tbot would hang or throw the wrong type of exception when encountering unexpected situations.

Version 0.10.3

21 Nov 08:34
v0.10.3
Compare
Choose a tag to compare

Added

  • Added a force parameter to tbot.tc.check_for_tool() which forces the check even if a result was already cached for this tool (#83 by @jneuhauser).
  • Added an only_decrease parameter to tbot.log.with_verbosity().
  • Added an AutoConsoleConnector to tbot_contrib which automatically selects the best available tool for connecting to a serial console.

Version 0.10.2

13 Oct 17:33
v0.10.2
Compare
Choose a tag to compare

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 existing copy() function. Check its documentation for more details: copy_to_dir() (#77).
  • Lots of custom exception types in the tbot.error module 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-stream CLI option to newbot which 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() to tbot.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 the use_multiplexing setting (#77).

Version 0.10.1

18 Aug 08:19
v0.10.1
Compare
Choose a tag to compare

Added

  • Added linux.RedirStdin to 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). See no_password_timeout for 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 SubprocessChannel implementation.
  • Fixed a few more escape sequences that clobber tbot's output.

Changed

  • Updated the tbot_contrib.swupdate testcases 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. Pressing CTRL-D is 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.

Version 0.10.0

13 May 14:19
v0.10.0
Compare
Choose a tag to compare

Added

  • The newbot CLI interface as a completely new and improved tool for calling tbot scripts. The documentation has been updated, you can familiarize yourself with the new tool in the new Quickstart Guide and learn about migrating to it in Migrating to newbot. The tbot tool will not be removed for the time being but it will not be the place for new development from now on.
  • Added a boot_timeout setting to LinuxBootLogin which will raise a TimeoutException if the login-prompt is not reached in the given time.

Changed

  • Upgraded the python package metadata to newer standards. Ideally this should not have any visible effects to users.

Fixed

  • Fixed tbot_contrib.locking sometimes failing with chmod related error messages while checking lock expiry.