A few features of pavilion will be consolidated into a new 'variables' and 'permutations' sections of the test section. An example config is occasionally worth literally dozens of words:
test:
variables:
# Variables provide a convenient place to put things that will likely be overridden
# in child tests.
# (See below, and the 'Test Inheritance' ticket).
sub-test: 'alltoall'
# You can give multiple values for a variable. These can be referenced individually,
# or be inserted iteratively (see # )
lustre:
- scratch1
- scratch2
- scratch3
# Variables can be grouped into sub-variables. This is especially useful for
# multi-valued variables that have multiple attributes.
filesystems:
- {type: nfs, path: '/usr/projects/hpctest/'}
- {type: tmp, path: '/tmp/'}
# Variables in the permutations, or 'per' section should generally have multiple
# values. That's because a virtual test is created and run for each combination
# of the values in this section. In this example, we want four runs, one for each
# combination of compiler and mpi.
permutations:
# For example, if we want to run a test
mpi:
- openmpi
- mvapich2
# Sometimes you don't want all permutations, you want some values to be linked.
# For that, use sub-variables. For below, the only combinations will be:
# compiler.name -> gcc, compiler.mpicc -> mpicc
# compiler.name -> intel, compiler.mpicc -> mpiicc
compiler:
- {name: 'gcc', mpicc: 'mpicc'}
- {name: 'intel', mpicc: 'mpiicc'}
Variable usage is covered in the String Formatting ticket, # .
Some Notes
There are additional variable sections that provide additional values.
system (sys) variables are provided via a plugin system. (See #)
pavilion (pav) variables are provided by core pavilion itself. (See #)
Multi-valued variables from these sections are treated as normal variables, not permutations.
Each variable name can only occur once in each of type of variable section.
Conflicts among variable names in sections are resolved in the order: var, per, sys, pav
When referencing variables, you may prepend each the abbreviated section name, in case of conflicts. (var, per, sys, pav)
The variable section names are reserved.
Variable names must match the regex '[a-z][a-z0-9-_]+'.
Variable values can be any string.
None of the variable and sub-variable names above have any special meaning. Their meaning comes solely from how they are used.
Variable and permutation values may be overridden on the command line.
Test permutations are not generated for permutation variables that aren't used.
Trying to reference the value of a variable that has sub-values is an error (ie - trying to get the value of 'filesystems', rather than 'filesystems.type'.)
A few features of pavilion will be consolidated into a new 'variables' and 'permutations' sections of the test section. An example config is occasionally worth literally dozens of words:
Variable usage is covered in the String Formatting ticket, # .
Some Notes