Test package system

This page describes a proposed "Test Package System" for Fuego. This describes "source" test packages, or the test definition and source code necessary to build, deploy, execute and post-process a test. The test package is part of the overall Test server system proposed for Fuego.

Another system under development with Fuego is the "Test binary package system", which is a standalone package containing the materials needed to execute a test on the target board (including pre-built binaries). See Test binary package system for details of that system.

This page has obsolete information, as of the Fuego 1.1 release (April 2017)

Introduction [edit section]

As of September, 2016, we add all tests to the system by adding them to the fuego-core repository. The files for a test are sprinkled around in lots of different places and some files (testplan_default.json, and tests.info) need to be edited manually for each new test added to the system.

This is a proposal to add a packaging system to Fuego, so that individual tests can be shipped as standalone entities.

The Fuego-core repository can hold the source for tests that are integrated into the system and vetted by fuego maintainers. But having tests shippable in separate units will allow much easier sharing of tests in the future.

As of May, 2018, several changes (refactorings) have been made to Fuego to support the features proposed in the Test package system. A demonstration of how test packaging might work was given in March of 2017, at Embedded Linux Conference. ftc now has the capability to package a test, if it includes a test.yaml file.

test.yaml file [edit section]

Each test that participates in the test package system has a test.yaml file, which defines meta-data used for packaging the test, as well as data used for searching for it and presenting it in an online "test store".

See test.yaml for the specification for this file.

Specification (ideas) [edit section]

I believe the following items are needed to create a test package system:

Test Hub vision [edit section]

At some point in the future, I envision a "test hub" (kind of like an app store), where people can place new test packages, and individual sites can select the tests they want to use with their system. There would be facilities for browsing the tests, downloading and installing the tests, and possibly rating tests or reporting issues about tests.

Creation of such a test hub is outside the scope of this test package proposal.

See Test server system

work in progress [edit section]

Tim is working on the test package system, as of February 2017. Here are some notes about that:

to do [edit section]

Notes:

test package format [edit section]

Here's a very simple sample test.yaml file:

Principles:

questions [edit section]

existing package format analysis [edit section]

.deb [edit section]

Features of .deb:

.pet [edit section]

Features of .pet

.rpm [edit section]

Features of .rpm

ebuild [edit section]

Features of ebuild

phases: