Building Test via buildtest (buildtest build)

This guide will get you familiar with buildtest command line interface. Once you complete this section, you can proceed to writing buildspecs section where we will cover how to write buildspecs.

Once you install buildtest, you should find the buildtest command in your $PATH. You can check the path to buildtest command by running:

$ which buildtest

If you don’t see buildtest go back and install buildtest.

When you clone buildtest, you also get a set of buildspecs that you can run on your system. The buildtest build command is used for building and running tests. Buildtest will read one or more buildspecs file that adheres to one of the buildtest schemas. For a complete list of build options please run buildtest build --help.

Note

buildtest bd is an alias for buildtest build command.

Build Usage

buildtest build --help
$ buildtest build --help
usage: buildtest [options] [COMMANDS] build [-h] [-b BUILDSPEC] [-x EXCLUDE]
                                            [-e EXECUTOR] [-t TAGS] [--rerun]
                                            [-f FILTER] [--helpfilter]
                                            [-et {local,batch}]
                                            [--module-purge] [-m MODULES]
                                            [-u UNLOAD_MODULES]
                                            [--account ACCOUNT]
                                            [--disable-executor-check]
                                            [--remove-stagedir]
                                            [--maxpendtime MAXPENDTIME]
                                            [--pollinterval POLLINTERVAL]
                                            [--procs PROCS [PROCS ...]]
                                            [--nodes NODES [NODES ...]]
                                            [--rebuild REBUILD]
                                            [--retry RETRY] [-s {parse,build}]
                                            [--testdir TESTDIR]
                                            [--timeout TIMEOUT]

optional arguments:
  -h, --help            show this help message and exit

select:
  Select buildspec file to run based on file, tag, executor

  -b BUILDSPEC, --buildspec BUILDSPEC
                        Specify a buildspec (file or directory) to build. A
                        buildspec must end in '.yml' extension.
  -x EXCLUDE, --exclude EXCLUDE
                        Exclude one or more buildspecs (file or directory)
                        from processing. A buildspec must end in '.yml'
                        extension.
  -e EXECUTOR, --executor EXECUTOR
                        Discover buildspecs by executor name found in
                        buildspec cache
  -t TAGS, --tags TAGS  Discover buildspecs by tags found in buildspec cache
  --rerun               Rerun last successful buildtest build command.

filter:
  Filter tests after selection

  -f FILTER, --filter FILTER
                        Filter buildspec based on tags, type, or maintainers.
                        Usage: --filter key1=val1,key2=val2
  --helpfilter          Show available filter fields used with --filter option
  -et {local,batch}, --executor-type {local,batch}
                        Filter tests by executor type (local, batch)

module:
  Module Selection option

  --module-purge        Run 'module purge' before running any test
  -m MODULES, --modules MODULES
                        Specify a list of modules to load during test
                        execution, to specify multiple modules each one must
                        be comma separated for instance if you want to load
                        'gcc' and 'python' module you can do '-m gcc,python'
  -u UNLOAD_MODULES, --unload-modules UNLOAD_MODULES
                        Specify a list of modules to unload during test
                        execution

batch:
  Batch Submission Options

  --account ACCOUNT     Specify project account used to charge batch jobs
                        (applicable for batch jobs only)
  --maxpendtime MAXPENDTIME
                        Specify Maximum Pending Time (sec) for job before
                        cancelling job. This only applies for batch job
                        submission.
  --pollinterval POLLINTERVAL
                        Specify Poll Interval (sec) for polling batch jobs
  --procs PROCS [PROCS ...]
                        Specify number of processes to run tests (only
                        applicable with batch jobs). Multiple values can be
                        specified comma separated.
  --nodes NODES [NODES ...]
                        Specify number of nodes to run tests (only applicable
                        with batch jobs). Multiple values can be specified
                        comma separated.

extra:
  All extra options

  --disable-executor-check
                        Disable executor check during configuration check. By
                        default these checks are enforced for Local, Slurm,
                        PBS, LSF, and Cobalt Executor.
  --remove-stagedir     Remove stage directory after job completion.
  --rebuild REBUILD     Rebuild test X number of times. Must be a positive
                        number between [1-50]
  --retry RETRY         Retry failed jobs
  -s {parse,build}, --stage {parse,build}
                        Control behavior of buildtest build to stop execution
                        after 'parse' or 'build' stage
  --testdir TESTDIR     Specify a custom test directory where to write tests.
                        This overrides configuration file and default
                        location.
  --timeout TIMEOUT     Specify test timeout in number of seconds

Building a Test

To build a test, we use the --buildspec or short option -b to specify the path to buildspec file. Let’s see some examples, first we specify a full path to buildspec file. In this example, buildtest will discover buildspecs followed by parsing the test with appropriate schema and generate a shell script that is run by buildtest. You can learn more about build and test process.

buildtest build -b $BUILDTEST_ROOT/tutorials/vars.yml
$ buildtest build -b $BUILDTEST_ROOT/tutorials/vars.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:50:14                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
variables_bash/8f92e8f4: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/8f92e8f4
variables_bash/8f92e8f4: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/8f92e8f4/stage
variables_bash/8f92e8f4: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/8f92e8f4/variables_bash_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
variables_bash/8f92e8f4 does not have any dependencies adding test to queue
variables_bash/8f92e8f4: Running Test via command: bash --norc --noprofile -eo pipefail variables_bash_build.sh
variables_bash/8f92e8f4: Test completed in 0.010681 seconds
variables_bash/8f92e8f4: Test completed with returncode: 0
variables_bash/8f92e8f4: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/8f92e8f4/variables_bash.out
variables_bash/8f92e8f4: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/8f92e8f4/variables_bash.err
In this iteration we are going to run the following tests: [variables_bash/8f92e8f4]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ variables_ba │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.010681 │
│ sh/8f92e8f4  │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_5rir65d3.log

Note

buildtest will only read buildspecs with .yml extension, if you specify a .yaml it will be ignored by buildtest.

The --buildspec option can be used to specify a file or directory path. If you want to build multiple buildspecs in a directory you can specify the directory path and buildtest will recursively search for all .yml files. In the next example, we build all tests in directory general_tests/configuration.

buildtest build -b $BUILDTEST_ROOT/general_tests/configuration/
$ buildtest build -b $BUILDTEST_ROOT/general_tests/configuration/
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:12                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  4
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  4
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 4 buildspecs
Valid Buildspecs: 4
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/systemd-default-target.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/kernel_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/ulimits.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/disk_usage.yml: VALID
Total builder objects created: 9
Total compiler builder: 0
Total script builder: 9
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ systemd_d… │ generic.l… │ None     │ None  │ None  │ check if   │ /home/doc… │
│            │            │          │       │       │ default    │            │
│            │            │          │       │       │ target is  │            │
│            │            │          │       │       │ multi-use… │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ kernel_sw… │ generic.l… │ None     │ None  │ None  │ Retrieve   │ /home/doc… │
│            │            │          │       │       │ Kernel     │            │
│            │            │          │       │       │ Swap Usage │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_fi… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ file lock  │            │
│            │            │          │       │       │ is set to  │            │
│            │            │          │       │       │ unlimited  │            │
│            │            │          │       │       │ in ulimits │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_cp… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ cputime is │            │
│            │            │          │       │       │ set to     │            │
│            │            │          │       │       │ unlimited  │            │
│            │            │          │       │       │ in ulimits │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_st… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ stack size │            │
│            │            │          │       │       │ is set to  │            │
│            │            │          │       │       │ unlimited  │            │
│            │            │          │       │       │ in ulimits │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_vm… │ generic.l… │ None     │ None  │ None  │ Check      │ /home/doc… │
│            │            │          │       │       │ virtual    │            │
│            │            │          │       │       │ memory     │            │
│            │            │          │       │       │ size and   │            │
│            │            │          │       │       │ check if   │            │
│            │            │          │       │       │ its set to │            │
│            │            │          │       │       │ unlimited  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_fi… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ open file  │            │
│            │            │          │       │       │ descripto… │            │
│            │            │          │       │       │ limit is   │            │
│            │            │          │       │       │ set to     │            │
│            │            │          │       │       │ 4096       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_ma… │ generic.l… │ None     │ None  │ None  │ Check max  │ /home/doc… │
│            │            │          │       │       │ number of  │            │
│            │            │          │       │       │ user       │            │
│            │            │          │       │       │ process    │            │
│            │            │          │       │       │ limit is   │            │
│            │            │          │       │       │ set to     │            │
│            │            │          │       │       │ 2048       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ root_disk… │ generic.l… │ None     │ None  │ None  │ Check root │ /home/doc… │
│            │            │          │       │       │ disk usage │            │
│            │            │          │       │       │ and report │            │
│            │            │          │       │       │ if it      │            │
│            │            │          │       │       │ exceeds    │            │
│            │            │          │       │       │ threshold  │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
systemd_default_target/19f1101d: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/19f1101d
systemd_default_target/19f1101d: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/19f1101d/stage
systemd_default_target/19f1101d: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/19f1101d/systemd_default_target_build.sh
kernel_swapusage/72679d3c: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/72679d3c
kernel_swapusage/72679d3c: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/72679d3c/stage
kernel_swapusage/72679d3c: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/72679d3c/kernel_swapusage_build.sh
ulimit_filelock_unlimited/04c22f08: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/04c22f08
ulimit_filelock_unlimited/04c22f08: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/04c22f08/stage
ulimit_filelock_unlimited/04c22f08: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/04c22f08/ulimit_filelock_unlimited_build.sh
ulimit_cputime_unlimited/82e90650: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/82e90650
ulimit_cputime_unlimited/82e90650: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/82e90650/stage
ulimit_cputime_unlimited/82e90650: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/82e90650/ulimit_cputime_unlimited_build.sh
ulimit_stacksize_unlimited/ecb23c75: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/ecb23c75
ulimit_stacksize_unlimited/ecb23c75: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/ecb23c75/stage
ulimit_stacksize_unlimited/ecb23c75: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/ecb23c75/ulimit_stacksize_unlimited_build.sh
ulimit_vmsize_unlimited/08250dc6: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/08250dc6
ulimit_vmsize_unlimited/08250dc6: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/08250dc6/stage
ulimit_vmsize_unlimited/08250dc6: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/08250dc6/ulimit_vmsize_unlimited_build.sh
ulimit_filedescriptor_4096/a22a4fe1: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/a22a4fe1
ulimit_filedescriptor_4096/a22a4fe1: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/a22a4fe1/stage
ulimit_filedescriptor_4096/a22a4fe1: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/a22a4fe1/ulimit_filedescriptor_4096_build.sh
ulimit_max_user_process_2048/25d04075: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/25d04075
ulimit_max_user_process_2048/25d04075: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/25d04075/stage
ulimit_max_user_process_2048/25d04075: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/25d04075/ulimit_max_user_process_2048_build.sh
root_disk_usage/18dd413f: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/18dd413f
root_disk_usage/18dd413f: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/18dd413f/stage
root_disk_usage/18dd413f: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/18dd413f/root_disk_usage_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
ulimit_filedescriptor_4096/a22a4fe1 does not have any dependencies adding test to queue
kernel_swapusage/72679d3c does not have any dependencies adding test to queue
ulimit_max_user_process_2048/25d04075 does not have any dependencies adding test to queue
systemd_default_target/19f1101d does not have any dependencies adding test to queue
ulimit_vmsize_unlimited/08250dc6 does not have any dependencies adding test to queue
ulimit_cputime_unlimited/82e90650 does not have any dependencies adding test to queue
ulimit_stacksize_unlimited/ecb23c75 does not have any dependencies adding test to queue
ulimit_filelock_unlimited/04c22f08 does not have any dependencies adding test to queue
root_disk_usage/18dd413f does not have any dependencies adding test to queue
ulimit_filedescriptor_4096/a22a4fe1: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_filedescriptor_4096_build.sh
ulimit_filedescriptor_4096/a22a4fe1: Test completed in 0.005693 seconds
ulimit_filedescriptor_4096/a22a4fe1: Test completed with returncode: 0
ulimit_filedescriptor_4096/a22a4fe1: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/a22a4fe1/ulimit_filedescriptor_4096.out
ulimit_filedescriptor_4096/a22a4fe1: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/a22a4fe1/ulimit_filedescriptor_4096.err
ulimit_filedescriptor_4096/a22a4fe1: performing regular expression - '^4096$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/a22a4fe1/ulimit_filedescriptor_4096.out
ulimit_filedescriptor_4096/a22a4fe1: Regular Expression Match - Failed!
ulimit_max_user_process_2048/25d04075: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_max_user_process_2048_build.sh
ulimit_max_user_process_2048/25d04075: Test completed in 0.00537 seconds
ulimit_max_user_process_2048/25d04075: Test completed with returncode: 0
ulimit_max_user_process_2048/25d04075: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/25d04075/ulimit_max_user_process_2048.out
ulimit_max_user_process_2048/25d04075: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/25d04075/ulimit_max_user_process_2048.err
ulimit_max_user_process_2048/25d04075: performing regular expression - '^2048$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/25d04075/ulimit_max_user_process_2048.out
ulimit_max_user_process_2048/25d04075: Regular Expression Match - Failed!
kernel_swapusage/72679d3c: Running Test via command: bash --norc --noprofile -eo pipefail kernel_swapusage_build.sh
kernel_swapusage/72679d3c: Test completed in 0.087963 seconds
kernel_swapusage/72679d3c: Test completed with returncode: 255
kernel_swapusage/72679d3c: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/72679d3c/kernel_swapusage.out
kernel_swapusage/72679d3c: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/72679d3c/kernel_swapusage.err
ulimit_vmsize_unlimited/08250dc6: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_vmsize_unlimited_build.sh
ulimit_vmsize_unlimited/08250dc6: Test completed in 0.005704 seconds
ulimit_vmsize_unlimited/08250dc6: Test completed with returncode: 0
ulimit_vmsize_unlimited/08250dc6: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/08250dc6/ulimit_vmsize_unlimited.out
ulimit_vmsize_unlimited/08250dc6: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/08250dc6/ulimit_vmsize_unlimited.err
ulimit_vmsize_unlimited/08250dc6: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/08250dc6/ulimit_vmsize_unlimited.out
ulimit_vmsize_unlimited/08250dc6: Regular Expression Match - Success!
systemd_default_target/19f1101d: Running Test via command: bash --norc --noprofile -eo pipefail systemd_default_target_build.sh
systemd_default_target/19f1101d: Test completed in 0.249565 seconds
systemd_default_target/19f1101d: Test completed with returncode: 1
systemd_default_target/19f1101d: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/19f1101d/systemd_default_target.out
systemd_default_target/19f1101d: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/19f1101d/systemd_default_target.err
ulimit_cputime_unlimited/82e90650: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_cputime_unlimited_build.sh
ulimit_cputime_unlimited/82e90650: Test completed in 0.005969 seconds
ulimit_cputime_unlimited/82e90650: Test completed with returncode: 0
ulimit_cputime_unlimited/82e90650: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/82e90650/ulimit_cputime_unlimited.out
ulimit_cputime_unlimited/82e90650: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/82e90650/ulimit_cputime_unlimited.err
ulimit_cputime_unlimited/82e90650: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/82e90650/ulimit_cputime_unlimited.out
ulimit_cputime_unlimited/82e90650: Regular Expression Match - Success!
ulimit_stacksize_unlimited/ecb23c75: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_stacksize_unlimited_build.sh
ulimit_stacksize_unlimited/ecb23c75: Test completed in 0.005972 seconds
ulimit_stacksize_unlimited/ecb23c75: Test completed with returncode: 0
ulimit_stacksize_unlimited/ecb23c75: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/ecb23c75/ulimit_stacksize_unlimited.out
ulimit_stacksize_unlimited/ecb23c75: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/ecb23c75/ulimit_stacksize_unlimited.err
ulimit_stacksize_unlimited/ecb23c75: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/ecb23c75/ulimit_stacksize_unlimited.out
ulimit_stacksize_unlimited/ecb23c75: Regular Expression Match - Failed!
ulimit_filelock_unlimited/04c22f08: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_filelock_unlimited_build.sh
ulimit_filelock_unlimited/04c22f08: Test completed in 0.005625 seconds
ulimit_filelock_unlimited/04c22f08: Test completed with returncode: 0
ulimit_filelock_unlimited/04c22f08: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/04c22f08/ulimit_filelock_unlimited.out
ulimit_filelock_unlimited/04c22f08: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/04c22f08/ulimit_filelock_unlimited.err
ulimit_filelock_unlimited/04c22f08: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/04c22f08/ulimit_filelock_unlimited.out
ulimit_filelock_unlimited/04c22f08: Regular Expression Match - Success!
root_disk_usage/18dd413f: Running Test via command: bash --norc --noprofile -eo pipefail root_disk_usage_build.sh
root_disk_usage/18dd413f: Test completed in 0.010038 seconds
root_disk_usage/18dd413f: Test completed with returncode: 0
root_disk_usage/18dd413f: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/18dd413f/root_disk_usage.out
root_disk_usage/18dd413f: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/18dd413f/root_disk_usage.err
In this iteration we are going to run the following tests: [ulimit_filedescriptor_4096/a22a4fe1, ulimit_max_user_process_2048/25d04075, kernel_swapusage/72679d3c, ulimit_vmsize_unlimited/08250dc6, systemd_default_target/19f1101d, ulimit_cputime_unlimited/82e90650, ulimit_stacksize_unlimited/ecb23c75, ulimit_filelock_unlimited/04c22f08, root_disk_usage/18dd413f]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ ulimit_stack │ generic.loc… │ FAIL   │ False False   │ 0          │ 0.005972 │
│ size_unlimit │              │        │ False         │            │          │
│ ed/ecb23c75  │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_vmsiz │ generic.loc… │ PASS   │ False True    │ 0          │ 0.005704 │
│ e_unlimited/ │              │        │ False         │            │          │
│ 08250dc6     │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_filed │ generic.loc… │ FAIL   │ False False   │ 0          │ 0.005693 │
│ escriptor_40 │              │        │ False         │            │          │
│ 96/a22a4fe1  │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_cputi │ generic.loc… │ PASS   │ False True    │ 0          │ 0.005969 │
│ me_unlimited │              │        │ False         │            │          │
│ /82e90650    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ systemd_defa │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.249565 │
│ ult_target/1 │              │        │               │            │          │
│ 9f1101d      │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_filel │ generic.loc… │ PASS   │ False True    │ 0          │ 0.005625 │
│ ock_unlimite │              │        │ False         │            │          │
│ d/04c22f08   │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ kernel_swapu │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 255        │ 0.087963 │
│ sage/72679d3 │              │        │               │            │          │
│ c            │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ root_disk_us │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.010038 │
│ age/18dd413f │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_max_u │ generic.loc… │ FAIL   │ False False   │ 0          │ 0.00537  │
│ ser_process_ │              │        │ False         │            │          │
│ 2048/25d0407 │              │        │               │            │          │
│ 5            │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 4/9 Percentage: 44.444%
Failed Tests: 5/9 Percentage: 55.556%


