Basic usage
Once PCVS is installed through the Installation Guide, the pcvs
is
available in PATH
. This program is the only entry point to PCVS:
$ pcvs
Usage: pcvs [OPTIONS] COMMAND [ARGS]…
PCVS main program.
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────╮ │ –verbose -v INTEGER RANGE Enable PCVS debug verbosity (cumulative) │ │ [env var: PCVS_VERBOSE] │ │ –color -c/–no-color Use colors to beautify the output [env var: PCVS_COLOR] │ │ –glyph -g/–no-glyph enable/disable Unicode glyphs [env var: PCVS_ENCODING] │ │ –exec-path -C DIRECTORY [env var: PCVS_EXEC_PATH] │ │ –version -V Display current version │ │ –width -w INTEGER Terminal width (autodetection if omitted │ │ –plugin-path -P PATH Default Plugin path prefix [env var: PCVS_PLUGIN_PATH] │ │ –plugin -m TEXT │ │ –help -h,-help Show this message and exit. │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────╮ │ bank Persistent data repository management │ │ check Ensure future input will be conformant to standards │ │ clean Remove artifacts generated from PCVS │ │ config Manage Configuration blocks │ │ exec Running aspecific test │ │ profile Manage Profiles │ │ report Manage PCVS result reporting interface │ │ run Run a validation │ │ scan Analyze directories to build up test conf. files │ │ session Manage multiple validations │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Create a profile
A profile contains the whole PCVS configuration in a single place. While this approach allow deeply complex approaches, we’ll target a simple MPI implementation for this example. To create the most basic profile able to run MPI programs, we may herit ours from pre-generated called a template:
$ pcvs profile create -t mpi user.myprofile
This profile can not be references with user.myprofile (or myprofile in
short, where there are no possible conflicts. This profile will be available at
user-level scope. It is also possible to set this profile as local
(only for
the current directory) or global
(anyone using the PCVS installation). You may
replace newprofile
by a name of your choice. For a complete list of available templates, please check pcvs profile list --all
.
A profile can be edited if necessary with pcvs profile edit newprofile
. It
will open an $EDITOR
. When exiting, the profile is validated to ensure
coherency. In case it does not fulfill a proper format, a rejection file is
crated in the current directory. Once fixed, the profile can be saved as a
replacement with:
$ pcvs profile import newprofile --force --source file.yml
Warning
The --force
option will overwrite any profile with the same name, if it
exists. Please use this option with care. In case of a rejection, the import
needs to be forced in order to replace the old one.
Implement job descriptions
For a short example of implementing test descriptions, please refer to the Test-suite layout shown in the Getting-Started guide. A more detailed presentation of test description capabilities is available in its own documentation page.
The most basic pcvs.yml
file may look like this:
my_program:
build:
files: ['main.c']
run:
program: ['a.out']
PCVS also supports building programs through Make, CMake & Autotools, each system having its own set of keys to configure:
build.make.target
: allow to configure a Make target to invoke.build.cmake.vars
: variables to forward to cmake (to be prefixed w/-D
)build.autotools.params
: configure script flagsbuild.autotools.autogen
: boolean whether to execute autogen.sh first.
Proper YAML formats can be checked before running a test-suite with:
$ pcvs check --directory /path/to/dir
$ pcvs check --profiles
Run a test-suite
Start a run from the local directory with our profile is as simple as:
$ pcvs run --profile newprofile
A list of directories can also be given. Once started, the validation process is
logged under $PWD/.pcvs-build
directory. If the directory already exists, it
is cleaned up and reused. A lock is put in that directory to protect against
concurrent PCVS execution in the same directory.