C&I WIki Portal/OCP Checkbox

From OpenCompute
Jump to navigation Jump to search

OCP Checkbox

Checkbox is a test harness used to execute test cases for OCP Ready and OCP Certification testing. It's a command line driven tool written in Python. OCP checkbox is capable of executing test scripts written in a variety of languages (Python, Bash, Perl, C, etc).

Origins

Checkbox began as a script called hwtest and was written by people at Canonical. As the initial script grew into a more functional test harness, it was renamed "Checkbox" and has been the testing tool used for Ubuntu certification for many years. The upstream checkbox project is fully open sourced as is the OCP branch of Checkbox. Anyone can contribute code to the tool at any time.

Checkbox (and it's next generation) is an extensible test harness that is capable of running tests that are in pretty much any language, interpreted or compiled, and even running external test suites like Phoronix, NGINX, etc.

About the Tools

As of Ubuntu 14.04 LTS, Checkbox has been deprecated in favor of a new generation test harness called Plainbox. Because of this, the last version of OCP Checkbox is 1.17.4. Going forward, this code is in Maintenance/Bug Fix only mode and will not receive any major updates. OCP Checkbox is still perfectly valid for testing use but will be replaced in the future by a plainbox based test tool. The difference to the tester will be minor, though for the developer, the difference will be great.

The development focus going forward is on the new Plainbox based test tool also stored on Launchpad. There are currently two packages necessary:

plainbox-provider-opencompute-certification
Provides the whitelists and test scripts, job definitions and other data for testing
checkbox-ng
The underlying test harness based on Plainbox

This will change slightly as development progresses.

Developer level documentation can be found here:

CheckBox-NG
PlainBox

Keep in mind that the documentation is developer focused, not user focused, and is also actively developed and thus could change in the future.

How to Participate

There are a number of ways you can participate in making this tool better for OCP.

Join the dev team

There is a team set up on Launchpad for people who wish to contribute:

https://launchpad.net/~opencompute-developers

Code!

You can always submit code to the project.

The source code can be found here: https://code.launchpad.net/~opencompute-developers/opencompute/checkbox
It is stored on launchpad and uses bzr as it's control system: http://bazaar.canonical.com/en/

Docs

We can always use new documentation, be it user guides, development guides, wiki pages, etc.

Testing

Feel free to install and run Checkbox. It runs well on Ubuntu and should run on Debian. It will also run on CentOS, RHEL and other Linuxes, but the test scripts themselves will need porting as they rely on Ubuntuisms in some cases.

Bug Reporting

Please feel free to file bugs on problems encountered or requests for enhancements:

https://bugs.launchpad.net/opencompute/checkbox

Questions?

Primarily, we hang out on the opencompute-ci mailing list and IRC Channel #ocp-ci on Freenode.