Skip to content

Releases: labgrid-project/labgrid

v23.0.2

04 Jul 11:02
Compare
Choose a tag to compare

Bug fixes in 23.0.2

  • Move SSHDriver's control socket tmpdir clean up after the the SSH process
    has terminated. Ignore errors on cleanup since it's best effort.
  • Add missing class name in labgrid-client monitor resource output.
  • Print USB loader process output if log level does not cover logging it.
  • Fix UnboundLocalError in atomic_replace() used by the coordinator and
    labgrid-client export to write config files.
  • Let Config's get_tool() return the requested tool if it is not found in
    the config. Return the resolved path if it exists, otherwise return the value
    as is. Also drop the now obsolete tool fallbacks from the drivers and add
    tests.
  • Fix USBSDMuxDevice/USBSDWireDevice udev race condition leading to
    outdated control/disk paths.
  • Fix SSHDriver's explicit_sftp_mode option to allow calls to put()
    and get() multiple times. Also make scp() respect this option.
  • Add compatibility with QEMU >= 6.1.0 to QEMUDriver's display argument
    for the egl-headless option.

v23.0.1

26 Apr 14:11
Compare
Choose a tag to compare

Bug fixes in 23.0.1

  • The pypi release now uses the labgrid pyserial fork in the form of the
    pyserial-labgrid package. This fixes installation with newer versions
    of pip.
  • Several tests have gained an importorskip() call to skip them if the
    module is not available.
  • The build-and-release workflow supports building wheels.
  • The markers now are restricted to patterns which won't match WARN,
    ERROR, INFO and similar log notifiers.
  • Fix named SSH lookups in conjunction with an environment file in
    labgrid-client.

v23.0

24 Apr 17:29
995b699
Compare
Choose a tag to compare

New Features in 23.0

  • Python 3.6 support has been dropped.
  • Exporter config templates now have access to the following new variables:
    isolated (all resource accesses must be tunneled True/False),
    hostname (of the exporter host), name (of the exporter).
  • ModbusRTU driver for instruments
  • Support for Eaton ePDU and TP-Link power strips added, either can be used as
    a NetworkPowerPort.
  • The example strategies now wait for complete system startup using systemctl.
  • Consider a combination of multiple "lg_feature" markers instead of
    considering only the closest marker.
  • There is a new get_strategy helper function which returns the strategy of
    the target.
  • labgrid-client now supports an export command which exposes the resource
    information as environment variables.
  • Newer C920 webcams are now supported.
  • The pytestplugin now correctly combines feature markers instead of replacing
    them.
  • The ConsoleLoggingReporter is now exported for library usage.
  • The HD 2MP Webcam is now supported by the video-driver.
  • TP-Link power strips are supported by the NetworkPowerDriver.
  • A ModbusRTUResource and Driver has been added to control RS485 equipment.
  • The strategies within labgrid learned the force() function.
  • The labgrid client SSH command is now able to instantiate the SSHDriver when
    there are multiple NetworkService resources available.
  • eg_pms2_network power port driver supports controlling the Energenie power
    management series with devices like the EG_PMS2_LAN & EG_PMS2_WLAN.
  • The client and coordinator learned of a new "release-from" operation that
    only releases a place if it acquired by a specific user. This can be used to
    prevent race conditions when attempting to automate the cleanup of unused
    places (e.g. in CI jobs).
  • ModbusTCPCoil driver supports writing using multiple coils write method
    in order to make driver usable with Papouch Quido I/O modules.
  • If supported, ser2net started by the exporter now allows multiple connections.
  • SmallUBootDriver driver now supports wide range of Ralink/mt7621 devices
    which expects boot_secret without new line with new boot_secret_nolf
    boolean config option.
  • More USBVideo devices have been added.
  • labgrid now uses a custom yaml loader/dumper.
  • labgrid-client add-match/add-named-match check for duplicate matches
  • DFUDriver has been added to communicate with a DFUDevice, a device in DFU
    (Device Firmware Upgrade) mode.
  • labgrid-client dfu added to allow communication with devices in DFU mode.
  • Support for QEMU Q35 machine added.
  • UBootDriver now handles idle console, allowing driver activation on
    an interrupted U-Boot.
  • Support for the STLINK-V3 has been added to the USBDebugger resource.
  • labgrid-suggest can now suggest matches for a USBPowerPort used by power
    switchable USB hubs.
  • AndroidFastboot is now deprecated and was replaced by AndroidUSBFastboot. This
    is more consistent with the AndroidNetFastboot support.
  • In case multiple matches are found for a driver, labgrid-client now outputs
    the available names.
  • ProcessWrapper now supports an "input" argument to check_output() that allows
    a string to be passed to stdin of the process.
  • The NetworkInterfaceDriver now supports local and remote SSH port
    forwarding to/from the exporter.
  • labgrid was switched over to use pyproject.toml.
  • A contrib script was added to export coordinator metrics to stasd.
  • The SSH connection timeout can now be globally controlled using the
    LG_SSH_CONNECT_TIMEOUT environment variable.
  • The QEMUDriver now supports a display option which can specify if an
    display device should be created. none (the default) will not create a
    display device, fb-headless will create a headless framebuffer device
    for software rendering, and egl-headless will create a headless GPU
    device for accelerated rendering (but requires host support).
  • The AndroidFastbootDriver now supports interaction with network devices in
    fastboot state.
  • Add bash completion for labgrid-client.
  • The QEMUDriver now support a nic property that can be used to create a
    network interface when booting.
  • The SSHDriver now correctly uses the processwrapper for rsync.
  • The QEMUDriver now supports API to add port-forwarding from localhost.
  • The get() method for sdwire has been added.
  • If there are multiple named resources for a target, one of them can be named
    "default" to select it automatically if no explicit other name is given.
  • labgrid-client has been extended with --name/-n for most commands. This allows
    attaching multiple power sources/usb-muxes and switching them individually
    from the command line.
  • Add DediprogFlashDriver and DediprogFlasher resource.
  • Add support for Digital Loggers PDU.
  • Add support for Shelly power switches.
  • Make labgrid-client use crossbar_url and crossbar_realm from ennvironment
    config.