Adding 9 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_dhpv913q.log

Building Multiple Buildspecs

You can append -b option to build multiple buildspecs in the same command. Buildtest will discover buildspecs for every argument (-b) and accumulate a list of buildspecs to run. In this example, we instruct buildtest to build a buildspec file and all buildspecs in a directory path.

buildtest build -b $BUILDTEST_ROOT/general_tests/configuration/ -b $BUILDTEST_ROOT/tutorials/vars.yml
$ buildtest build -b $BUILDTEST_ROOT/general_tests/configuration/ -b $BUILDTEST_ROOT/tutorials/vars.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:13                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  5
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  5
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 5 buildspecs
Valid Buildspecs: 5
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/disk_usage.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/systemd-default-target.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/kernel_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/ulimits.yml: VALID
Total builder objects created: 10
Total compiler builder: 0
Total script builder: 10
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ root_disk… │ generic.l… │ None     │ None  │ None  │ Check root │ /home/doc… │
│            │            │          │       │       │ disk usage │            │
│            │            │          │       │       │ and report │            │
│            │            │          │       │       │ if it      │            │
│            │            │          │       │       │ exceeds    │            │
│            │            │          │       │       │ threshold  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ systemd_d… │ generic.l… │ None     │ None  │ None  │ check if   │ /home/doc… │
│            │            │          │       │       │ default    │            │
│            │            │          │       │       │ target is  │            │
│            │            │          │       │       │ multi-use… │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ kernel_sw… │ generic.l… │ None     │ None  │ None  │ Retrieve   │ /home/doc… │
│            │            │          │       │       │ Kernel     │            │
│            │            │          │       │       │ Swap Usage │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_fi… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ file lock  │            │
│            │            │          │       │       │ is set to  │            │
│            │            │          │       │       │ unlimited  │            │
│            │            │          │       │       │ in ulimits │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_cp… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ cputime is │            │
│            │            │          │       │       │ set to     │            │
│            │            │          │       │       │ unlimited  │            │
│            │            │          │       │       │ in ulimits │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_st… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ stack size │            │
│            │            │          │       │       │ is set to  │            │
│            │            │          │       │       │ unlimited  │            │
│            │            │          │       │       │ in ulimits │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_vm… │ generic.l… │ None     │ None  │ None  │ Check      │ /home/doc… │
│            │            │          │       │       │ virtual    │            │
│            │            │          │       │       │ memory     │            │
│            │            │          │       │       │ size and   │            │
│            │            │          │       │       │ check if   │            │
│            │            │          │       │       │ its set to │            │
│            │            │          │       │       │ unlimited  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_fi… │ generic.l… │ None     │ None  │ None  │ Check if   │ /home/doc… │
│            │            │          │       │       │ open file  │            │
│            │            │          │       │       │ descripto… │            │
│            │            │          │       │       │ limit is   │            │
│            │            │          │       │       │ set to     │            │
│            │            │          │       │       │ 4096       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ ulimit_ma… │ generic.l… │ None     │ None  │ None  │ Check max  │ /home/doc… │
│            │            │          │       │       │ number of  │            │
│            │            │          │       │       │ user       │            │
│            │            │          │       │       │ process    │            │
│            │            │          │       │       │ limit is   │            │
│            │            │          │       │       │ set to     │            │
│            │            │          │       │       │ 2048       │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
root_disk_usage/17429aed: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/17429aed
root_disk_usage/17429aed: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/17429aed/stage
root_disk_usage/17429aed: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/17429aed/root_disk_usage_build.sh
systemd_default_target/5dc23a0e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/5dc23a0e
systemd_default_target/5dc23a0e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/5dc23a0e/stage
systemd_default_target/5dc23a0e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/5dc23a0e/systemd_default_target_build.sh
kernel_swapusage/db2a2dfc: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/db2a2dfc
kernel_swapusage/db2a2dfc: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/db2a2dfc/stage
kernel_swapusage/db2a2dfc: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/db2a2dfc/kernel_swapusage_build.sh
variables_bash/700f6432: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/700f6432
variables_bash/700f6432: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/700f6432/stage
variables_bash/700f6432: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/700f6432/variables_bash_build.sh
ulimit_filelock_unlimited/d9af2e55: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/d9af2e55
ulimit_filelock_unlimited/d9af2e55: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/d9af2e55/stage
ulimit_filelock_unlimited/d9af2e55: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/d9af2e55/ulimit_filelock_unlimited_build.sh
ulimit_cputime_unlimited/4eeff868: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/4eeff868
ulimit_cputime_unlimited/4eeff868: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/4eeff868/stage
ulimit_cputime_unlimited/4eeff868: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/4eeff868/ulimit_cputime_unlimited_build.sh
ulimit_stacksize_unlimited/3c2f8532: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/3c2f8532
ulimit_stacksize_unlimited/3c2f8532: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/3c2f8532/stage
ulimit_stacksize_unlimited/3c2f8532: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/3c2f8532/ulimit_stacksize_unlimited_build.sh
ulimit_vmsize_unlimited/a41f7b3f: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/a41f7b3f
ulimit_vmsize_unlimited/a41f7b3f: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/a41f7b3f/stage
ulimit_vmsize_unlimited/a41f7b3f: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/a41f7b3f/ulimit_vmsize_unlimited_build.sh
ulimit_filedescriptor_4096/c13b2a8c: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/c13b2a8c
ulimit_filedescriptor_4096/c13b2a8c: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/c13b2a8c/stage
ulimit_filedescriptor_4096/c13b2a8c: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/c13b2a8c/ulimit_filedescriptor_4096_build.sh
ulimit_max_user_process_2048/9b1e4b87: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/9b1e4b87
ulimit_max_user_process_2048/9b1e4b87: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/9b1e4b87/stage
ulimit_max_user_process_2048/9b1e4b87: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/9b1e4b87/ulimit_max_user_process_2048_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
ulimit_stacksize_unlimited/3c2f8532 does not have any dependencies adding test to queue
root_disk_usage/17429aed does not have any dependencies adding test to queue
kernel_swapusage/db2a2dfc does not have any dependencies adding test to queue
variables_bash/700f6432 does not have any dependencies adding test to queue
ulimit_cputime_unlimited/4eeff868 does not have any dependencies adding test to queue
ulimit_vmsize_unlimited/a41f7b3f does not have any dependencies adding test to queue
ulimit_max_user_process_2048/9b1e4b87 does not have any dependencies adding test to queue
systemd_default_target/5dc23a0e does not have any dependencies adding test to queue
ulimit_filedescriptor_4096/c13b2a8c does not have any dependencies adding test to queue
ulimit_filelock_unlimited/d9af2e55 does not have any dependencies adding test to queue
ulimit_stacksize_unlimited/3c2f8532: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_stacksize_unlimited_build.sh
ulimit_stacksize_unlimited/3c2f8532: Test completed in 0.005582 seconds
ulimit_stacksize_unlimited/3c2f8532: Test completed with returncode: 0
ulimit_stacksize_unlimited/3c2f8532: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/3c2f8532/ulimit_stacksize_unlimited.out
ulimit_stacksize_unlimited/3c2f8532: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/3c2f8532/ulimit_stacksize_unlimited.err
ulimit_stacksize_unlimited/3c2f8532: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/3c2f8532/ulimit_stacksize_unlimited.out
ulimit_stacksize_unlimited/3c2f8532: Regular Expression Match - Failed!
ulimit_filelock_unlimited/d9af2e55: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_filelock_unlimited_build.sh
ulimit_filelock_unlimited/d9af2e55: Test completed in 0.005348 seconds
ulimit_filelock_unlimited/d9af2e55: Test completed with returncode: 0
ulimit_filelock_unlimited/d9af2e55: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/d9af2e55/ulimit_filelock_unlimited.out
ulimit_filelock_unlimited/d9af2e55: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/d9af2e55/ulimit_filelock_unlimited.err
ulimit_filelock_unlimited/d9af2e55: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/d9af2e55/ulimit_filelock_unlimited.out
ulimit_filelock_unlimited/d9af2e55: Regular Expression Match - Success!
kernel_swapusage/db2a2dfc: Running Test via command: bash --norc --noprofile -eo pipefail kernel_swapusage_build.sh
kernel_swapusage/db2a2dfc: Test completed in 0.006114 seconds
kernel_swapusage/db2a2dfc: Test completed with returncode: 255
kernel_swapusage/db2a2dfc: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/db2a2dfc/kernel_swapusage.out
kernel_swapusage/db2a2dfc: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/db2a2dfc/kernel_swapusage.err
variables_bash/700f6432: Running Test via command: bash --norc --noprofile -eo pipefail variables_bash_build.sh
variables_bash/700f6432: Test completed in 0.008652 seconds
variables_bash/700f6432: Test completed with returncode: 0
variables_bash/700f6432: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/700f6432/variables_bash.out
variables_bash/700f6432: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/700f6432/variables_bash.err
ulimit_cputime_unlimited/4eeff868: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_cputime_unlimited_build.sh
ulimit_cputime_unlimited/4eeff868: Test completed in 0.005312 seconds
ulimit_cputime_unlimited/4eeff868: Test completed with returncode: 0
ulimit_cputime_unlimited/4eeff868: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/4eeff868/ulimit_cputime_unlimited.out
ulimit_cputime_unlimited/4eeff868: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/4eeff868/ulimit_cputime_unlimited.err
ulimit_cputime_unlimited/4eeff868: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/4eeff868/ulimit_cputime_unlimited.out
ulimit_cputime_unlimited/4eeff868: Regular Expression Match - Success!
ulimit_vmsize_unlimited/a41f7b3f: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_vmsize_unlimited_build.sh
ulimit_vmsize_unlimited/a41f7b3f: Test completed in 0.005267 seconds
ulimit_vmsize_unlimited/a41f7b3f: Test completed with returncode: 0
ulimit_vmsize_unlimited/a41f7b3f: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/a41f7b3f/ulimit_vmsize_unlimited.out
ulimit_vmsize_unlimited/a41f7b3f: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/a41f7b3f/ulimit_vmsize_unlimited.err
ulimit_vmsize_unlimited/a41f7b3f: performing regular expression - '^unlimited$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/a41f7b3f/ulimit_vmsize_unlimited.out
ulimit_vmsize_unlimited/a41f7b3f: Regular Expression Match - Success!
ulimit_max_user_process_2048/9b1e4b87: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_max_user_process_2048_build.sh
ulimit_max_user_process_2048/9b1e4b87: Test completed in 0.005374 seconds
ulimit_max_user_process_2048/9b1e4b87: Test completed with returncode: 0
ulimit_max_user_process_2048/9b1e4b87: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/9b1e4b87/ulimit_max_user_process_2048.out
ulimit_max_user_process_2048/9b1e4b87: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/9b1e4b87/ulimit_max_user_process_2048.err
ulimit_max_user_process_2048/9b1e4b87: performing regular expression - '^2048$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/9b1e4b87/ulimit_max_user_process_2048.out
ulimit_max_user_process_2048/9b1e4b87: Regular Expression Match - Failed!
systemd_default_target/5dc23a0e: Running Test via command: bash --norc --noprofile -eo pipefail systemd_default_target_build.sh
systemd_default_target/5dc23a0e: Test completed in 0.008085 seconds
systemd_default_target/5dc23a0e: Test completed with returncode: 1
systemd_default_target/5dc23a0e: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/5dc23a0e/systemd_default_target.out
systemd_default_target/5dc23a0e: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/5dc23a0e/systemd_default_target.err
ulimit_filedescriptor_4096/c13b2a8c: Running Test via command: bash --norc --noprofile -eo pipefail ulimit_filedescriptor_4096_build.sh
ulimit_filedescriptor_4096/c13b2a8c: Test completed in 0.005466 seconds
ulimit_filedescriptor_4096/c13b2a8c: Test completed with returncode: 0
ulimit_filedescriptor_4096/c13b2a8c: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/c13b2a8c/ulimit_filedescriptor_4096.out
ulimit_filedescriptor_4096/c13b2a8c: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/c13b2a8c/ulimit_filedescriptor_4096.err
ulimit_filedescriptor_4096/c13b2a8c: performing regular expression - '^4096$' on file: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/c13b2a8c/ulimit_filedescriptor_4096.out
ulimit_filedescriptor_4096/c13b2a8c: Regular Expression Match - Failed!
root_disk_usage/17429aed: Running Test via command: bash --norc --noprofile -eo pipefail root_disk_usage_build.sh
root_disk_usage/17429aed: Test completed in 0.009216 seconds
root_disk_usage/17429aed: Test completed with returncode: 0
root_disk_usage/17429aed: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/17429aed/root_disk_usage.out
root_disk_usage/17429aed: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/17429aed/root_disk_usage.err
In this iteration we are going to run the following tests: [ulimit_stacksize_unlimited/3c2f8532, ulimit_filelock_unlimited/d9af2e55, kernel_swapusage/db2a2dfc, variables_bash/700f6432, ulimit_cputime_unlimited/4eeff868, ulimit_vmsize_unlimited/a41f7b3f, ulimit_max_user_process_2048/9b1e4b87, systemd_default_target/5dc23a0e, ulimit_filedescriptor_4096/c13b2a8c, root_disk_usage/17429aed]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ ulimit_stack │ generic.loc… │ FAIL   │ False False   │ 0          │ 0.005582 │
│ size_unlimit │              │        │ False         │            │          │
│ ed/3c2f8532  │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_filel │ generic.loc… │ PASS   │ False True    │ 0          │ 0.005348 │
│ ock_unlimite │              │        │ False         │            │          │
│ d/d9af2e55   │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_cputi │ generic.loc… │ PASS   │ False True    │ 0          │ 0.005312 │
│ me_unlimited │              │        │ False         │            │          │
│ /4eeff868    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ systemd_defa │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.008085 │
│ ult_target/5 │              │        │               │            │          │
│ dc23a0e      │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ kernel_swapu │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 255        │ 0.006114 │
│ sage/db2a2df │              │        │               │            │          │
│ c            │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_vmsiz │ generic.loc… │ PASS   │ False True    │ 0          │ 0.005267 │
│ e_unlimited/ │              │        │ False         │            │          │
│ a41f7b3f     │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_filed │ generic.loc… │ FAIL   │ False False   │ 0          │ 0.005466 │
│ escriptor_40 │              │        │ False         │            │          │
│ 96/c13b2a8c  │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ ulimit_max_u │ generic.loc… │ FAIL   │ False False   │ 0          │ 0.005374 │
│ ser_process_ │              │        │ False         │            │          │
│ 2048/9b1e4b8 │              │        │               │            │          │
│ 7            │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ variables_ba │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.008652 │
│ sh/700f6432  │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ root_disk_us │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.009216 │
│ age/17429aed │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 5/10 Percentage: 50.000%
Failed Tests: 5/10 Percentage: 50.000%


