/checkbox

Checkbox stack monorepo

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Welcome to the Checkbox project source code repository!

What is Checkbox?

Checkbox is a flexible test automation software. It’s the main tool used in the Ubuntu Certification program.

You can use Checkbox without any modification to check if your system is behaving correctly or you can develop your own set of tests to check your needs.

Checkbox optionally generates test reports in different formats (HTML, JSON, text) that can be used to easily share the results of a test session.

For more information, check the official documentation.

Test report exported in HTML

Test selection screen in Checkbox

Getting started

To get started, setup a test environment, run Checkbox and its providers, run the associated tests and share your contributions with everyone, please check the contributing guide.

Content of the source code repository

Checkbox is composed of many different parts. Each of them are stored in a different directory:

.
├── checkbox-core-snap
├── checkbox-ng
├── checkbox-snap
├── checkbox-support
├── metabox
└── providers
    ├── base
    ├── certification-client
    ├── certification-server
    ├── docker
    ├── edgex
    ├── gpgpu
    ├── iiotg
    ├── ipdt
    ├── phoronix
    ├── resource
    ├── sru
    └── tpm2

Here is a brief explanation about each part:

  • checkbox-ng: the core application
  • checkbox-support: Python scripts and helper modules (for instance information parsers for different Linux utilities) used by Checkbox and its providers
  • providers: the main providers (base1, resource) along with other public providers2
  • checkbox-core-snap: snapcraft recipe to build the Checkbox core snap which contains the Checkbox runtime and the public providers (i.e. the checkbox[16|18|20|22] snaps in the Snap store)
  • checkbox-snap: snapcraft recipe to build the Checkbox test runner (i.e. the checkbox snap in the Snap store)
  • metabox: application to help test and validate Checkbox in different configurations using Linux containers or virtual machines

Footnotes

  1. formerly known as "Checkbox provider" or plainbox-provider-checkbox

  2. due to Checkbox flexibility, other providers can be used and might be hosted elsewhere (e.g. providers specific to private projects).