Skip to content
embedded systems control library for development, testing and installation
Python Other
  1. Python 99.6%
  2. Other 0.4%
Branch: master
Clone or download

Latest commit

rohieb and Emantor doc/development: link to labgrid.util.ssh apidoc
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Latest commit b0cc54d Mar 26, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.crossbar crossbar: move labgrid specific files to general workdir Feb 5, 2020
.github github: add pull request template Jan 2, 2019
contrib/systemd/tmpfiles.d contrib: tmpfiles: fix tmpfiles directives Mar 5, 2019
debian Add Debian copyright file Sep 9, 2019
doc doc/development: link to labgrid.util.ssh apidoc Mar 31, 2020
docker crossbar: move labgrid specific files to general workdir Feb 5, 2020
examples treewide: rename NetworkUSBStorageDriver -> USBStorageDriver, add dep… Feb 11, 2020
labgrid sshdriver: ssh_prefix to list and adjust users Mar 25, 2020
man man/labgrid-exporter: fix typo Mar 26, 2020
tests sshdriver: ssh_prefix to list and adjust users Mar 25, 2020
.codecov.yaml add codecov yaml configuration file Jun 11, 2018
.coveragerc coveralls: exclude protocols via .coveragerc and use it for travis Feb 28, 2017
.flake8 flake8: add configuration Nov 19, 2017
.gitignore .gitignore: add .idea to gitignore idea is a pycharm working dir Jan 17, 2020
.pylintrc pylintrc: adjust configuration to labgrid needs Jun 4, 2018
.travis.yml sshdriver: ssh_prefix to list and adjust users Mar 25, 2020
CHANGES.rst treewide: rename NetworkUSBStorageDriver -> USBStorageDriver, add dep… Feb 11, 2020
CODEOWNERS CODEOWNERS: add @krevsbech as an owner of the docker directory Nov 29, 2019
COPYING COPYING,LICENSE: move from .txt May 11, 2017
LICENSE COPYING,LICENSE: move from .txt May 11, 2017
MANIFEST.in setup: use fastentrypoints to reduce the script startup time Feb 27, 2017
README.rst README: update travis-ci badge Jun 4, 2019
crossbar-requirements.txt crossbar-requirements: Add explicit zlmdb version Jan 27, 2020
deb-requirements.txt debian: add packaging based on dh_virtualenv Apr 25, 2018
dev-requirements.txt dev-requirements: update psutil from 5.6.3 to 5.6.6 Mar 12, 2020
doc-requirements.txt requirements: update python dependencies Oct 27, 2019
docker-requirements.txt requirements: update python dependencies Oct 27, 2019
fastentrypoints.py setup: use fastentrypoints to reduce the script startup time Feb 27, 2017
graph-requirements.txt requirements: update python dependencies Nov 27, 2019
labgrid_logo.png add official labgrid logo Mar 20, 2019
modbus-requirements.txt modbus-requirements: update pyModbusTCP to 0.1.8 May 17, 2019
onewire-requirements.txt requirements: split up requirements files Feb 15, 2018
requirements.txt requirements: update autobahn and crossbar to 19.11.1 Dec 20, 2019
setup.cfg setup.cfg: enable warning-as-error for sphinx Feb 9, 2018
setup.py external: remove usbstick and hawkbit Feb 10, 2020
snmp-requirements.txt requirements: update python dependencies Nov 27, 2019
tox.ini Allow use of Python3.7 features Feb 27, 2019
travis-requirements.txt travis: requirements: move travis requirements to separate file Jun 4, 2018
xena-requirements.txt requirements: update python dependencies Nov 27, 2019

README.rst

labgrid logo

Welcome to labgrid

LGPLv2.1 build status coverage status documentation status chat

Purpose

Labgrid is an embedded board control python library with a focus on testing, development and general automation. It includes a remote control layer to control boards connected to other hosts.

The idea behind labgrid is to create an abstraction of the hardware control layer needed for testing of embedded systems, automatic software installation and automation during development. Labgrid itself is not a testing framework, but is intended to be combined with pytest (and additional pytest plugins). Please see Design Decisions for more background information.

It currently supports:

  • pytest plugin to write tests for embedded systems connecting serial console or SSH
  • remote client-exporter-coordinator infrastructure to make boards available from different computers on a network
  • power/reset management via drivers for power switches or onewire PIOs
  • upload of binaries via USB: imxusbloader/mxsusbloader (bootloader) or fastboot (kernel)
  • functions to control external services such as emulated USB-Sticks and the hawkBit deployment service

While labgrid is currently used for daily development on embedded boards and for automated testing, several planned features are not yet implemented and the APIs may be changed as more use-cases appear. We appreciate code contributions and feedback on using labgrid on other environments (see Contributing for details). Please consider contacting us (via a GitHub issue) before starting larger changes, so we can discuss design trade-offs early and avoid redundant work. You can also look at Ideas for enhancements which are not yet implemented.

Documentation

Read the Docs

Contributing

Development Docs

IRC channel #labgrid on freenode (bridged to the Matrix channel #labgrid:matrix.org)

Background

Work on labgrid started at Pengutronix in late 2016 and is currently in active use and development.

Quickstart

See the Installation section for more details.

Clone the git repository:

$ git clone https://github.com/labgrid-project/labgrid

Create and activate a virtualenv for labgrid:

$ virtualenv -p python3 venv
$ source venv/bin/activate

Install labgrid into the virtualenv:

$ pip install -r requirements.txt
$ python setup.py install

Tests can now run via:

$ python -m pytest --lg-env <config>
You can’t perform that action at this time.