Adding 10 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_gbj2h_k9.log

Excluding Buildspecs

So far we learned how to build buildspecs by file and directory path using the -b option. Next, we will discuss how one may exclude buildspecs which behaves similar to -b option. You can exclude buildspecs via --exclude or short option -x which can be useful when you want to exclude certain files or sub directory.

For example we can build all buildspecs in tutorials but exclude file tutorials/vars.yml by running:

$ buildtest build -b tutorials -x tutorials/vars.yml

buildtest will discover all buildspecs and then exclude any buildspecs specified by -x option. You can specify -x multiple times just like -b option.

For example, we can undo discovery by passing same option to -b and -x as follows

buildtest bd -b tutorials/ -x tutorials/
$ buildtest bd -b tutorials/ -x tutorials/
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:14                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
There are no Buildspec files to process.

Buildtest will stop immediately if there are no Buildspecs to process, this is true if you were to specify files instead of directory.

In this example, we build all buildspecs in a directory but exclude a file. Buildtest will report the excluded buildspecs in the output and -x option can be appended multiple times. The -x can be a file or a directory and behaves similar to -b option.

buildtest bd -b general_tests/configuration/ -x general_tests/configuration/ulimits.yml
$ buildtest bd -b general_tests/configuration/ -x general_tests/configuration/ulimits.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:14                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                              Excluded buildspecs                               
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/g… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  4
Total Excluded Buildspecs:  1
Detected Buildspecs after exclusion:  3
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 3 buildspecs
Valid Buildspecs: 3
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/systemd-default-target.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/kernel_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/general_tests/configuration/disk_usage.yml: VALID
Total builder objects created: 3
Total compiler builder: 0
Total script builder: 3
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ systemd_d… │ generic.l… │ None     │ None  │ None  │ check if   │ /home/doc… │
│            │            │          │       │       │ default    │            │
│            │            │          │       │       │ target is  │            │
│            │            │          │       │       │ multi-use… │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ kernel_sw… │ generic.l… │ None     │ None  │ None  │ Retrieve   │ /home/doc… │
│            │            │          │       │       │ Kernel     │            │
│            │            │          │       │       │ Swap Usage │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ root_disk… │ generic.l… │ None     │ None  │ None  │ Check root │ /home/doc… │
│            │            │          │       │       │ disk usage │            │
│            │            │          │       │       │ and report │            │
│            │            │          │       │       │ if it      │            │
│            │            │          │       │       │ exceeds    │            │
│            │            │          │       │       │ threshold  │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
systemd_default_target/f850fb09: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/f850fb09
systemd_default_target/f850fb09: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/f850fb09/stage
systemd_default_target/f850fb09: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/f850fb09/systemd_default_target_build.sh
kernel_swapusage/84591bb0: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/84591bb0
kernel_swapusage/84591bb0: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/84591bb0/stage
kernel_swapusage/84591bb0: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/84591bb0/kernel_swapusage_build.sh
root_disk_usage/afbd8a1c: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/afbd8a1c
root_disk_usage/afbd8a1c: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/afbd8a1c/stage
root_disk_usage/afbd8a1c: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/afbd8a1c/root_disk_usage_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
systemd_default_target/f850fb09 does not have any dependencies adding test to queue
kernel_swapusage/84591bb0 does not have any dependencies adding test to queue
root_disk_usage/afbd8a1c does not have any dependencies adding test to queue
systemd_default_target/f850fb09: Running Test via command: bash --norc --noprofile -eo pipefail systemd_default_target_build.sh
systemd_default_target/f850fb09: Test completed in 0.008091 seconds
systemd_default_target/f850fb09: Test completed with returncode: 1
systemd_default_target/f850fb09: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/f850fb09/systemd_default_target.out
systemd_default_target/f850fb09: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/f850fb09/systemd_default_target.err
kernel_swapusage/84591bb0: Running Test via command: bash --norc --noprofile -eo pipefail kernel_swapusage_build.sh
kernel_swapusage/84591bb0: Test completed in 0.006163 seconds
kernel_swapusage/84591bb0: Test completed with returncode: 255
kernel_swapusage/84591bb0: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/84591bb0/kernel_swapusage.out
kernel_swapusage/84591bb0: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/kernel_state/kernel_swapusage/84591bb0/kernel_swapusage.err
root_disk_usage/afbd8a1c: Running Test via command: bash --norc --noprofile -eo pipefail root_disk_usage_build.sh
root_disk_usage/afbd8a1c: Test completed in 0.008884 seconds
root_disk_usage/afbd8a1c: Test completed with returncode: 0
root_disk_usage/afbd8a1c: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/afbd8a1c/root_disk_usage.out
root_disk_usage/afbd8a1c: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/disk_usage/root_disk_usage/afbd8a1c/root_disk_usage.err
In this iteration we are going to run the following tests: [systemd_default_target/f850fb09, kernel_swapusage/84591bb0, root_disk_usage/afbd8a1c]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ kernel_swapu │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 255        │ 0.006163 │
│ sage/84591bb │              │        │               │            │          │
│ 0            │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ root_disk_us │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.008884 │
│ age/afbd8a1c │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ systemd_defa │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.008091 │
│ ult_target/f │              │        │               │            │          │
│ 850fb09      │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/3 Percentage: 33.333%
Failed Tests: 2/3 Percentage: 66.667%


Adding 3 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_134huf6r.log

Building By Tags

buildtest can perform builds by tags by using --tags or short option (-t). In order to use this feature, buildtest must load buildspecs in cache which can be run via buildtest buildspec find. If you are unsure of the available tags you can run buildtest buildspec find --tags or let buildtest tab-complete the available tags. For more details see Querying buildspec tags.

Let’s assume you want to build by tag name network, buildtest will attempt to find all tests that contain tags: ['network'] in the buildspec which is loaded in the buildcache cache. If a test matches the tag name, the test will be picked up during the discover process.

buildtest build -t network
$ buildtest build -t network
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:15                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                           Buildspecs By Tag=network                            
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/tags_example.yml: VALID
Total builder objects created: 2
Total compiler builder: 0
Total script builder: 2
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ string_ta… │ generic.l… │ None     │ None  │ None  │ tags can   │ /home/doc… │
│            │            │          │       │       │ be a       │            │
│            │            │          │       │       │ string     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ list_of_s… │ generic.l… │ None     │ None  │ None  │ tags can   │ /home/doc… │
│            │            │          │       │       │ be a list  │            │
│            │            │          │       │       │ of strings │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
string_tag/f08d3627: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/f08d3627
string_tag/f08d3627: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/f08d3627/stage
string_tag/f08d3627: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/f08d3627/string_tag_build.sh
list_of_strings_tags/1e3128e9: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1e3128e9
list_of_strings_tags/1e3128e9: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1e3128e9/stage
list_of_strings_tags/1e3128e9: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1e3128e9/list_of_strings_tags_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
list_of_strings_tags/1e3128e9 does not have any dependencies adding test to queue
string_tag/f08d3627 does not have any dependencies adding test to queue
list_of_strings_tags/1e3128e9: Running Test via command: bash --norc --noprofile -eo pipefail list_of_strings_tags_build.sh
list_of_strings_tags/1e3128e9: Test completed in 3.03063 seconds
list_of_strings_tags/1e3128e9: Test completed with returncode: 0
list_of_strings_tags/1e3128e9: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1e3128e9/list_of_strings_tags.out
list_of_strings_tags/1e3128e9: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1e3128e9/list_of_strings_tags.err
string_tag/f08d3627: Running Test via command: bash --norc --noprofile -eo pipefail string_tag_build.sh
string_tag/f08d3627: Test completed in 0.006472 seconds
string_tag/f08d3627: Test completed with returncode: 0
string_tag/f08d3627: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/f08d3627/string_tag.out
string_tag/f08d3627: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/f08d3627/string_tag.err
In this iteration we are going to run the following tests: [list_of_strings_tags/1e3128e9, string_tag/f08d3627]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ list_of_stri │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 3.03063  │
│ ngs_tags/1e3 │              │        │               │            │          │
│ 128e9        │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ string_tag/f │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.006472 │
│ 08d3627      │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Adding 2 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_n9_zv3vr.log

You can build by multiple tags by specifying --tags multiple times. In next example we build all tests with tag name pass and python.

buildtest build -t python -t pass
$ buildtest build -t python -t pass
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:18                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                            Buildspecs By Tag=python                            
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                             Buildspecs By Tag=pass                             
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  3
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  3
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 3 buildspecs
Valid Buildspecs: 3
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: VALID
Total builder objects created: 6
Total compiler builder: 0
Total script builder: 6
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ python_he… │ generic.l… │ None     │ None  │ None  │ Hello      │ /home/doc… │
│            │            │          │       │       │ World      │            │
│            │            │          │       │       │ python     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ circle_ar… │ generic.l… │ None     │ None  │ None  │ Calculate  │ /home/doc… │
│            │            │          │       │       │ circle of  │            │
│            │            │          │       │       │ area given │            │
│            │            │          │       │       │ a radius   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_fai… │ generic.l… │ None     │ None  │ None  │ exit 1 by  │ /home/doc… │
│            │            │          │       │       │ default is │            │
│            │            │          │       │       │ FAIL       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_pas… │ generic.l… │ None     │ None  │ None  │ report     │ /home/doc… │
│            │            │          │       │       │ exit 1 as  │            │
│            │            │          │       │       │ PASS       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 2     │ /home/doc… │
│            │            │          │       │       │ failed     │            │
│            │            │          │       │       │ since it   │            │
│            │            │          │       │       │ failed to  │            │
│            │            │          │       │       │ match      │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 128   │ /home/doc… │
│            │            │          │       │       │ matches    │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 128        │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
python_hello/3d1021c8: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/3d1021c8
python_hello/3d1021c8: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/3d1021c8/stage
python_hello/3d1021c8: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/3d1021c8/python_hello_build.sh
circle_area/d254ee0d: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/d254ee0d
circle_area/d254ee0d: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/d254ee0d/stage
circle_area/d254ee0d: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/d254ee0d/circle_area_build.sh
exit1_fail/e4507dea: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/e4507dea
exit1_fail/e4507dea: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/e4507dea/stage
exit1_fail/e4507dea: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/e4507dea/exit1_fail_build.sh
exit1_pass/08622f69: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/08622f69
exit1_pass/08622f69: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/08622f69/stage
exit1_pass/08622f69: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/08622f69/exit1_pass_build.sh
returncode_list_mismatch/57867acf: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/57867acf
returncode_list_mismatch/57867acf: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/57867acf/stage
returncode_list_mismatch/57867acf: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/57867acf/returncode_list_mismatch_build.sh
returncode_int_match/2d9f9759: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/2d9f9759
returncode_int_match/2d9f9759: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/2d9f9759/stage
returncode_int_match/2d9f9759: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/2d9f9759/returncode_int_match_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
returncode_list_mismatch/57867acf does not have any dependencies adding test to queue
exit1_pass/08622f69 does not have any dependencies adding test to queue
returncode_int_match/2d9f9759 does not have any dependencies adding test to queue
python_hello/3d1021c8 does not have any dependencies adding test to queue
circle_area/d254ee0d does not have any dependencies adding test to queue
exit1_fail/e4507dea does not have any dependencies adding test to queue
returncode_list_mismatch/57867acf: Running Test via command: bash --norc --noprofile -eo pipefail returncode_list_mismatch_build.sh
returncode_list_mismatch/57867acf: Test completed in 0.00592 seconds
returncode_list_mismatch/57867acf: Test completed with returncode: 2
returncode_list_mismatch/57867acf: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/57867acf/returncode_list_mismatch.out
returncode_list_mismatch/57867acf: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/57867acf/returncode_list_mismatch.err
returncode_list_mismatch/57867acf: Checking returncode - 2 is matched in list [1, 3]
exit1_pass/08622f69: Running Test via command: bash --norc --noprofile -eo pipefail exit1_pass_build.sh
exit1_pass/08622f69: Test completed in 0.005546 seconds
exit1_pass/08622f69: Test completed with returncode: 1
exit1_pass/08622f69: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/08622f69/exit1_pass.out
exit1_pass/08622f69: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/08622f69/exit1_pass.err
exit1_pass/08622f69: Checking returncode - 1 is matched in list [1]
returncode_int_match/2d9f9759: Running Test via command: bash --norc --noprofile -eo pipefail returncode_int_match_build.sh
returncode_int_match/2d9f9759: Test completed in 0.005542 seconds
returncode_int_match/2d9f9759: Test completed with returncode: 128
returncode_int_match/2d9f9759: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/2d9f9759/returncode_int_match.out
returncode_int_match/2d9f9759: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/2d9f9759/returncode_int_match.err
returncode_int_match/2d9f9759: Checking returncode - 128 is matched in list [128]
python_hello/3d1021c8: Running Test via command: bash --norc --noprofile -eo pipefail python_hello_build.sh
python_hello/3d1021c8: Test completed in 0.031389 seconds
python_hello/3d1021c8: Test completed with returncode: 0
python_hello/3d1021c8: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/3d1021c8/python_hello.out
python_hello/3d1021c8: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/3d1021c8/python_hello.err
circle_area/d254ee0d: Running Test via command: bash --norc --noprofile -eo pipefail circle_area_build.sh
circle_area/d254ee0d: Test completed in 0.032133 seconds
circle_area/d254ee0d: Test completed with returncode: 0
circle_area/d254ee0d: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/d254ee0d/circle_area.out
circle_area/d254ee0d: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/d254ee0d/circle_area.err
exit1_fail/e4507dea: Running Test via command: bash --norc --noprofile -eo pipefail exit1_fail_build.sh
exit1_fail/e4507dea: Test completed in 0.005704 seconds
exit1_fail/e4507dea: Test completed with returncode: 1
exit1_fail/e4507dea: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/e4507dea/exit1_fail.out
exit1_fail/e4507dea: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/e4507dea/exit1_fail.err
In this iteration we are going to run the following tests: [returncode_list_mismatch/57867acf, exit1_pass/08622f69, returncode_int_match/2d9f9759, python_hello/3d1021c8, circle_area/d254ee0d, exit1_fail/e4507dea]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ exit1_pass/0 │ generic.loc… │ PASS   │ True False    │ 1          │ 0.005546 │
│ 8622f69      │              │        │ False         │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_l │ generic.loc… │ FAIL   │ False False   │ 2          │ 0.00592  │
│ ist_mismatch │              │        │ False         │            │          │
│ /57867acf    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ exit1_fail/e │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.005704 │
│ 4507dea      │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ python_hello │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.031389 │
│ /3d1021c8    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ circle_area/ │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.032133 │
│ d254ee0d     │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_i │ generic.loc… │ PASS   │ True False    │ 128        │ 0.005542 │
│ nt_match/2d9 │              │        │ False         │            │          │
│ f9759        │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 4/6 Percentage: 66.667%
Failed Tests: 2/6 Percentage: 33.333%


Adding 6 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_q711db92.log

When multiple tags are specified, we search each tag independently and if it’s found in the buildspec cache we retrieve the buildspec file and add file to queue. This queue is a list of buildspecs that buildtest will process (i.e parse, build, run). You can query tags from buildspecs cache to see all available tags by running buildtest buildspec find --tags.

Note

The --tags is used for discovering buildspec file and not filtering tests by tag.

You can combine --tags with --buildspec to discover buildspecs in a single command. buildtest will query tags and buildspecs independently and combine all discovered buildspecs together.

