Plan Specifications¶
A plan is a yaml file with the following specification.
Full plan example¶
Full plan example:
version: 1
name: <plan name>
description: <plan description>
jobs:
- build: {toolchain: gcc-8, target_arch: i386, kconfig: tinyconfig}
sanity_test: {device: qemu-i386}
test: {device: qemu-i386, tests: [ltp-smoke]}
- builds:
- {toolchain: gcc-8, target_arch: i386, kconfig: tinyconfig}
- {toolchain: gcc-9, target_arch: i386, kconfig: tinyconfig}
- {toolchain: gcc-10, target_arch: i386, kconfig: tinyconfig}
test: {device: qemu-i386, tests: [ltp-smoke]}
- builds:
- {toolchain: clang-10, target_arch: i386, kconfig: tinyconfig}
- {toolchain: clang-11, target_arch: i386, kconfig: tinyconfig}
- {toolchain: clang-nightly, target_arch: i386, kconfig: tinyconfig}
test: {device: qemu-i386}
- build: {toolchain: clang-nightly, target_arch: i386, kconfig: tinyconfig}
tests:
- {device: qemu-i386}
- {device: qemu-i386, tests: [ltp-smoke]}
- builds:
- {toolchain: gcc-8, target_arch: i386, kconfig: tinyconfig}
- {toolchain: gcc-9, target_arch: i386, kconfig: tinyconfig}
- {toolchain: gcc-10, target_arch: i386, kconfig: tinyconfig}
tests:
- {device: qemu-i386}
- {device: qemu-i386, tests: [ltp-smoke]}
- tests:
- {kernel: https://storage.tuxboot.com/arm64/Image, device: qemu-arm64, tests: [ltp-smoke]}
- {kernel: https://storage.tuxboot.com/i386/bzImage, device: qemu-i386, tests: [ltp-smoke]}
- {kernel: https://storage.tuxboot.com/mips64/vmlinux, device: qemu-mips64, tests: [ltp-smoke]}
- {kernel: https://storage.tuxboot.com/ppc64/vmlinux, device: qemu-ppc64, tests: [ltp-smoke]}
- {kernel: https://storage.tuxboot.com/riscv64/Image, device: qemu-riscv64, tests: [ltp-smoke]}
- {kernel: https://storage.tuxboot.com/x86_64/bzImage, device: qemu-x86_64, tests: [ltp-smoke]}
Version¶
Currently, tuxsuite only supports version 1.
version: 1
Name and description¶
The name and description are only used if they are not defined on the command line.
name: plan name
description: plan description
They can be overridden on the command line:
tuxsuite plan --name "another name" --description "another description"
Jobs¶
Most of the configuration takes place in the jobs
section.
This section is a list of dictionary with one or two keys each.
Allowed combinations are:
- builds
- builds and test
- builds and tests
- build and test
- build and tests
- tests
Combinations¶
Each combinations has a different meaning:
- builds: list of builds
- builds and test: list of builds. For each build, the given test will be run
- builds and tests: list of builds. For each build, the given tests will be run
- build and test: a single build. The test will be run for this build
- build and tests: a single build. Every test will be run for this build
- tests: a list of kernels and modules to test
- build, sanity_test and test: A single build. Run the given sanity_test for that build. If the sanity_test passes, then the given test will be run for that build.
- build, sanity_test and tests: A single build. Run the given sanity_test for that build. If the sanity_test passes, then the given list of tests will be run for that build.
- builds, sanity_test and test: list of builds. For each build, run the given sanity_test. For each build if the sanity_test passes, then the given test will be run for that build.
- builds, sanity_test and tests: list of builds. For each build, run the given sanity_test. For each build if the sanity_test passes, then the given list of tests will be run for that build.
Builds¶
A build is defined by a dictionary:
toolchain: gcc-8
target_arch: i386
kconfig: defconfig
When specifying multiple builds, the job should be a list of dictionaries like:
- builds:
- {toolchain: gcc-8, target_arch: i386, kconfig: tinyconfig}
- {toolchain: gcc-9, target_arch: i386, kconfig: tinyconfig}
- {toolchain: gcc-10, target_arch: i386, kconfig: tinyconfig}
Tests¶
A test is defined by a dictionary:
device: qemu-i386
tests: [ltp-smoke]
In this case, the test is valid only when linked with a test.
To define a single test, a kernel
is mandatory:
device: qemu-i386
tests: [ltp-smoke]
kernel: https://storage.tuxboot.com/i386/bzImage
For ltp test suites, you can use sharding by specifying the sharding level:
- builds:
- {toolchain: gcc-8, target_arch: i386, kconfig: tinyconfig}
tests:
- {device: qemu-i386, tests: [ltp-syscalls], sharding: 10}
This will create 10 tests with parameters to only run one tenth of test tests.