Skip to content
Version 0.8.2

== Added ==
- Added `` to run a command and interact with its stdio.
- `Path.write_text()`, `Path.read_text()`, `Path.write_bytes()`, and
  `Path.read_bytes()`: Methods to easily manipulate remote files.
- Added integration for U-Boot's test/py test-framework.  See the
  ``uboot_testpy`` testcase fore more.
- A connector for connection to a [conserver](
  based serial console: `tbot_contrib.connector.conserver`
- Testcases for timing the duration of an operation (`tbot_contrib.timing`).
- A testcase to deploy an `swu`-file to
  [SWUpdate]( (`tbot_contrib.swupdate`).
- Machines now implement `==` and `hash()`.  A machine which was cloned
  from another machine has the same hash, i.e. they can be treated as equal.
- Added a U-Boot smoke-test: `` or `uboot_smoke_test`
- Added a `DistroToolchain` class to easily allow using pre-installed
  toolchains with tbot.
- Added a Workdir which lives in ``$XDG_DATA_HOME`` and one living in
  ``$XDG_RUNTIME_DIR`` (``Workdir.xdg_home()`` and ``Workdir.xdg_runtime()``).
- You can now specify the U-Boot revision to checkout:
  ``tbot uboot_checkout -prev=\"v2020.01\"``
- A ``boot_timeout`` parameter was added to U-Boot machines to limit the maximum
  time, U-Boot is allowed to take during boot.
- Testcases for interacting with GPIOs (`tbot_contrib.gpio`).
- ``tbot.Re``: A convenience wrapper around ``re.compile``.  Whereever
  regex-patterns are needed (e.g. in channel-interaction), you can now use
  `tbot.Re` instead of `re.compile("...".encode())`.
- A `Channel.readline()` and a `Channel.expect()` method to mimic pexpect.

== Changed ==
- The default workdir for Linux shells is no longer `/tmp/tbot-wd`.  It is
  now `$XDG_DATA_HOME/tbot` (usually `~/.local/share/tbot`).
- `UBootBuilder` now points to the new U-Boot upstream
  (<>) by default.
- Fixed `linux.Bash`'s `.env()` implementation unnecessarily querying the
  variable after setting it.
- ``selftest`` now uses a dedicated machine class which does not clobber
  the default workdir and instead stores data in a temporary directory.

== Fixed ==
- Fixed tbot sometimes not displaying a message before entering
  interactive mode, thus leaving the user clueless what escape-sequence to
  use to exit.
- Fixed `linux.Bash`, `linux.Ash`, and `board.UBootShell` allowing some
  bad characters in command invocations which would mess up the shell's
- Fixed `tbot.flags` only being set _after_ loading the testcases which
  could lead to weird inconsistency errors.
- Fixed ``Channel.sendcontrol()`` not actually allowing all C0 control