buildtest build --tags pass --buildspec tutorials/python-hello.yml
$ buildtest build --tags pass --buildspec tutorials/python-hello.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:19                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                             Buildspecs By Tag=pass                             
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  2
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 2 buildspecs
Valid Buildspecs: 2
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: VALID
Total builder objects created: 5
Total compiler builder: 0
Total script builder: 5
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ exit1_fai… │ generic.l… │ None     │ None  │ None  │ exit 1 by  │ /home/doc… │
│            │            │          │       │       │ default is │            │
│            │            │          │       │       │ FAIL       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_pas… │ generic.l… │ None     │ None  │ None  │ report     │ /home/doc… │
│            │            │          │       │       │ exit 1 as  │            │
│            │            │          │       │       │ PASS       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 2     │ /home/doc… │
│            │            │          │       │       │ failed     │            │
│            │            │          │       │       │ since it   │            │
│            │            │          │       │       │ failed to  │            │
│            │            │          │       │       │ match      │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 128   │ /home/doc… │
│            │            │          │       │       │ matches    │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 128        │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ python_he… │ generic.l… │ None     │ None  │ None  │ Hello      │ /home/doc… │
│            │            │          │       │       │ World      │            │
│            │            │          │       │       │ python     │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
exit1_fail/1363d878: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/1363d878
exit1_fail/1363d878: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/1363d878/stage
exit1_fail/1363d878: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/1363d878/exit1_fail_build.sh
exit1_pass/2521f4c5: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2521f4c5
exit1_pass/2521f4c5: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2521f4c5/stage
exit1_pass/2521f4c5: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2521f4c5/exit1_pass_build.sh
returncode_list_mismatch/e7dbbec4: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/e7dbbec4
returncode_list_mismatch/e7dbbec4: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/e7dbbec4/stage
returncode_list_mismatch/e7dbbec4: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/e7dbbec4/returncode_list_mismatch_build.sh
returncode_int_match/51796847: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/51796847
returncode_int_match/51796847: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/51796847/stage
returncode_int_match/51796847: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/51796847/returncode_int_match_build.sh
python_hello/459d9fbd: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/459d9fbd
python_hello/459d9fbd: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/459d9fbd/stage
python_hello/459d9fbd: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/459d9fbd/python_hello_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
exit1_fail/1363d878 does not have any dependencies adding test to queue
returncode_list_mismatch/e7dbbec4 does not have any dependencies adding test to queue
exit1_pass/2521f4c5 does not have any dependencies adding test to queue
returncode_int_match/51796847 does not have any dependencies adding test to queue
python_hello/459d9fbd does not have any dependencies adding test to queue
exit1_fail/1363d878: Running Test via command: bash --norc --noprofile -eo pipefail exit1_fail_build.sh
exit1_fail/1363d878: Test completed in 0.005773 seconds
exit1_fail/1363d878: Test completed with returncode: 1
exit1_fail/1363d878: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/1363d878/exit1_fail.out
exit1_fail/1363d878: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/1363d878/exit1_fail.err
returncode_list_mismatch/e7dbbec4: Running Test via command: bash --norc --noprofile -eo pipefail returncode_list_mismatch_build.sh
returncode_list_mismatch/e7dbbec4: Test completed in 0.005462 seconds
returncode_list_mismatch/e7dbbec4: Test completed with returncode: 2
returncode_list_mismatch/e7dbbec4: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/e7dbbec4/returncode_list_mismatch.out
returncode_list_mismatch/e7dbbec4: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/e7dbbec4/returncode_list_mismatch.err
returncode_list_mismatch/e7dbbec4: Checking returncode - 2 is matched in list [1, 3]
exit1_pass/2521f4c5: Running Test via command: bash --norc --noprofile -eo pipefail exit1_pass_build.sh
exit1_pass/2521f4c5: Test completed in 0.005201 seconds
exit1_pass/2521f4c5: Test completed with returncode: 1
exit1_pass/2521f4c5: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2521f4c5/exit1_pass.out
exit1_pass/2521f4c5: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2521f4c5/exit1_pass.err
exit1_pass/2521f4c5: Checking returncode - 1 is matched in list [1]
returncode_int_match/51796847: Running Test via command: bash --norc --noprofile -eo pipefail returncode_int_match_build.sh
returncode_int_match/51796847: Test completed in 0.005424 seconds
returncode_int_match/51796847: Test completed with returncode: 128
returncode_int_match/51796847: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/51796847/returncode_int_match.out
returncode_int_match/51796847: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/51796847/returncode_int_match.err
returncode_int_match/51796847: Checking returncode - 128 is matched in list [128]
python_hello/459d9fbd: Running Test via command: bash --norc --noprofile -eo pipefail python_hello_build.sh
python_hello/459d9fbd: Test completed in 0.03053 seconds
python_hello/459d9fbd: Test completed with returncode: 0
python_hello/459d9fbd: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/459d9fbd/python_hello.out
python_hello/459d9fbd: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/459d9fbd/python_hello.err
In this iteration we are going to run the following tests: [exit1_fail/1363d878, returncode_list_mismatch/e7dbbec4, exit1_pass/2521f4c5, returncode_int_match/51796847, python_hello/459d9fbd]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ exit1_pass/2 │ generic.loc… │ PASS   │ True False    │ 1          │ 0.005201 │
│ 521f4c5      │              │        │ False         │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_i │ generic.loc… │ PASS   │ True False    │ 128        │ 0.005424 │
│ nt_match/517 │              │        │ False         │            │          │
│ 96847        │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ python_hello │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.03053  │
│ /459d9fbd    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ exit1_fail/1 │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.005773 │
│ 363d878      │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_l │ generic.loc… │ FAIL   │ False False   │ 2          │ 0.005462 │
│ ist_mismatch │              │        │ False         │            │          │
│ /e7dbbec4    │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 3/5 Percentage: 60.000%
Failed Tests: 2/5 Percentage: 40.000%


Adding 5 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_po_0458m.log

As you may see, there are several ways to build buildspecs with buildtest. Tags is great way to build a whole collection of tests if you don’t know path to all the files. You can specify multiple tags per buildspecs to classify how test can be run.

Building by Executors

Every buildspec is associated to an executor which is responsible for running the test. You can instruct buildtest to run all tests by given executor via --executor option or short option -e. For instance, if you want to build all test associated to executor generic.local.csh you can run:

$ buildtest build --executor generic.local.csh

buildtest will query buildspec cache for the executor name and retrieve a list of buildspecs with matching executor name. To see a list of available executors in buildspec cache see querying buildspec executor.

Note

By default all tests are run in buildspec file. The buildtest build --executor option discovers buildspecs if one of the test matches the executor name. The --executor option is not filtering tests but only discovering buildspecs.

In this example we run all tests that are associated to generic.local.csh executor.

buildtest build --executor generic.local.csh
$ buildtest build --executor generic.local.csh
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:20                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                    Buildspecs by Executor=generic.local.csh                    
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspecs                                                                   ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  2
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 2 buildspecs
Valid Buildspecs: 2
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/environment.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/csh_shell_examples.yml: VALID
Total builder objects created: 4
Total compiler builder: 0
Total script builder: 4
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ bash_env_… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ environme… │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in default │            │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ (bash)     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ csh_env_d… │ generic.l… │ None     │ None  │ None  │ csh shell  │ /home/doc… │
│            │            │          │       │       │ example to │            │
│            │            │          │       │       │ declare    │            │
│            │            │          │       │       │ environme… │            │
│            │            │          │       │       │ variables  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ tcsh_env_… │ generic.l… │ None     │ None  │ None  │ tcsh shell │ /home/doc… │
│            │            │          │       │       │ example to │            │
│            │            │          │       │       │ declare    │            │
│            │            │          │       │       │ environme… │            │
│            │            │          │       │       │ variables  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ csh_shell… │ generic.l… │ None     │ None  │ None  │ csh shell  │ /home/doc… │
│            │            │          │       │       │ example    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
bash_env_variables/7a00b7b7: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/7a00b7b7
bash_env_variables/7a00b7b7: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/7a00b7b7/stage
bash_env_variables/7a00b7b7: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/7a00b7b7/bash_env_variables_build.sh
csh_env_declaration/d890ef90: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/d890ef90
csh_env_declaration/d890ef90: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/d890ef90/stage
csh_env_declaration/d890ef90: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/d890ef90/csh_env_declaration_build.sh
tcsh_env_declaration/a16152c7: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/a16152c7
tcsh_env_declaration/a16152c7: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/a16152c7/stage
tcsh_env_declaration/a16152c7: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/a16152c7/tcsh_env_declaration_build.sh
csh_shell/1d34f5a0: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/1d34f5a0
csh_shell/1d34f5a0: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/1d34f5a0/stage
csh_shell/1d34f5a0: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/1d34f5a0/csh_shell_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
csh_shell/1d34f5a0 does not have any dependencies adding test to queue
csh_env_declaration/d890ef90 does not have any dependencies adding test to queue
bash_env_variables/7a00b7b7 does not have any dependencies adding test to queue
tcsh_env_declaration/a16152c7 does not have any dependencies adding test to queue
csh_shell/1d34f5a0: Running Test via command: csh -e csh_shell_build.sh
csh_shell/1d34f5a0: Test completed in 4.54715 seconds
csh_shell/1d34f5a0: Test completed with returncode: 0
csh_shell/1d34f5a0: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/1d34f5a0/csh_shell.out
csh_shell/1d34f5a0: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/1d34f5a0/csh_shell.err
csh_env_declaration/d890ef90: Running Test via command: csh -e csh_env_declaration_build.sh
csh_env_declaration/d890ef90: Test completed in 4.463243 seconds
csh_env_declaration/d890ef90: Test completed with returncode: 0
csh_env_declaration/d890ef90: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/d890ef90/csh_env_declaration.out
csh_env_declaration/d890ef90: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/d890ef90/csh_env_declaration.err
bash_env_variables/7a00b7b7: Running Test via command: bash --norc --noprofile -eo pipefail bash_env_variables_build.sh
bash_env_variables/7a00b7b7: Test completed in 0.007644 seconds
bash_env_variables/7a00b7b7: Test completed with returncode: 0
bash_env_variables/7a00b7b7: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/7a00b7b7/bash_env_variables.out
bash_env_variables/7a00b7b7: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/7a00b7b7/bash_env_variables.err
tcsh_env_declaration/a16152c7: Running Test via command: csh -e tcsh_env_declaration_build.sh
tcsh_env_declaration/a16152c7: Test completed in 2.226141 seconds
tcsh_env_declaration/a16152c7: Test completed with returncode: 1
tcsh_env_declaration/a16152c7: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/a16152c7/tcsh_env_declaration.out
tcsh_env_declaration/a16152c7: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/a16152c7/tcsh_env_declaration.err
In this iteration we are going to run the following tests: [csh_shell/1d34f5a0, csh_env_declaration/d890ef90, bash_env_variables/7a00b7b7, tcsh_env_declaration/a16152c7]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ tcsh_env_dec │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 2.226141 │
│ laration/a16 │              │        │               │            │          │
│ 152c7        │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ bash_env_var │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.007644 │
│ iables/7a00b │              │        │               │            │          │
│ 7b7          │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ csh_env_decl │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 4.463243 │
│ aration/d890 │              │        │               │            │          │
│ ef90         │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ csh_shell/1d │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 4.54715  │
│ 34f5a0       │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 3/4 Percentage: 75.000%
Failed Tests: 1/4 Percentage: 25.000%


Adding 4 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_t2tgrc0w.log

Note

The --executor option can be appended to discover tests by multiple executors.

Filtering Buildspecs

buildtest has support for filtering buildspecs based on certain attributes defined in buildspec file. Upon Discover Buildspecs, buildtest will filter out tests or entire buildspec files. The buildtest build --filter option can be used to filter buildspecs which expects a single key=value pair. Currently, buildtest can filter tests based on tags, type and maintainers.

To see all available filter fields you can run buildtest build --helpfilter and buildtest will report the fields followed by description.

buildtest build --helpfilter
$ buildtest build --helpfilter
                 Buildtest Filters                  
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Field       ┃ Description                        ┃
┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ tags        │ Filter tests by 'tag' field        │
│ type        │ Filter test by 'type' field        │
│ maintainers │ Filter test by 'maintainers' field │
└─────────────┴────────────────────────────────────┘

In this example, we will discover all buildspecs based on tagname pass and then filter each test by tagname pass specified by --filter tags=pass.

buildtest build -t pass --filter tags=pass
$ buildtest build -t pass --filter tags=pass
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:32                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                             Buildspecs By Tag=pass                             
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
[exit1_fail][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml]: test is skipped because it is not in tag filter list: {'tags': 'pass'}
[returncode_list_mismatch][/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml]: test is skipped because it is not in tag filter list: {'tags': 'pass'}
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: VALID
Total builder objects created: 2
Total compiler builder: 0
Total script builder: 2
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ exit1_pas… │ generic.l… │ None     │ None  │ None  │ report     │ /home/doc… │
│            │            │          │       │       │ exit 1 as  │            │
│            │            │          │       │       │ PASS       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 128   │ /home/doc… │
│            │            │          │       │       │ matches    │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 128        │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
exit1_pass/b846043e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/b846043e
exit1_pass/b846043e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/b846043e/stage
exit1_pass/b846043e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/b846043e/exit1_pass_build.sh
returncode_int_match/a3696a6d: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/a3696a6d
returncode_int_match/a3696a6d: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/a3696a6d/stage
returncode_int_match/a3696a6d: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/a3696a6d/returncode_int_match_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
returncode_int_match/a3696a6d does not have any dependencies adding test to queue
exit1_pass/b846043e does not have any dependencies adding test to queue
exit1_pass/b846043e: Running Test via command: bash --norc --noprofile -eo pipefail exit1_pass_build.sh
exit1_pass/b846043e: Test completed in 0.00551 seconds
exit1_pass/b846043e: Test completed with returncode: 1
exit1_pass/b846043e: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/b846043e/exit1_pass.out
exit1_pass/b846043e: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/b846043e/exit1_pass.err
exit1_pass/b846043e: Checking returncode - 1 is matched in list [1]
returncode_int_match/a3696a6d: Running Test via command: bash --norc --noprofile -eo pipefail returncode_int_match_build.sh
returncode_int_match/a3696a6d: Test completed in 0.005694 seconds
returncode_int_match/a3696a6d: Test completed with returncode: 128
returncode_int_match/a3696a6d: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/a3696a6d/returncode_int_match.out
returncode_int_match/a3696a6d: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/a3696a6d/returncode_int_match.err
returncode_int_match/a3696a6d: Checking returncode - 128 is matched in list [128]
In this iteration we are going to run the following tests: [exit1_pass/b846043e, returncode_int_match/a3696a6d]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ exit1_pass/b │ generic.loc… │ PASS   │ True False    │ 1          │ 0.00551  │
│ 846043e      │              │        │ False         │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_i │ generic.loc… │ PASS   │ True False    │ 128        │ 0.005694 │
│ nt_match/a36 │              │        │ False         │            │          │
│ 96a6d        │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Adding 2 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_rtng4s8q.log

buildtest can run filter tests by maintainers, this can be useful if you want to run tests that you are maintainer. The maintainers field is set per buildspec and not each test. You can filter maintiners via --filter maintainers=<MAINTAINER_NAME>. If the maintainers field is not specified the buildspec will be filtered out if --filter maintainers is specified. In this next example, we will build all tests for maintainer @shahzebsiddiqui.

buildtest build -b tutorials --filter maintainers=@shahzebsiddiqui
$ buildtest build -b tutorials --filter maintainers=@shahzebsiddiqui
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:33                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  33
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  33
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 33 buildspecs
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/gcc_version.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/status_regex.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/environment.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/metrics_regex.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/burstbuffer_datawarp_executors.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/sleep.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/summary_example.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executor_scheduler.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executors_var_env_declaration.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/tags_example.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executor_regex_script.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex3.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_tests.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/explicit_state.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/add_numbers.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/runtime_status_test.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_executor.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex4.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex1.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_buildspec.yml: skipping all test since 'skip' is defined
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/maintainers_example.yml: unable to find maintainer: @shahzebsiddiqui in buildspec which contains the following maintainers: ['@johndoe', '@bobsmith'] therefore we skip this test
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/status_by_executors.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/shell_examples.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/shebang.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex2.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: skipping test because 'maintainers' field is not specified in buildspec.
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/csh_shell_examples.yml: skipping test because 'maintainers' field is not specified in buildspec.
Valid Buildspecs: 31
Invalid Buildspecs: 2
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/gcc_version.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/status_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/environment.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/metrics_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/hello_world.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/burstbuffer_datawarp_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/sleep.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/summary_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executor_scheduler.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executors_var_env_declaration.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/tags_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executor_regex_script.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex3.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_tests.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/explicit_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/add_numbers.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/runtime_status_test.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_executor.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex4.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex1.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_buildspec.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/maintainers_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/status_by_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/shebang.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex2.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/csh_shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_tags.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_buildspec_section.yml: INVALID
                            Buildspecs Filtered out                             
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ buildspecs                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
└──────────────────────────────────────────────────────────────────────────────┘
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ hello_wor… │ generic.l… │ None     │ None  │ None  │ hello      │ /home/doc… │
│            │            │          │       │       │ world      │            │
│            │            │          │       │       │ example    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
hello_world/3d839af1: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/3d839af1
hello_world/3d839af1: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/3d839af1/stage
hello_world/3d839af1: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/3d839af1/hello_world_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
hello_world/3d839af1 does not have any dependencies adding test to queue
hello_world/3d839af1: Running Test via command: bash --norc --noprofile -eo pipefail hello_world_build.sh
hello_world/3d839af1: Test completed in 0.005995 seconds
hello_world/3d839af1: Test completed with returncode: 0
hello_world/3d839af1: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/3d839af1/hello_world.out
hello_world/3d839af1: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/3d839af1/hello_world.err
In this iteration we are going to run the following tests: [hello_world/3d839af1]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ hello_world/ │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.005995 │
│ 3d839af1     │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_l10vk594.log

Please see Query Maintainers (buildtest buildspec maintainers) on list of maintainers and breakdown of buildspecs by maintainers.

We can also filter tests by type field in the buildspec which corresponds to the schema type. In this next example, we filter all tests by script schema type by passing option --filter type=script. We inform buildtest to stop after build stage (--stage=build) for more details see Configure Build Stages.