Bug fixes in 23.0

  • The exporter now exports sysfsgpios during place acquire/release, fixing a
    race in the sysfspgio agent interface.
  • Fixed a bug where using labgrid-client io get always returned low
    when reading a sysfsgpio.
  • Fix labgrid-client exit code on keyboard interrupt.
  • Fixed labgrid-client forward --remote/-R, which used either the LOCAL
    part of --local/-L accidentally (if specified) or raised an
    UnboundLocalError.
  • Fix udev matching by attributes.
  • Stop Exporter's event loop when register calls fail.
  • Fix exit codes for various subcommands.
  • Omit role and place output for labgrid-client reserve to fix shell
    evaluation.

Breaking changes in 23.0

  • Config's get_option()/get_target_option() convert non-string
    options no longer to strings.
  • UBootDriver's boot_expression attribute is deprecated, it will no
    longer check for the string during U-Boot boot. This allows activating the
    driver on an already running U-Boot.
  • The uuu command handling was fixed for the UUUDriver.
  • UBootDriver boot() method was fixed.
  • Fix proxying of dynamic port power backends with URL in host parameter and
    authentication credentials.
  • The coordinator was switched over to anonymous static authentication. You'll
    have to use the legacy crossbar configuration to support older
    clients/exporters. The 23.1 release will remove support for the legacy ticket
    authentication.
  • AndroidFastboot has been deprecated. Please replace it with the more specific
    AndroidUSBFastboot with the same semantics.

Known issues in 23.0

v0.4.1

26 Nov 14:33
v0.4.1
Compare
Choose a tag to compare

Bug fixes in 0.4.1

  • The exporter now exports sysfsgpios during place acquire/release, fixing a
    race in the sysfspgio agent interface.
  • Fixed a bug where using labgrid-client io get always returned low
    when reading a sysfsgpio.
  • Fixed labgrid-client forward --remote/-R, which used either the LOCAL
    part of --local/-L accidentally (if specified) or raised an
    UnboundLocalError.
  • Fix labgrid-client exit code on keyboard interrupt.

v0.4.0

23 Sep 15:58
v0.4.0
Compare
Choose a tag to compare