buildtest build -b tutorials --filter type=script --stage=build
$ buildtest build -b tutorials --filter type=script --stage=build
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:34                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  33
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  33
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 33 buildspecs
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_buildspec.yml: skipping all test since 'skip' is defined
skip: skipping test due to 'skip' property.
Valid Buildspecs: 31
Invalid Buildspecs: 2
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/environment.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/metrics_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/summary_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executor_scheduler.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/shebang.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/runtime_status_test.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executors_var_env_declaration.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/burstbuffer_datawarp_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex1.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_buildspec.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/explicit_state.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex2.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_executor.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex4.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/gcc_version.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/hello_world.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/csh_shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/add_numbers.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/skip_tests.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/status_by_executors.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/shell_examples.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/sleep.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/job_dependency/ex3.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/tags_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/multi_executors/executor_regex_script.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/maintainers_example.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/status_regex.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_buildspec_section.yml: INVALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_tags.yml: INVALID
                            Buildspecs Filtered out                             
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ buildspecs                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
└──────────────────────────────────────────────────────────────────────────────┘
Total builder objects created: 62
Total compiler builder: 0
Total script builder: 62
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ bash_env_… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ environme… │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in default │            │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ (bash)     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ csh_env_d… │ generic.l… │ None     │ None  │ None  │ csh shell  │ /home/doc… │
│            │            │          │       │       │ example to │            │
│            │            │          │       │       │ declare    │            │
│            │            │          │       │       │ environme… │            │
│            │            │          │       │       │ variables  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ tcsh_env_… │ generic.l… │ None     │ None  │ None  │ tcsh shell │ /home/doc… │
│            │            │          │       │       │ example to │            │
│            │            │          │       │       │ declare    │            │
│            │            │          │       │       │ environme… │            │
│            │            │          │       │       │ variables  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ metric_re… │ generic.l… │ None     │ None  │ None  │ capture    │ /home/doc… │
│            │            │          │       │       │ result     │            │
│            │            │          │       │       │ metric     │            │
│            │            │          │       │       │ from       │            │
│            │            │          │       │       │ output     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ summary_e… │ generic.l… │ None     │ None  │ None  │ The        │ /home/doc… │
│            │            │          │       │       │ summary    │            │
│            │            │          │       │       │ field can  │            │
│            │            │          │       │       │ be a       │            │
│            │            │          │       │       │ multi-line │            │
│            │            │          │       │       │ string and │            │
│            │            │          │       │       │ exceed 80  │            │
│            │            │          │       │       │ char       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ executors… │ generic.l… │ None     │ None  │ None  │ Declaring  │ /home/doc… │
│            │            │          │       │       │ env and    │            │
│            │            │          │       │       │ vars by    │            │
│            │            │          │       │       │ executors  │            │
│            │            │          │       │       │ section    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ executors… │ generic.l… │ None     │ None  │ None  │ Declaring  │ /home/doc… │
│            │            │          │       │       │ env and    │            │
│            │            │          │       │       │ vars by    │            │
│            │            │          │       │       │ executors  │            │
│            │            │          │       │       │ section    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ bash_logi… │ generic.l… │ None     │ None  │ None  │ customize  │ /home/doc… │
│            │            │          │       │       │ shebang    │            │
│            │            │          │       │       │ line with  │            │
│            │            │          │       │       │ bash login │            │
│            │            │          │       │       │ shell      │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ bash_nonl… │ generic.l… │ None     │ None  │ None  │ customize  │ /home/doc… │
│            │            │          │       │       │ shebang    │            │
│            │            │          │       │       │ line with  │            │
│            │            │          │       │       │ default    │            │
│            │            │          │       │       │ bash       │            │
│            │            │          │       │       │ (nonlogin) │            │
│            │            │          │       │       │ shell      │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ timelimit… │ generic.l… │ None     │ None  │ None  │ Run a      │ /home/doc… │
│            │            │          │       │       │ sleep job  │            │
│            │            │          │       │       │ for 2      │            │
│            │            │          │       │       │ seconds    │            │
│            │            │          │       │       │ and test   │            │
│            │            │          │       │       │ pass if    │            │
│            │            │          │       │       │ its within │            │
│            │            │          │       │       │ 1.0-3.0sec │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ timelimit… │ generic.l… │ None     │ None  │ None  │ Run a      │ /home/doc… │
│            │            │          │       │       │ sleep job  │            │
│            │            │          │       │       │ for 2      │            │
│            │            │          │       │       │ seconds    │            │
│            │            │          │       │       │ and test   │            │
│            │            │          │       │       │ pass if    │            │
│            │            │          │       │       │ its        │            │
│            │            │          │       │       │ exceeds    │            │
│            │            │          │       │       │ min time   │            │
│            │            │          │       │       │ of 1.0 sec │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ timelimit… │ generic.l… │ None     │ None  │ None  │ Run a      │ /home/doc… │
│            │            │          │       │       │ sleep job  │            │
│            │            │          │       │       │ for 2      │            │
│            │            │          │       │       │ seconds    │            │
│            │            │          │       │       │ and test   │            │
│            │            │          │       │       │ pass if    │            │
│            │            │          │       │       │ it's       │            │
│            │            │          │       │       │ within max │            │
│            │            │          │       │       │ time: 5.0  │            │
│            │            │          │       │       │ sec        │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ timelimit… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ fails      │            │
│            │            │          │       │       │ because it │            │
│            │            │          │       │       │ runs less  │            │
│            │            │          │       │       │ than       │            │
│            │            │          │       │       │ mintime of │            │
│            │            │          │       │       │ 10 second  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ timelimit… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ fails      │            │
│            │            │          │       │       │ because it │            │
│            │            │          │       │       │ exceeds    │            │
│            │            │          │       │       │ maxtime of │            │
│            │            │          │       │       │ 1.0 second │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ executors… │ generic.l… │ None     │ None  │ None  │ Declaring  │ /home/doc… │
│            │            │          │       │       │ env and    │            │
│            │            │          │       │       │ vars by    │            │
│            │            │          │       │       │ executors  │            │
│            │            │          │       │       │ section    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ executors… │ generic.l… │ None     │ None  │ None  │ Declaring  │ /home/doc… │
│            │            │          │       │       │ env and    │            │
│            │            │          │       │       │ vars by    │            │
│            │            │          │       │       │ executors  │            │
│            │            │          │       │       │ section    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ create_bu… │ generic.l… │ None     │ None  │ None  │ Create a   │ /home/doc… │
│            │            │          │       │       │ burst      │            │
│            │            │          │       │       │ buffer for │            │
│            │            │          │       │       │ multiple   │            │
│            │            │          │       │       │ executors  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ create_bu… │ generic.l… │ None     │ None  │ None  │ Create a   │ /home/doc… │
│            │            │          │       │       │ burst      │            │
│            │            │          │       │       │ buffer for │            │
│            │            │          │       │       │ multiple   │            │
│            │            │          │       │       │ executors  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ jobA/35ee… │ generic.l… │ None     │ None  │ None  │ no job     │ /home/doc… │
│            │            │          │       │       │ dependency │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ jobB/1022… │ generic.l… │ None     │ None  │ None  │ job        │ /home/doc… │
│            │            │          │       │       │ dependency │            │
│            │            │          │       │       │ on jobA    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ jobC/194b… │ generic.l… │ None     │ None  │ None  │ job        │ /home/doc… │
│            │            │          │       │       │ dependency │            │
│            │            │          │       │       │ on jobA    │            │
│            │            │          │       │       │ and jobB   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ always_pa… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will       │            │
│            │            │          │       │       │ always     │            │
│            │            │          │       │       │ 'PASS'     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ always_fa… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will       │            │
│            │            │          │       │       │ always     │            │
│            │            │          │       │       │ 'FAIL'     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ test_fail… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will       │            │
│            │            │          │       │       │ 'FAIL'     │            │
│            │            │          │       │       │ even if we │            │
│            │            │          │       │       │ have       │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ match      │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ test_pass… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will       │            │
│            │            │          │       │       │ 'PASS'     │            │
│            │            │          │       │       │ even if we │            │
│            │            │          │       │       │ have       │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ mismatch   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ test1/8a7… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will pass  │            │
│            │            │          │       │       │ with exit  │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ test2/6a5… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will run   │            │
│            │            │          │       │       │ if test1   │            │
│            │            │          │       │       │ has        │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ test3/ef3… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will run   │            │
│            │            │          │       │       │ if test1   │            │
│            │            │          │       │       │ has        │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1 and      │            │
│            │            │          │       │       │ test2 has  │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 2          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ runtime_t… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will sleep │            │
│            │            │          │       │       │ 5 second   │            │
│            │            │          │       │       │ but will   │            │
│            │            │          │       │       │ fail due   │            │
│            │            │          │       │       │ to runtime │            │
│            │            │          │       │       │ 2sec       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ runtime_t… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will run   │            │
│            │            │          │       │       │ when       │            │
│            │            │          │       │       │ runtime_t… │            │
│            │            │          │       │       │ is PASS    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ runtime_t… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will run   │            │
│            │            │          │       │       │ when       │            │
│            │            │          │       │       │ runtime_t… │            │
│            │            │          │       │       │ is FAIL    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ gcc_versi… │ generic.l… │ None     │ None  │ None  │ Print gcc  │ /home/doc… │
│            │            │          │       │       │ version    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_fai… │ generic.l… │ None     │ None  │ None  │ exit 1 by  │ /home/doc… │
│            │            │          │       │       │ default is │            │
│            │            │          │       │       │ FAIL       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_pas… │ generic.l… │ None     │ None  │ None  │ report     │ /home/doc… │
│            │            │          │       │       │ exit 1 as  │            │
│            │            │          │       │       │ PASS       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 2     │ /home/doc… │
│            │            │          │       │       │ failed     │            │
│            │            │          │       │       │ since it   │            │
│            │            │          │       │       │ failed to  │            │
│            │            │          │       │       │ match      │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 128   │ /home/doc… │
│            │            │          │       │       │ matches    │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 128        │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ hello_wor… │ generic.l… │ None     │ None  │ None  │ hello      │ /home/doc… │
│            │            │          │       │       │ world      │            │
│            │            │          │       │       │ example    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ csh_shell… │ generic.l… │ None     │ None  │ None  │ csh shell  │ /home/doc… │
│            │            │          │       │       │ example    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ add_numbe… │ generic.l… │ None     │ None  │ None  │ Add X+Y    │ /home/doc… │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ unskipped… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ is not     │            │
│            │            │          │       │       │ skipped    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ status_re… │ generic.l… │ None     │ None  │ None  │ define     │ /home/doc… │
│            │            │          │       │       │ status per │            │
│            │            │          │       │       │ executor   │            │
│            │            │          │       │       │ type.      │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ status_re… │ generic.l… │ None     │ None  │ None  │ define     │ /home/doc… │
│            │            │          │       │       │ status per │            │
│            │            │          │       │       │ executor   │            │
│            │            │          │       │       │ type.      │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ _bin_sh_s… │ generic.l… │ None     │ None  │ None  │ /bin/sh    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ example    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ _bin_bash… │ generic.l… │ None     │ None  │ None  │ /bin/bash  │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ example    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ bash_shel… │ generic.l… │ None     │ None  │ None  │ bash shell │ /home/doc… │
│            │            │          │       │       │ example    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ sh_shell/… │ generic.l… │ None     │ None  │ None  │ sh shell   │ /home/doc… │
│            │            │          │       │       │ example    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ shell_opt… │ generic.l… │ None     │ None  │ None  │ shell      │ /home/doc… │
│            │            │          │       │       │ options    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ circle_ar… │ generic.l… │ None     │ None  │ None  │ Calculate  │ /home/doc… │
│            │            │          │       │       │ circle of  │            │
│            │            │          │       │       │ area given │            │
│            │            │          │       │       │ a radius   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ sleep/4bf… │ generic.l… │ None     │ None  │ None  │ sleep 2    │ /home/doc… │
│            │            │          │       │       │ seconds    │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ pass_test… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will       │            │
│            │            │          │       │       │ always     │            │
│            │            │          │       │       │ pass       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ fail_test… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will run   │            │
│            │            │          │       │       │ if test    │            │
│            │            │          │       │       │ 'pass_tes… │            │
│            │            │          │       │       │ is in      │            │
│            │            │          │       │       │ state      │            │
│            │            │          │       │       │ 'PASS'     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ pass_and_… │ generic.l… │ None     │ None  │ None  │ This test  │ /home/doc… │
│            │            │          │       │       │ will run   │            │
│            │            │          │       │       │ if         │            │
│            │            │          │       │       │ pass_test  │            │
│            │            │          │       │       │ is 'PASS'  │            │
│            │            │          │       │       │ and        │            │
│            │            │          │       │       │ fail_test  │            │
│            │            │          │       │       │ is 'FAIL'  │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ final_tes… │ generic.l… │ None     │ None  │ None  │ Test will  │ /home/doc… │
│            │            │          │       │       │ run after  │            │
│            │            │          │       │       │ 'pass_tes… │            │
│            │            │          │       │       │ 'fail_tes… │            │
│            │            │          │       │       │ and        │            │
│            │            │          │       │       │ 'pass_and… │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ string_ta… │ generic.l… │ None     │ None  │ None  │ tags can   │ /home/doc… │
│            │            │          │       │       │ be a       │            │
│            │            │          │       │       │ string     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ list_of_s… │ generic.l… │ None     │ None  │ None  │ tags can   │ /home/doc… │
│            │            │          │       │       │ be a list  │            │
│            │            │          │       │       │ of strings │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ multiple_… │ generic.l… │ None     │ None  │ None  │ run test   │ /home/doc… │
│            │            │          │       │       │ with       │            │
│            │            │          │       │       │ executor   │            │
│            │            │          │       │       │ generic.l… │            │
│            │            │          │       │       │ and        │            │
│            │            │          │       │       │ generic.l… │            │
│            │            │          │       │       │ executor   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ multiple_… │ generic.l… │ None     │ None  │ None  │ run test   │ /home/doc… │
│            │            │          │       │       │ with       │            │
│            │            │          │       │       │ executor   │            │
│            │            │          │       │       │ generic.l… │            │
│            │            │          │       │       │ and        │            │
│            │            │          │       │       │ generic.l… │            │
│            │            │          │       │       │ executor   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ foo_bar/4… │ generic.l… │ None     │ None  │ None  │ prints     │ /home/doc… │
│            │            │          │       │       │ variable   │            │
│            │            │          │       │       │ $FOO       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ status_re… │ generic.l… │ None     │ None  │ None  │ Pass test  │ /home/doc… │
│            │            │          │       │       │ based on   │            │
│            │            │          │       │       │ regular    │            │
│            │            │          │       │       │ expression │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ status_re… │ generic.l… │ None     │ None  │ None  │ Pass test  │ /home/doc… │
│            │            │          │       │       │ based on   │            │
│            │            │          │       │       │ regular    │            │
│            │            │          │       │       │ expression │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ python_he… │ generic.l… │ None     │ None  │ None  │ Hello      │ /home/doc… │
│            │            │          │       │       │ World      │            │
│            │            │          │       │       │ python     │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
bash_env_variables/cc07cbeb: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/cc07cbeb
bash_env_variables/cc07cbeb: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/cc07cbeb/stage
bash_env_variables/cc07cbeb: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/environment/bash_env_variables/cc07cbeb/bash_env_variables_build.sh
csh_env_declaration/c7d94ffc: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/c7d94ffc
csh_env_declaration/c7d94ffc: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/c7d94ffc/stage
csh_env_declaration/c7d94ffc: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/csh_env_declaration/c7d94ffc/csh_env_declaration_build.sh
tcsh_env_declaration/4a61916b: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/4a61916b
tcsh_env_declaration/4a61916b: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/4a61916b/stage
tcsh_env_declaration/4a61916b: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/environment/tcsh_env_declaration/4a61916b/tcsh_env_declaration_build.sh
metric_regex_example/a9023d1e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/metrics_regex/metric_regex_example/a9023d1e
metric_regex_example/a9023d1e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/metrics_regex/metric_regex_example/a9023d1e/stage
metric_regex_example/a9023d1e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/metrics_regex/metric_regex_example/a9023d1e/metric_regex_example_build.sh
summary_example/e9084a2b: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/summary_example/summary_example/e9084a2b
summary_example/e9084a2b: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/summary_example/summary_example/e9084a2b/stage
summary_example/e9084a2b: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/summary_example/summary_example/e9084a2b/summary_example_build.sh
executors_sbatch_declaration/01da0446: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/01da0446
executors_sbatch_declaration/01da0446: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/01da0446/stage
executors_sbatch_declaration/01da0446: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/01da0446/executors_sbatch_declaration_build.sh
executors_sbatch_declaration/7d9885fe: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/7d9885fe
executors_sbatch_declaration/7d9885fe: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/7d9885fe/stage
executors_sbatch_declaration/7d9885fe: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/7d9885fe/executors_sbatch_declaration_build.sh
bash_login_shebang/be6b1f90: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shebang/bash_login_shebang/be6b1f90
bash_login_shebang/be6b1f90: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shebang/bash_login_shebang/be6b1f90/stage
bash_login_shebang/be6b1f90: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shebang/bash_login_shebang/be6b1f90/bash_login_shebang_build.sh
bash_nonlogin_shebang/19353ef1: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shebang/bash_nonlogin_shebang/19353ef1
bash_nonlogin_shebang/19353ef1: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shebang/bash_nonlogin_shebang/19353ef1/stage
bash_nonlogin_shebang/19353ef1: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shebang/bash_nonlogin_shebang/19353ef1/bash_nonlogin_shebang_build.sh
timelimit_min_max/e27d4642: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min_max/e27d4642
timelimit_min_max/e27d4642: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min_max/e27d4642/stage
timelimit_min_max/e27d4642: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min_max/e27d4642/timelimit_min_max_build.sh
timelimit_min/26651ab0: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min/26651ab0
timelimit_min/26651ab0: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min/26651ab0/stage
timelimit_min/26651ab0: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min/26651ab0/timelimit_min_build.sh
timelimit_max/5aba3336: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_max/5aba3336
timelimit_max/5aba3336: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_max/5aba3336/stage
timelimit_max/5aba3336: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_max/5aba3336/timelimit_max_build.sh
timelimit_min_fail/4111d3a4: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min_fail/4111d3a4
timelimit_min_fail/4111d3a4: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min_fail/4111d3a4/stage
timelimit_min_fail/4111d3a4: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_min_fail/4111d3a4/timelimit_min_fail_build.sh
timelimit_max_fail/cad99116: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_max_fail/cad99116
timelimit_max_fail/cad99116: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_max_fail/cad99116/stage
timelimit_max_fail/cad99116: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/runtime_status_test/timelimit_max_fail/cad99116/timelimit_max_fail_build.sh
executors_vars_env_declaration/ffa1fc6a: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/ffa1fc6a
executors_vars_env_declaration/ffa1fc6a: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/ffa1fc6a/stage
executors_vars_env_declaration/ffa1fc6a: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/ffa1fc6a/executors_vars_env_declaration_build.sh
executors_vars_env_declaration/61bd9abc: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/61bd9abc
executors_vars_env_declaration/61bd9abc: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/61bd9abc/stage
executors_vars_env_declaration/61bd9abc: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/61bd9abc/executors_vars_env_declaration_build.sh
create_burst_buffer_executors/afadf99f: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/burstbuffer_datawarp_executors/create_burst_buffer_executors/afadf99f
create_burst_buffer_executors/afadf99f: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/burstbuffer_datawarp_executors/create_burst_buffer_executors/afadf99f/stage
create_burst_buffer_executors/afadf99f: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/burstbuffer_datawarp_executors/create_burst_buffer_executors/afadf99f/create_burst_buffer_executors_build.sh
create_burst_buffer_executors/3f52684f: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/burstbuffer_datawarp_executors/create_burst_buffer_executors/3f52684f
create_burst_buffer_executors/3f52684f: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/burstbuffer_datawarp_executors/create_burst_buffer_executors/3f52684f/stage
create_burst_buffer_executors/3f52684f: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/burstbuffer_datawarp_executors/create_burst_buffer_executors/3f52684f/create_burst_buffer_executors_build.sh
jobA/35ee14ee: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobA/35ee14ee
jobA/35ee14ee: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobA/35ee14ee/stage
jobA/35ee14ee: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobA/35ee14ee/jobA_build.sh
jobB/10226f5e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobB/10226f5e
jobB/10226f5e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobB/10226f5e/stage
jobB/10226f5e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobB/10226f5e/jobB_build.sh
jobC/194b6472: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobC/194b6472
jobC/194b6472: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobC/194b6472/stage
jobC/194b6472: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex1/jobC/194b6472/jobC_build.sh
always_pass/5b1eec8d: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/always_pass/5b1eec8d
always_pass/5b1eec8d: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/always_pass/5b1eec8d/stage
always_pass/5b1eec8d: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/always_pass/5b1eec8d/always_pass_build.sh
always_fail/dd7d7d34: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/always_fail/dd7d7d34
always_fail/dd7d7d34: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/always_fail/dd7d7d34/stage
always_fail/dd7d7d34: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/always_fail/dd7d7d34/always_fail_build.sh
test_fail_returncode_match/19404aba: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/test_fail_returncode_match/19404aba
test_fail_returncode_match/19404aba: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/test_fail_returncode_match/19404aba/stage
test_fail_returncode_match/19404aba: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/test_fail_returncode_match/19404aba/test_fail_returncode_match_build.sh
test_pass_returncode_mismatch/acff064c: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/test_pass_returncode_mismatch/acff064c
test_pass_returncode_mismatch/acff064c: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/test_pass_returncode_mismatch/acff064c/stage
test_pass_returncode_mismatch/acff064c: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/explicit_state/test_pass_returncode_mismatch/acff064c/test_pass_returncode_mismatch_build.sh
test1/8a75cea0: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test1/8a75cea0
test1/8a75cea0: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test1/8a75cea0/stage
test1/8a75cea0: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test1/8a75cea0/test1_build.sh
test2/6a59aee8: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test2/6a59aee8
test2/6a59aee8: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test2/6a59aee8/stage
test2/6a59aee8: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test2/6a59aee8/test2_build.sh
test3/ef358a90: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test3/ef358a90
test3/ef358a90: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test3/ef358a90/stage
test3/ef358a90: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex2/test3/ef358a90/test3_build.sh
variables_bash/0f5fb515: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/0f5fb515
variables_bash/0f5fb515: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/0f5fb515/stage
variables_bash/0f5fb515: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/0f5fb515/variables_bash_build.sh
runtime_test/eea31d5e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test/eea31d5e
runtime_test/eea31d5e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test/eea31d5e/stage
runtime_test/eea31d5e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test/eea31d5e/runtime_test_build.sh
runtime_test_pass/1f81732b: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test_pass/1f81732b
runtime_test_pass/1f81732b: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test_pass/1f81732b/stage
runtime_test_pass/1f81732b: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test_pass/1f81732b/runtime_test_pass_build.sh
runtime_test_fail/633baa86: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test_fail/633baa86
runtime_test_fail/633baa86: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test_fail/633baa86/stage
runtime_test_fail/633baa86: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex4/runtime_test_fail/633baa86/runtime_test_fail_build.sh
gcc_version/b8638b39: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/gcc_version/gcc_version/b8638b39
gcc_version/b8638b39: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/gcc_version/gcc_version/b8638b39/stage
gcc_version/b8638b39: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/gcc_version/gcc_version/b8638b39/gcc_version_build.sh
exit1_fail/4a939aac: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/4a939aac
exit1_fail/4a939aac: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/4a939aac/stage
exit1_fail/4a939aac: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/4a939aac/exit1_fail_build.sh
exit1_pass/fc847603: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/fc847603
exit1_pass/fc847603: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/fc847603/stage
exit1_pass/fc847603: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/fc847603/exit1_pass_build.sh
returncode_list_mismatch/b35da057: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b35da057
returncode_list_mismatch/b35da057: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b35da057/stage
returncode_list_mismatch/b35da057: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b35da057/returncode_list_mismatch_build.sh
returncode_int_match/231ca6e3: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/231ca6e3
returncode_int_match/231ca6e3: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/231ca6e3/stage
returncode_int_match/231ca6e3: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/231ca6e3/returncode_int_match_build.sh
hello_world/5d660851: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/5d660851
hello_world/5d660851: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/5d660851/stage
hello_world/5d660851: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/hello_world/hello_world/5d660851/hello_world_build.sh
csh_shell/de3b0bcc: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/de3b0bcc
csh_shell/de3b0bcc: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/de3b0bcc/stage
csh_shell/de3b0bcc: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.csh/csh_shell_examples/csh_shell/de3b0bcc/csh_shell_build.sh
add_numbers/b402f0d9: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/add_numbers/add_numbers/b402f0d9
add_numbers/b402f0d9: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/add_numbers/add_numbers/b402f0d9/stage
add_numbers/b402f0d9: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/add_numbers/add_numbers/b402f0d9/add_numbers_build.sh
unskipped/21670d93: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/skip_tests/unskipped/21670d93
unskipped/21670d93: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/skip_tests/unskipped/21670d93/stage
unskipped/21670d93: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/skip_tests/unskipped/21670d93/unskipped_build.sh
status_returncode_by_executors/5dc24b3e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/5dc24b3e
status_returncode_by_executors/5dc24b3e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/5dc24b3e/stage
status_returncode_by_executors/5dc24b3e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/5dc24b3e/status_returncode_by_executors_build.sh
status_returncode_by_executors/865363c7: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/865363c7
status_returncode_by_executors/865363c7: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/865363c7/stage
status_returncode_by_executors/865363c7: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/865363c7/status_returncode_by_executors_build.sh
_bin_sh_shell/c81185aa: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/_bin_sh_shell/c81185aa
_bin_sh_shell/c81185aa: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/_bin_sh_shell/c81185aa/stage
_bin_sh_shell/c81185aa: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/_bin_sh_shell/c81185aa/_bin_sh_shell_build.sh
_bin_bash_shell/c61af4cb: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shell_examples/_bin_bash_shell/c61af4cb
_bin_bash_shell/c61af4cb: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shell_examples/_bin_bash_shell/c61af4cb/stage
_bin_bash_shell/c61af4cb: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shell_examples/_bin_bash_shell/c61af4cb/_bin_bash_shell_build.sh
bash_shell/54c1ec53: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shell_examples/bash_shell/54c1ec53
bash_shell/54c1ec53: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shell_examples/bash_shell/54c1ec53/stage
bash_shell/54c1ec53: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/shell_examples/bash_shell/54c1ec53/bash_shell_build.sh
sh_shell/d3515654: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/sh_shell/d3515654
sh_shell/d3515654: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/sh_shell/d3515654/stage
sh_shell/d3515654: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/sh_shell/d3515654/sh_shell_build.sh
shell_options/23b1f84b: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/shell_options/23b1f84b
shell_options/23b1f84b: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/shell_options/23b1f84b/stage
shell_options/23b1f84b: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/shell_examples/shell_options/23b1f84b/shell_options_build.sh
circle_area/f79ac478: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/f79ac478
circle_area/f79ac478: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/f79ac478/stage
circle_area/f79ac478: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/f79ac478/circle_area_build.sh
sleep/4bfc9bf3: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/4bfc9bf3
sleep/4bfc9bf3: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/4bfc9bf3/stage
sleep/4bfc9bf3: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/4bfc9bf3/sleep_build.sh
pass_test/dc718c12: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/pass_test/dc718c12
pass_test/dc718c12: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/pass_test/dc718c12/stage
pass_test/dc718c12: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/pass_test/dc718c12/pass_test_build.sh
fail_test/16f2bc06: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/fail_test/16f2bc06
fail_test/16f2bc06: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/fail_test/16f2bc06/stage
fail_test/16f2bc06: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/fail_test/16f2bc06/fail_test_build.sh
pass_and_fail_test/e9df5cfb: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/pass_and_fail_test/e9df5cfb
pass_and_fail_test/e9df5cfb: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/pass_and_fail_test/e9df5cfb/stage
pass_and_fail_test/e9df5cfb: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/pass_and_fail_test/e9df5cfb/pass_and_fail_test_build.sh
final_test/dfb93ad2: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/final_test/dfb93ad2
final_test/dfb93ad2: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/final_test/dfb93ad2/stage
final_test/dfb93ad2: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/ex3/final_test/dfb93ad2/final_test_build.sh
string_tag/5b8a43db: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/5b8a43db
string_tag/5b8a43db: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/5b8a43db/stage
string_tag/5b8a43db: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/string_tag/5b8a43db/string_tag_build.sh
list_of_strings_tags/1c7dbb8d: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1c7dbb8d
list_of_strings_tags/1c7dbb8d: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1c7dbb8d/stage
list_of_strings_tags/1c7dbb8d: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/tags_example/list_of_strings_tags/1c7dbb8d/list_of_strings_tags_build.sh
multiple_executors/91852407: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executor_regex_script/multiple_executors/91852407
multiple_executors/91852407: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executor_regex_script/multiple_executors/91852407/stage
multiple_executors/91852407: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/executor_regex_script/multiple_executors/91852407/multiple_executors_build.sh
multiple_executors/7f412dbc: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executor_regex_script/multiple_executors/7f412dbc
multiple_executors/7f412dbc: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executor_regex_script/multiple_executors/7f412dbc/stage
multiple_executors/7f412dbc: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/executor_regex_script/multiple_executors/7f412dbc/multiple_executors_build.sh
foo_bar/414fa19b: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/maintainers_example/foo_bar/414fa19b
foo_bar/414fa19b: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/maintainers_example/foo_bar/414fa19b/stage
foo_bar/414fa19b: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.sh/maintainers_example/foo_bar/414fa19b/foo_bar_build.sh
status_regex_pass/4095720c: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_regex/status_regex_pass/4095720c
status_regex_pass/4095720c: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_regex/status_regex_pass/4095720c/stage
status_regex_pass/4095720c: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_regex/status_regex_pass/4095720c/status_regex_pass_build.sh
status_regex_fail/f01634d8: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_regex/status_regex_fail/f01634d8
status_regex_fail/f01634d8: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_regex/status_regex_fail/f01634d8/stage
status_regex_fail/f01634d8: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/status_regex/status_regex_fail/f01634d8/status_regex_fail_build.sh
python_hello/ab4fea3c: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/ab4fea3c
python_hello/ab4fea3c: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/ab4fea3c/stage
python_hello/ab4fea3c: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/ab4fea3c/python_hello_build.sh

Filter By Executor Type

In a HPC environment, you may want to run test locally on a login node or perhaps you only want to run batch jobs given a list of buildspecs specified on command line. This can be done in buildtest via option buildtest build –executor-type which takes one of two values local or batch. If you want to filter all tests by local executor you can do buildtest build --executor-type local. buildtest will filter test based on the executor property defined in the buildspec. Let’s assume we want to run all test by python tag on local executor you can do the following:

buildtest build -t python --executor-type local
$ buildtest build -t python --executor-type local
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:35                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                            Buildspecs By Tag=python                            
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  2
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 2 buildspecs
Valid Buildspecs: 2
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: VALID
Total builder objects created: 2
Total compiler builder: 0
Total script builder: 2
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ python_he… │ generic.l… │ None     │ None  │ None  │ Hello      │ /home/doc… │
│            │            │          │       │       │ World      │            │
│            │            │          │       │       │ python     │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ circle_ar… │ generic.l… │ None     │ None  │ None  │ Calculate  │ /home/doc… │
│            │            │          │       │       │ circle of  │            │
│            │            │          │       │       │ area given │            │
│            │            │          │       │       │ a radius   │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
python_hello/f536b1f7: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/f536b1f7
python_hello/f536b1f7: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/f536b1f7/stage
python_hello/f536b1f7: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/f536b1f7/python_hello_build.sh
circle_area/b012b528: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/b012b528
circle_area/b012b528: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/b012b528/stage
circle_area/b012b528: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/b012b528/circle_area_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
python_hello/f536b1f7 does not have any dependencies adding test to queue
circle_area/b012b528 does not have any dependencies adding test to queue
python_hello/f536b1f7: Running Test via command: bash --norc --noprofile -eo pipefail python_hello_build.sh
python_hello/f536b1f7: Test completed in 0.030949 seconds
python_hello/f536b1f7: Test completed with returncode: 0
python_hello/f536b1f7: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/f536b1f7/python_hello.out
python_hello/f536b1f7: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-hello/python_hello/f536b1f7/python_hello.err
circle_area/b012b528: Running Test via command: bash --norc --noprofile -eo pipefail circle_area_build.sh
circle_area/b012b528: Test completed in 0.031372 seconds
circle_area/b012b528: Test completed with returncode: 0
circle_area/b012b528: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/b012b528/circle_area.out
circle_area/b012b528: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/b012b528/circle_area.err
In this iteration we are going to run the following tests: [python_hello/f536b1f7, circle_area/b012b528]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ python_hello │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.030949 │
│ /f536b1f7    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ circle_area/ │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.031372 │
│ b012b528     │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Adding 2 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_v4v6bd7s.log

Now let’s say we want to rerun same command but now only run test that are batch, we can specify --executor-type batch and buildtest will filter tests by executor and find all batch executors. In this case we see that all tests were filtered out and we have no test run.