New Features in 0.4.0

  • Duplicate bindings for the same driver are now allowed (see the QEMUDriver)
  • The NetworkPowerDriver now additionally supports:
    • Siglent SPD3000X series power supplies
  • Labgrid client lock now enforces that all matches need to be fulfilled.
  • Support for USB HID relays has been added.
  • UBootDriver now allows overriding of currently fixed await boot timeout
    via new boot_timeout argument.
  • With --lg-colored-steps, two new dark and light color schemes
    which only use the standard 8 ANSI colors can be set in LG_COLOR_SCHEME.
    The existing color schemes have been renamed to dark-256color and light-256color.
    Also, the ColoredStepReporter now tries to autodetect whether the terminal
    supports 8 or 256 colors, and defaults to the respective dark variant.
    The 256-color schemes now use purple instead of green for the run lines to
    make them easier distinguishable from pytest's "PASSED" output.
  • Network controlled relay providing GET/PUT based REST API
  • The QEMUDriver gains support for -bios and qcow2 images.
  • Support for audio input has been added.
  • Usage of sshpass for SSH password input has been replaced with the SSH_ASKPASS
    environment variable.
  • Labgrid supports the Linux Automation GmBH USB Mux now.
  • NetworkManager control support on the exporter has been added. This allows
    control of bluetooth and wifi connected to the exporter.
  • TFTP-/NFS-/HTTPProvider has been added, allowing easy staging of files for the
    DUT to later retrieve.
  • Improved LG_PROXY documentation in docs/usage.rst.
  • Exporter now checks /usr/sbin/ser2net for SerialPortExport
  • Support for Tasmota-flashed power outlets controlled via MQTT has been added.
  • The OpenOCDDriver has been reworked with new options and better output.
  • A script to synchronize places to an external description was added.
  • ShellDriver has regained the support to retrieve the active interface and IP
    addresses.
  • Labgrid has gained support for HTTP Video streams.
  • A settle time for the ShellDriver has been added to wait for chatty systems to
    settle before interacting with the shell.
  • Support for Macrosilicon HDMI to USB (MJPEG) adapters was added.
  • Console logfiles can now be created by the labgrid client command.
  • A ManualSwitchDriver has been added to prompt the user to flip a switch or set
    a jumper.
  • AndroidFastbootDriver now supports booting/flashing images preconfigured in
    the environment configuration.

Bug fixes in 0.4.0

  • pytest --lg-log foobar now creates the folder foobar before trying to
    write the log into it, and error handling was improved so that all possible
    errors that can occur when opening the log file are reported to stderr.
  • gstreamer log messages are now suppressed when using labgrid-client video.
  • Travis CI has been dropped for Github Actions.

Breaking changes in 0.4.0

  • EthernetInterface has been renamed to NetworkInterface.

Known issues in 0.4.0

  • Some client commands return 0 even if the command failed.
  • Currently empty passwords are not well supported by the ShellDriver

v0.3.3

07 Apr 05:53
v0.3.3
Compare
Choose a tag to compare
  • limit twisted version within crossbar-requirements.txt
  • the EthernetPort and SerialPort resources now properly raise their exceptions instead of only creating them
  • fixed docker cryptography failure during build
  • remove ports configuration from docker-compose.yml
  • add rsync to docker-client image

v0.3.2

14 Mar 07:05
v0.3.2
Compare
Choose a tag to compare
  • Fix for exporter baud rate handling which prevented ser2net from starting.

v0.3.1

05 Feb 15:40
v0.3.1
Compare
Choose a tag to compare
  • Fixes a typo in labgrid-bound-connect, which should re-enable connection
    proxying for SSH.
  • Man-Pages have been correctly regenerated.
  • The exporter correctly handles the configured baud-rate for serial ports again.
  • Various tests have been marked with skips if the modules are not available.
  • Docker files have been moved to from the docker directory to the dockerfiles
    directory, which prevents the tests from incorrectly assuming a docker module
    is available.

v0.3.0

22 Jan 15:17
Compare
Choose a tag to compare

New Features in 0.3.0

  • All CommandProtocol drivers support the poll_until_success method.
  • The new FileDigitalOutputDriver respresents a digital signal with a file.
  • The new GpioDigitalOutputDriver controls the state of a GPIO via the sysfs interface.
  • Crossbar and autobahn have been updated to 19.3.3 and 19.3.5 respectively.
  • The InfoDriver was removed. The functions have been integrated into the
    labgridhelper library, please use the library for the old functionality.
  • labgrid-client write-image subcommand: labgrid client now has a
    write-image command to write images onto block devices.
  • labgrid-client ssh now also uses port from NetworkService resource if
    available
  • The PLACE and STATE variables used by labgrid-client are replaced by
    LG_PLACE and LG_STATE, the old variables are still supported for the
    time being.
  • The SSHDriver's keyfile attribute is now specified relative to the config
    file just like the images are.
  • The ShellDriver's keyfile attribute is now specified relative to the config
    file just like the images are.
  • labgrid-client -P <PROXY> and the LG_PROXY enviroment variable can be
    used to access the coordinator and network resources via that SSH proxy host.
    Drivers which run commands via SSH to the exporter still connect directly,
    allowing custom configuration in the user's .ssh/config as needed.
    Note that not all drivers have been updated to use the ProxyManager yet.
  • Deditec RELAIS8 devices are now supported by the DeditecRelaisDriver.
  • The RKUSBDriver was added to support the rockchip serial download mode.
  • The USBStorageDriver gained support for BMAP.
  • Flashrom support added, by hard-wiring e.g. an exporter to the DUT, the ROM
    on the DUT can be written directly. The flashrom driver implements the
    bootstrap protocol.
  • AndroidFastbootDriver now supports 'getvar' and 'oem getenv' subcommands.
  • The coordinator now updates the resource acquired state at the exporter.
    Accordingly, the exporter now starts ser2net only when a resources is
    aquired. Furthermore, resource conflicts between places are now detected.
  • Labgrid now uses the ProcessWrapper for externally called processes. This
    should include output from these calls better inside the test runs.
  • The binding dictionary can now supports type name strings in addition to the
    types themselves, avoiding the need to import a specific protocol or driver
    in some cases.
  • The remote infrastructure gained support for place reservations, for further
    information check the section in the documentation.
  • The SigrokDriver gained support for the Manson HCS-2302, it allows enabling
    and disabling channels, measurement and setting the current and voltage limit.
  • labgrid-client write-image gained new arguments: --partition,
    --skip, --seek.
  • Support for Sentry PDUs has been added.
  • Strategies now implement a force method, to force a strategy state
    irrespective of the current state.
  • SSH Connections can now be proxied over the exporter, used by adding a device
    suffix to the NetworkService address.
  • UBootDriver now allows overriding of default boot command (run bootcmd)
    via new boot_command argument.
  • The config file supports per-target options, in addition to global options.
  • Add power driver to support GEMBIRD SiS-PM implementing SiSPMPowerDriver.
  • A cleanup of the cleanup functions was performed, labgrid should now clean up
    after itself and throws an error if the user needs to handle it himself.
  • labgrid-client now respects the LG_HOSTNAME and LG_USERNAME
    environment variables to set the hostname and username when accessing
    resources.
  • PyVISA support added, allowing to use PyVISA controlled test equipment from
    Labgrid.
  • labgrid-client write-image gained a new argument --mode to specify
    which tool should be used to write the image (either dd or bmaptool)
  • Exporter configuration file exporter.yaml now allows use of environment
    variables.

Breaking changes in 0.3.0

  • ManagedFile now saves the files in a different directory on the exporter.
    Previously /tmp was used, labgrid now uses /var/cache/labgrid.
    A tmpfiles example configuration for systemd is provided in the /contrib
    directory.
    It is also highly recommended to enable fs.protected_regular=1 and
    fs.protected_fifos=1 for kernels>=4.19.
    This requires user intervention after the upgrade to create the directory and
    setup the cleanup job.
  • @attr.s(cmp=False) is deprecated and all classes have been moved to
    @attr.s(eq=False), this release requires attrs version 19.2.0
  • Coordinator work dir is now set to the same dir as the crossbar configuration
    dir. Hence coordinator specific files like places.yaml and
    resources.yaml are now also stored in the crossbar configuration folder.
    Previously it would use ...
  • The HawkbitTestClient and USBStick classes have been removed
  • The original USBStorageDriver was removed, NetworkUSBStorageDriver was
    renamed to USBStorageDriver.
    A deprecated NetworkUSBStorageDriver exists temporarily for compatibility
    reasons.

Known issues in 0.3.0

  • There are several reports of sshpass used within the SSHDriver not working
    in call cases or only on the first connection.
  • Some client commands return 0 even if the command failed.
  • Currently empty passwords are not well supported by the ShellDriver

v0.3.0-rc1

16 Jan 15:50
v0.3.0-rc1
Compare
Choose a tag to compare
v0.3.0-rc1 Pre-release
Pre-release
Labgrid v0.3.0 release candidate 1