buildtest build -t python --executor-type batch
$ buildtest build -t python --executor-type batch
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:36                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                            Buildspecs By Tag=python                            
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  2
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 2 buildspecs
circle_area/996e306f is excluded since its not using batch executor
python_hello/0f218ac9 is excluded since its not using batch executor
Valid Buildspecs: 2
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-hello.yml: VALID
                            Buildspecs Filtered out                             
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ buildspecs                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
└──────────────────────────────────────────────────────────────────────────────┘

buildtest is unable to create any tests because there are no valid buildspecs. 

Please see logfile: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/buildtest.log

This option can be particularly useful if want to run a lot of tests and you are not sure which ones will run locally or batch. Let’s say you have all your buildspecs in a directory name tests and you want to run all test that will use local executor and you don’t want to run the batch jobs then you can do the following:

buildtest build -b tests --executor-type local

Discover Buildspecs

Now, let’s discuss how buildtest discovers buildspecs since there are several ways to build buildspecs.

The buildspec search resolution is described as follows:

  • If file or directory specified by -b option doesn’t exist we exit immediately.

  • If buildspec path is a directory, traverse directory recursively to find all .yml extensions

  • If buildspec path is a file, check if file extension is not .yml, exit immediately

  • If user specifies --tags or --executor we search in buildspec cache to discover buildspecs.

Shown below is a diagram on how buildtest discovers buildspecs. The user can build buildspecs by --buildspec, –tags, or –executor which will discover the buildspecs. You can exclude buildspecs using --exclude option which is processed after discovering buildspecs. The excluded buildspecs are removed from list if found and final list of buildspecs is processed.

../_images/DiscoverBuildspecs.jpg

Configure Build Stages

We can control behavior of buildtest build command to stop at certain phase using --stage option. The –stage option accepts parse or build, which will instruct buildtest to stop at parse or build phase of the pipeline.

Buildtest will validate all the buildspecs in the parse stage, so you can instruct buildtest to stop at parse stage via --stage=parse. This can be useful when debugging buildspecs that are invalid. In this example below, we instruct buildtest to stop after parse stage.

buildtest build -b tutorials/vars.yml --stage=parse
$ buildtest build -b tutorials/vars.yml --stage=parse
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:36                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘

Likewise, if you want to troubleshoot your test script without running them you can use --stage=build which will stop after build phase. This can be used when you are writing buildspec to troubleshoot how test is generated. In this next example, we inform buildtest to stop after build stage.

buildtest build -b tutorials/vars.yml --stage=build
$ buildtest build -b tutorials/vars.yml --stage=build
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:37                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
variables_bash/71694ed3: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/71694ed3
variables_bash/71694ed3: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/71694ed3/stage
variables_bash/71694ed3: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/71694ed3/variables_bash_build.sh

Invalid Buildspecs

buildtest will skip any buildspecs that fail to validate, in that case the test script will not be generated. Here is an example where we have an invalid buildspec.

buildtest build -b tutorials/invalid_buildspec_section.yml
$ buildtest build -b tutorials/invalid_buildspec_section.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:37                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 0
Invalid Buildspecs: 1
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_buildspec_section.yml: INVALID

buildtest is unable to create any tests because there are no valid buildspecs. 

Please see logfile: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/buildtest.log

buildtest may skip tests from running if buildspec specifies an invalid executor name since buildtest needs to know this in order to delegate test to Executor class responsible for running the test. Here is an example where test failed to run since we provided invalid executor.

buildtest build -b tutorials/invalid_executor.yml
$ buildtest build -b tutorials/invalid_executor.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:38                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_executor.yml: VALID
                            Buildspecs Filtered out                             
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ buildspecs                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
└──────────────────────────────────────────────────────────────────────────────┘

buildtest is unable to create any tests because there are no valid buildspecs. 

Please see logfile: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/buildtest.log

Rebuild Tests

buildtest can rebuild tests using the --rebuild option which can be useful if you want to test a particular test multiple times. The rebuild option works across all discovered buildspecs and create a new test instance (unique id) and test directory path. To demonstrate we will build tutorials/python-shell.yml three times using --rebuild=3.

buildtest build -b tutorials/python-shell.yml --rebuild=3
$ buildtest build -b tutorials/python-shell.yml --rebuild=3
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:38                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/python-shell.yml: VALID
Total builder objects created: 3
Total compiler builder: 0
Total script builder: 3
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ circle_ar… │ generic.l… │ None     │ None  │ None  │ Calculate  │ /home/doc… │
│            │            │          │       │       │ circle of  │            │
│            │            │          │       │       │ area given │            │
│            │            │          │       │       │ a radius   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ circle_ar… │ generic.l… │ None     │ None  │ None  │ Calculate  │ /home/doc… │
│            │            │          │       │       │ circle of  │            │
│            │            │          │       │       │ area given │            │
│            │            │          │       │       │ a radius   │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ circle_ar… │ generic.l… │ None     │ None  │ None  │ Calculate  │ /home/doc… │
│            │            │          │       │       │ circle of  │            │
│            │            │          │       │       │ area given │            │
│            │            │          │       │       │ a radius   │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
circle_area/7bf41c46: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/7bf41c46
circle_area/7bf41c46: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/7bf41c46/stage
circle_area/7bf41c46: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/7bf41c46/circle_area_build.sh
circle_area/0f32fbf8: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/0f32fbf8
circle_area/0f32fbf8: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/0f32fbf8/stage
circle_area/0f32fbf8: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/0f32fbf8/circle_area_build.sh
circle_area/6a7c4df9: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/6a7c4df9
circle_area/6a7c4df9: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/6a7c4df9/stage
circle_area/6a7c4df9: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/6a7c4df9/circle_area_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
circle_area/7bf41c46 does not have any dependencies adding test to queue
circle_area/0f32fbf8 does not have any dependencies adding test to queue
circle_area/6a7c4df9 does not have any dependencies adding test to queue
circle_area/7bf41c46: Running Test via command: bash --norc --noprofile -eo pipefail circle_area_build.sh
circle_area/7bf41c46: Test completed in 0.031603 seconds
circle_area/7bf41c46: Test completed with returncode: 0
circle_area/7bf41c46: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/7bf41c46/circle_area.out
circle_area/7bf41c46: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/7bf41c46/circle_area.err
circle_area/0f32fbf8: Running Test via command: bash --norc --noprofile -eo pipefail circle_area_build.sh
circle_area/0f32fbf8: Test completed in 0.030979 seconds
circle_area/0f32fbf8: Test completed with returncode: 0
circle_area/0f32fbf8: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/0f32fbf8/circle_area.out
circle_area/0f32fbf8: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/0f32fbf8/circle_area.err
circle_area/6a7c4df9: Running Test via command: bash --norc --noprofile -eo pipefail circle_area_build.sh
circle_area/6a7c4df9: Test completed in 0.031453 seconds
circle_area/6a7c4df9: Test completed with returncode: 0
circle_area/6a7c4df9: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/6a7c4df9/circle_area.out
circle_area/6a7c4df9: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/python-shell/circle_area/6a7c4df9/circle_area.err
In this iteration we are going to run the following tests: [circle_area/7bf41c46, circle_area/0f32fbf8, circle_area/6a7c4df9]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ circle_area/ │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.030979 │
│ 0f32fbf8     │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ circle_area/ │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.031453 │
│ 6a7c4df9     │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ circle_area/ │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.031603 │
│ 7bf41c46     │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 3/3 Percentage: 100.000%
Failed Tests: 0/3 Percentage: 0.000%


Adding 3 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_ntpnaqen.log

The rebuild works with all options including: --buildspec, --exclude, --tags and --executor. buildtest will perform rebuild for all discovered tests, for instance in this next example we will discover all tests by tag name fail and each test is rebuild twice.

buildtest build -t fail --rebuild 2
$ buildtest build -t fail --rebuild 2
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:39                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝
                             Buildspecs By Tag=fail                             
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  2
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 2 buildspecs
Valid Buildspecs: 2
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/test_status/pass_returncode.yml: VALID
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/invalid_executor.yml: VALID
                            Buildspecs Filtered out                             
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ buildspecs                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… │
└──────────────────────────────────────────────────────────────────────────────┘
Total builder objects created: 8
Total compiler builder: 0
Total script builder: 8
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ exit1_fai… │ generic.l… │ None     │ None  │ None  │ exit 1 by  │ /home/doc… │
│            │            │          │       │       │ default is │            │
│            │            │          │       │       │ FAIL       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_pas… │ generic.l… │ None     │ None  │ None  │ report     │ /home/doc… │
│            │            │          │       │       │ exit 1 as  │            │
│            │            │          │       │       │ PASS       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 2     │ /home/doc… │
│            │            │          │       │       │ failed     │            │
│            │            │          │       │       │ since it   │            │
│            │            │          │       │       │ failed to  │            │
│            │            │          │       │       │ match      │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 128   │ /home/doc… │
│            │            │          │       │       │ matches    │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 128        │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_fai… │ generic.l… │ None     │ None  │ None  │ exit 1 by  │ /home/doc… │
│            │            │          │       │       │ default is │            │
│            │            │          │       │       │ FAIL       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ exit1_pas… │ generic.l… │ None     │ None  │ None  │ report     │ /home/doc… │
│            │            │          │       │       │ exit 1 as  │            │
│            │            │          │       │       │ PASS       │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 2     │ /home/doc… │
│            │            │          │       │       │ failed     │            │
│            │            │          │       │       │ since it   │            │
│            │            │          │       │       │ failed to  │            │
│            │            │          │       │       │ match      │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 1          │            │
├────────────┼────────────┼──────────┼───────┼───────┼────────────┼────────────┤
│ returncod… │ generic.l… │ None     │ None  │ None  │ exit 128   │ /home/doc… │
│            │            │          │       │       │ matches    │            │
│            │            │          │       │       │ returncode │            │
│            │            │          │       │       │ 128        │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
exit1_fail/6c9ea14b: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/6c9ea14b
exit1_fail/6c9ea14b: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/6c9ea14b/stage
exit1_fail/6c9ea14b: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/6c9ea14b/exit1_fail_build.sh
exit1_pass/a90cf5be: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/a90cf5be
exit1_pass/a90cf5be: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/a90cf5be/stage
exit1_pass/a90cf5be: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/a90cf5be/exit1_pass_build.sh
returncode_list_mismatch/bf8b0055: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/bf8b0055
returncode_list_mismatch/bf8b0055: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/bf8b0055/stage
returncode_list_mismatch/bf8b0055: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/bf8b0055/returncode_list_mismatch_build.sh
returncode_int_match/122bd0c3: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/122bd0c3
returncode_int_match/122bd0c3: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/122bd0c3/stage
returncode_int_match/122bd0c3: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/122bd0c3/returncode_int_match_build.sh
exit1_fail/40d0e972: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/40d0e972
exit1_fail/40d0e972: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/40d0e972/stage
exit1_fail/40d0e972: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/40d0e972/exit1_fail_build.sh
exit1_pass/2b4c328e: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2b4c328e
exit1_pass/2b4c328e: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2b4c328e/stage
exit1_pass/2b4c328e: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2b4c328e/exit1_pass_build.sh
returncode_list_mismatch/b6f9bdc6: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b6f9bdc6
returncode_list_mismatch/b6f9bdc6: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b6f9bdc6/stage
returncode_list_mismatch/b6f9bdc6: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b6f9bdc6/returncode_list_mismatch_build.sh
returncode_int_match/b524afcc: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/b524afcc
returncode_int_match/b524afcc: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/b524afcc/stage
returncode_int_match/b524afcc: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/b524afcc/returncode_int_match_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
returncode_list_mismatch/b6f9bdc6 does not have any dependencies adding test to queue
exit1_fail/6c9ea14b does not have any dependencies adding test to queue
returncode_list_mismatch/bf8b0055 does not have any dependencies adding test to queue
exit1_pass/a90cf5be does not have any dependencies adding test to queue
exit1_fail/40d0e972 does not have any dependencies adding test to queue
returncode_int_match/b524afcc does not have any dependencies adding test to queue
exit1_pass/2b4c328e does not have any dependencies adding test to queue
returncode_int_match/122bd0c3 does not have any dependencies adding test to queue
returncode_list_mismatch/b6f9bdc6: Running Test via command: bash --norc --noprofile -eo pipefail returncode_list_mismatch_build.sh
returncode_list_mismatch/b6f9bdc6: Test completed in 0.005635 seconds
returncode_list_mismatch/b6f9bdc6: Test completed with returncode: 2
returncode_list_mismatch/b6f9bdc6: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b6f9bdc6/returncode_list_mismatch.out
returncode_list_mismatch/b6f9bdc6: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/b6f9bdc6/returncode_list_mismatch.err
returncode_list_mismatch/b6f9bdc6: Checking returncode - 2 is matched in list [1, 3]
exit1_fail/6c9ea14b: Running Test via command: bash --norc --noprofile -eo pipefail exit1_fail_build.sh
exit1_fail/6c9ea14b: Test completed in 0.005255 seconds
exit1_fail/6c9ea14b: Test completed with returncode: 1
exit1_fail/6c9ea14b: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/6c9ea14b/exit1_fail.out
exit1_fail/6c9ea14b: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/6c9ea14b/exit1_fail.err
returncode_int_match/122bd0c3: Running Test via command: bash --norc --noprofile -eo pipefail returncode_int_match_build.sh
returncode_int_match/122bd0c3: Test completed in 0.005178 seconds
returncode_int_match/122bd0c3: Test completed with returncode: 128
returncode_int_match/122bd0c3: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/122bd0c3/returncode_int_match.out
returncode_int_match/122bd0c3: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/122bd0c3/returncode_int_match.err
returncode_int_match/122bd0c3: Checking returncode - 128 is matched in list [128]
exit1_fail/40d0e972: Running Test via command: bash --norc --noprofile -eo pipefail exit1_fail_build.sh
exit1_fail/40d0e972: Test completed in 0.005114 seconds
exit1_fail/40d0e972: Test completed with returncode: 1
exit1_fail/40d0e972: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/40d0e972/exit1_fail.out
exit1_fail/40d0e972: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_fail/40d0e972/exit1_fail.err
exit1_pass/a90cf5be: Running Test via command: bash --norc --noprofile -eo pipefail exit1_pass_build.sh
exit1_pass/a90cf5be: Test completed in 0.005277 seconds
exit1_pass/a90cf5be: Test completed with returncode: 1
exit1_pass/a90cf5be: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/a90cf5be/exit1_pass.out
exit1_pass/a90cf5be: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/a90cf5be/exit1_pass.err
exit1_pass/a90cf5be: Checking returncode - 1 is matched in list [1]
returncode_int_match/b524afcc: Running Test via command: bash --norc --noprofile -eo pipefail returncode_int_match_build.sh
returncode_int_match/b524afcc: Test completed in 0.005418 seconds
returncode_int_match/b524afcc: Test completed with returncode: 128
returncode_int_match/b524afcc: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/b524afcc/returncode_int_match.out
returncode_int_match/b524afcc: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_int_match/b524afcc/returncode_int_match.err
returncode_int_match/b524afcc: Checking returncode - 128 is matched in list [128]
exit1_pass/2b4c328e: Running Test via command: bash --norc --noprofile -eo pipefail exit1_pass_build.sh
exit1_pass/2b4c328e: Test completed in 0.00537 seconds
exit1_pass/2b4c328e: Test completed with returncode: 1
exit1_pass/2b4c328e: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2b4c328e/exit1_pass.out
exit1_pass/2b4c328e: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/exit1_pass/2b4c328e/exit1_pass.err
exit1_pass/2b4c328e: Checking returncode - 1 is matched in list [1]
returncode_list_mismatch/bf8b0055: Running Test via command: bash --norc --noprofile -eo pipefail returncode_list_mismatch_build.sh
returncode_list_mismatch/bf8b0055: Test completed in 0.005295 seconds
returncode_list_mismatch/bf8b0055: Test completed with returncode: 2
returncode_list_mismatch/bf8b0055: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/bf8b0055/returncode_list_mismatch.out
returncode_list_mismatch/bf8b0055: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/pass_returncode/returncode_list_mismatch/bf8b0055/returncode_list_mismatch.err
returncode_list_mismatch/bf8b0055: Checking returncode - 2 is matched in list [1, 3]
In this iteration we are going to run the following tests: [returncode_list_mismatch/b6f9bdc6, exit1_fail/6c9ea14b, returncode_int_match/122bd0c3, exit1_fail/40d0e972, exit1_pass/a90cf5be, returncode_int_match/b524afcc, exit1_pass/2b4c328e, returncode_list_mismatch/bf8b0055]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ exit1_pass/2 │ generic.loc… │ PASS   │ True False    │ 1          │ 0.00537  │
│ b4c328e      │              │        │ False         │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ exit1_pass/a │ generic.loc… │ PASS   │ True False    │ 1          │ 0.005277 │
│ 90cf5be      │              │        │ False         │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ exit1_fail/6 │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.005255 │
│ c9ea14b      │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ exit1_fail/4 │ generic.loc… │ FAIL   │ N/A N/A N/A   │ 1          │ 0.005114 │
│ 0d0e972      │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_i │ generic.loc… │ PASS   │ True False    │ 128        │ 0.005178 │
│ nt_match/122 │              │        │ False         │            │          │
│ bd0c3        │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_l │ generic.loc… │ FAIL   │ False False   │ 2          │ 0.005295 │
│ ist_mismatch │              │        │ False         │            │          │
│ /bf8b0055    │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_i │ generic.loc… │ PASS   │ True False    │ 128        │ 0.005418 │
│ nt_match/b52 │              │        │ False         │            │          │
│ 4afcc        │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ returncode_l │ generic.loc… │ FAIL   │ False False   │ 2          │ 0.005635 │
│ ist_mismatch │              │        │ False         │            │          │
│ /b6f9bdc6    │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 4/8 Percentage: 50.000%
Failed Tests: 4/8 Percentage: 50.000%


Adding 8 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_na077fv4.log

The rebuild option expects a range between 1-50, the --rebuild=1 is equivalent to running without --rebuild option. We set a max limit for rebuild option to avoid system degredation due to high workload.

If you try to exceed this bound you will get an error such as

buildtest build -b tutorials/test_status/pass_returncode.yml --rebuild 51
$ buildtest build -b tutorials/test_status/pass_returncode.yml --rebuild 51
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/bi │
│ n/buildtest:36 in <module>                                                   │
│                                                                              │
│   33                                                                         │
│   34 import buildtest.main                                                   │
│   35                                                                         │
│ ❱ 36 buildtest.main.main()                                                   │
│   37                                                                         │
│                                                                              │
│ ╭───────────────────────────────── locals ─────────────────────────────────╮ │
│ │ __annotations__ = {}                                                     │ │
│ │    __builtins__ = <module 'builtins' (built-in)>                         │ │
│ │      __cached__ = None                                                   │ │
│ │         __doc__ = ':"\n# preferred pythons for running                   │ │
│ │                   buildtest\nPREFERRED_PYTHONS="python3 python"\n'+365   │ │
│ │        __file__ = '/home/docs/checkouts/readthedocs.org/user_builds/bui… │ │
│ │      __loader__ = <_frozen_importlib_external.SourceFileLoader object at │ │
│ │                   0x7fc3ca82b210>                                        │ │
│ │        __name__ = '__main__'                                             │ │
│ │     __package__ = None                                                   │ │
│ │        __spec__ = None                                                   │ │
│ │       buildtest = <module 'buildtest' from                               │ │
│ │                   '/home/docs/checkouts/readthedocs.org/user_builds/bui… │ │
│ │  buildtest_file = '/home/docs/checkouts/readthedocs.org/user_builds/bui… │ │
│ │              os = <module 'os' from                                      │ │
│ │                   '/home/docs/.asdf/installs/python/3.7.13/lib/python3.… │ │
│ │          prefix = '/home/docs/checkouts/readthedocs.org/user_builds/bui… │ │
│ │             sys = <module 'sys' (built-in)>                              │ │
│ ╰──────────────────────────────────────────────────────────────────────────╯ │
│                                                                              │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/bu │
│ ildtest/main.py:167 in main                                                  │
│                                                                              │
│   164 │   │   │   │   unload_modules=args.unload_modules,                    │
│   165 │   │   │   │   rerun=args.rerun,                                      │
│   166 │   │   │   │   executor_type=args.executor_type,                      │
│ ❱ 167 │   │   │   │   timeout=args.timeout,                                  │
│   168 │   │   │   )                                                          │
│   169 │   │   │   cmd.build()                                                │
│   170                                                                        │
│                                                                              │
│ ╭───────────────────────────────── locals ─────────────────────────────────╮ │
│ │               args = Namespace(account=None,                             │ │
│ │                      buildspec=['tutorials/test_status/pass_returncode.… │ │
│ │                      configfile=None, debug=False,                       │ │
│ │                      disable_executor_check=True, editor=None,           │ │
│ │                      exclude=None, executor=None, executor_type=None,    │ │
│ │                      filter=None, helpfilter=False, logpath=False,       │ │
│ │                      maxpendtime=None, module_purge=False, modules=None, │ │
│ │                      no_color=False, nodes=None, pollinterval=None,      │ │
│ │                      print_log=False, procs=None, rebuild=51,            │ │
│ │                      remove_stagedir=False, report=None, rerun=False,    │ │
│ │                      retry=1, stage=None, subcommands='build',           │ │
│ │                      tags=None, testdir=None, timeout=None,              │ │
│ │                      unload_modules=None, view_log=False)                │ │
│ │   buildtest_editor = '/usr/bin/vim'                                      │ │
│ │        config_file = None                                                │ │
│ │      configuration = <buildtest.config.SiteConfiguration object at       │ │
│ │                      0x7fc3c87b1f10>                                     │ │
│ │              fname = '/home/docs/checkouts/readthedocs.org/user_builds/… │ │
│ │             logger = <Logger buildtest (DEBUG)>                          │ │
│ │           no_color = False                                               │ │
│ │             parser = ArgumentParser(prog='buildtest', usage='%(prog)s    │ │
│ │                      [options] [COMMANDS]', description='buildtest is a  │ │
│ │                      HPC testing framework for building and running      │ │
│ │                      tests.', formatter_class=<class                     │ │
│ │                      'argparse.RawDescriptionHelpFormatter'>,            │ │
│ │                      conflict_handler='error', add_help=True)            │ │
│ │        report_file = None                                                │ │
│ │             system = <buildtest.system.BuildTestSystem object at         │ │
│ │                      0x7fc3c87b1fd0>                                     │ │
│ │ validate_executors = True                                                │ │
│ ╰──────────────────────────────────────────────────────────────────────────╯ │
│                                                                              │
│ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/bu │
│ ildtest/cli/build.py:550 in __init__                                         │
│                                                                              │
│    547 │   │   │                                                             │
│    548 │   │   │   if rebuild > 50:                                          │
│    549 │   │   │   │   raise BuildTestError(                                 │
│ ❱  550 │   │   │   │   │   f"--rebuild {rebuild} exceeds maximum rebuild lim │
│    551 │   │   │   │   )                                                     │
│    552 │   │                                                                 │
│    553 │   │   if timeout:                                                   │
│                                                                              │
│ ╭───────────────────────────────── locals ─────────────────────────────────╮ │
│ │            account = None                                                │ │
│ │         buildspecs = ['tutorials/test_status/pass_returncode.yml']       │ │
│ │   buildtest_system = <buildtest.system.BuildTestSystem object at         │ │
│ │                      0x7fc3c87b1fd0>                                     │ │
│ │      configuration = <buildtest.config.SiteConfiguration object at       │ │
│ │                      0x7fc3c87b1f10>                                     │ │
│ │ exclude_buildspecs = None                                                │ │
│ │      executor_type = None                                                │ │
│ │          executors = None                                                │ │
│ │  filter_buildspecs = None                                                │ │
│ │         helpfilter = False                                               │ │
│ │        maxpendtime = None                                                │ │
│ │        modulepurge = False                                               │ │
│ │            modules = None                                                │ │
│ │           numnodes = None                                                │ │
│ │           numprocs = None                                                │ │
│ │      poll_interval = None                                                │ │
│ │            rebuild = 51                                                  │ │
│ │    remove_stagedir = False                                               │ │
│ │        report_file = None                                                │ │
│ │              rerun = False                                               │ │
│ │              retry = 1                                                   │ │
│ │               self = <buildtest.cli.build.BuildTest object at            │ │
│ │                      0x7fc3c8750fd0>                                     │ │
│ │              stage = None                                                │ │
│ │               tags = None                                                │ │
│ │            testdir = None                                                │ │
│ │            timeout = None                                                │ │
│ │     unload_modules = None                                                │ │
│ ╰──────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────╯
BuildTestError: '--rebuild 51 exceeds maximum rebuild limit of 50'

Rerun Last command

The buildtest build --rerun command can be used to rerun last successful buildtest build command, this can be useful if you want to repeat a certain build without having to remember the command or going through your command history to find the command you ran. When using this option all other options passed to buildtest will be ignored. In order to use –rerun option you must run buildtest build command such that buildtest can rerun your last successful command.

Let’s start by building a simple test.

buildtest build -b tutorials/vars.yml
$ buildtest build -b tutorials/vars.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:40                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
variables_bash/80d14079: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/80d14079
variables_bash/80d14079: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/80d14079/stage
variables_bash/80d14079: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/80d14079/variables_bash_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
variables_bash/80d14079 does not have any dependencies adding test to queue
variables_bash/80d14079: Running Test via command: bash --norc --noprofile -eo pipefail variables_bash_build.sh
variables_bash/80d14079: Test completed in 0.009511 seconds
variables_bash/80d14079: Test completed with returncode: 0
variables_bash/80d14079: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/80d14079/variables_bash.out
variables_bash/80d14079: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/80d14079/variables_bash.err
In this iteration we are going to run the following tests: [variables_bash/80d14079]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ variables_ba │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.009511 │
│ sh/80d14079  │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest__hv4fwg_.log

Next let’s rerun the same command via buildtest build --rerun and take note that it will rerun same command as before

buildtest build --rerun
$ buildtest build --rerun
Reading content of rerun file /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/rerun.json all other options will be ignored.
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:41                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
variables_bash/11088548: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/11088548
variables_bash/11088548: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/11088548/stage
variables_bash/11088548: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/11088548/variables_bash_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
variables_bash/11088548 does not have any dependencies adding test to queue
variables_bash/11088548: Running Test via command: bash --norc --noprofile -eo pipefail variables_bash_build.sh
variables_bash/11088548: Test completed in 0.009763 seconds
variables_bash/11088548: Test completed with returncode: 0
variables_bash/11088548: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/11088548/variables_bash.out
variables_bash/11088548: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/11088548/variables_bash.err
In this iteration we are going to run the following tests: [variables_bash/11088548]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ variables_ba │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.009763 │
│ sh/11088548  │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_8vr11ydh.log

If you pass additional options with --rerun it will simply be ignored. In this case -t python --stage=build will not be read by buildtest instead we will rerun same command.

buildtest build --rerun -t python --stage=build
$ buildtest build --rerun -t python --stage=build
Reading content of rerun file /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/rerun.json all other options will be ignored.
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:41                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/vars.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ variables… │ generic.l… │ None     │ None  │ None  │ Declare    │ /home/doc… │
│            │            │          │       │       │ shell      │            │
│            │            │          │       │       │ variables  │            │
│            │            │          │       │       │ in bash    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
variables_bash/f1d97943: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/f1d97943
variables_bash/f1d97943: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/f1d97943/stage
variables_bash/f1d97943: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/f1d97943/variables_bash_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
variables_bash/f1d97943 does not have any dependencies adding test to queue
variables_bash/f1d97943: Running Test via command: bash --norc --noprofile -eo pipefail variables_bash_build.sh
variables_bash/f1d97943: Test completed in 0.009338 seconds
variables_bash/f1d97943: Test completed with returncode: 0
variables_bash/f1d97943: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/f1d97943/variables_bash.out
variables_bash/f1d97943: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/vars/variables_bash/f1d97943/variables_bash.err
In this iteration we are going to run the following tests: [variables_bash/f1d97943]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ variables_ba │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 0.009338 │
│ sh/f1d97943  │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest__ahis5kw.log

Note

The buildtest clean will erase all history of builds and if you run buildtest build --rerun will raise an exception

Specify Modules in command line

If your system supports modules such as environment-modules or Lmod you can specify a list of modules to load (module load) in the test via buildtest build --modules. You can specify a comma separated list of modules to load, for example if you want to load gcc and python module in your test you can run buildtest build --modules gcc,python. You may specify full name of module with version for instance you want test to load gcc/9.3.0 and python/3.7 you can run buildtest build --modules gcc/9.3.0,python/3.7.

If you want test to run module purge before running test you can specify buildtest build --module-purge option. If you specify --module-purge and --modules then module purge will be run prior to loading any modules.

Similarly, you can unload modules before running any test via buildtest build --unload-modules which is a list of modules to run module unload command and works similar to --modules option. Buildtest will unload modules before loading modules if both –modules and –unload-modules are specified. If –module-purge is also specified then we run module purge first before loading/unloading any modules.

Use Alternate Configuration file

If you want to use an alternate configuration file when building test you can use buildtest -c <config> build. buildtest will prefer configuration file on command line over the user configuration ($HOME/.buildtest/config.yml). For more details see Which configuration file does buildtest read?.

Removing Stage Directory

buildtest will write the tests in stage directory where test will be executed, typically buildtest will keep the stage directory but if you want to remove the directory you can use buildtest build --remove-stagedir.

Specify Project Account for batch jobs

For batch jobs you typically require one to specify a project account in order to charge jobs depending on your scheduler you can use buildtest build --account option and specify an account name. The command line argument --account will override configuration setting. For more details see Specifying Project Account

Test Timeout

Buildtest can terminate test based on timeout value specified via --timeout option which can be used to terminate long running test. The timeout is in seconds and value must be a positive integer which is applied to all test that are run via buildtest build command. If test exceeds the timeout value, then process will be terminated.

To demonstrate this behavior, we will run the following test with a timeout of 1 sec which is expected to fail. Take note of the test returncode of test.

buildtest build -b tutorials/sleep.yml --timeout 1
$ buildtest build -b tutorials/sleep.yml --timeout 1
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:42                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/sleep.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ sleep/48f… │ generic.l… │ None     │ None  │ None  │ sleep 2    │ /home/doc… │
│            │            │          │       │       │ seconds    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
sleep/48fa3410: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/48fa3410
sleep/48fa3410: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/48fa3410/stage
sleep/48fa3410: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/48fa3410/sleep_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
sleep/48fa3410 does not have any dependencies adding test to queue
sleep/48fa3410: Running Test via command: bash --norc --noprofile -eo pipefail sleep_build.sh
sleep/48fa3410: Test completed in 1.003377 seconds
sleep/48fa3410: Test completed with returncode: -9
sleep/48fa3410: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/48fa3410/sleep.out
sleep/48fa3410: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/48fa3410/sleep.err
In this iteration we are going to run the following tests: [sleep/48fa3410]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ sleep/48fa34 │ generic.loc… │ FAIL   │ N/A N/A N/A   │ -9         │ 1.003377 │
│ 10           │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 0/1 Percentage: 0.000%
Failed Tests: 1/1 Percentage: 100.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_whji22zo.log

Now if we run this test with a higher timeout value we will see this test will pass, if no timeout is specified then test will run until completion.

buildtest build -b tutorials/sleep.yml --timeout 10
$ buildtest build -b tutorials/sleep.yml --timeout 10
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-18342644-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2022/10/14 14:51:44                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.0                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.7.13                                                   │
│ Configuration File: /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Test Directory:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Report File:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/t… ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Buildtest will parse 1 buildspecs
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/tutorials/sleep.yml: VALID
Total builder objects created: 1
Total compiler builder: 0
Total script builder: 1
Total spack builder: 0
                             Script Builder Details                             
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ builder    ┃ executor   ┃ compiler ┃ nodes ┃ procs ┃ descripti… ┃ buildspecs ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ sleep/574… │ generic.l… │ None     │ None  │ None  │ sleep 2    │ /home/doc… │
│            │            │          │       │       │ seconds    │            │
└────────────┴────────────┴──────────┴───────┴───────┴────────────┴────────────┘
──────────────────────────────── Building Test ─────────────────────────────────
sleep/574a5b3a: Creating test directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/574a5b3a
sleep/574a5b3a: Creating the stage directory: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/574a5b3a/stage
sleep/574a5b3a: Writing build script: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/574a5b3a/sleep_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
sleep/574a5b3a does not have any dependencies adding test to queue
sleep/574a5b3a: Running Test via command: bash --norc --noprofile -eo pipefail sleep_build.sh
sleep/574a5b3a: Test completed in 2.02017 seconds
sleep/574a5b3a: Test completed with returncode: 0
sleep/574a5b3a: Writing output file -  /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/574a5b3a/sleep.out
sleep/574a5b3a: Writing error file - /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/tests/generic.local.bash/sleep/sleep/574a5b3a/sleep.err
In this iteration we are going to run the following tests: [sleep/574a5b3a]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┓
┃               ┃              ┃        ┃ checks        ┃            ┃         ┃
┃               ┃              ┃        ┃ (ReturnCode,  ┃            ┃         ┃
┃               ┃              ┃        ┃ Regex,        ┃            ┃         ┃
┃ builder       ┃ executor     ┃ status ┃ Runtime)      ┃ returnCode ┃ runtime ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━┩
│ sleep/574a5b3 │ generic.loc… │ PASS   │ N/A N/A N/A   │ 0          │ 2.02017 │
│ a             │              │        │               │            │         │
└───────────────┴──────────────┴────────┴───────────────┴────────────┴─────────┘



Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Adding 1 test results to /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/report.json
Writing Logfile to: /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.0/var/logs/buildtest_482mxrel.log