Building Test via buildtest

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, run buildtest build --help

Build Usage

$ buildtest build --help
usage: buildtest [options] [COMMANDS] build [-h] [-b BUILDSPEC] [-x EXCLUDE] [-t TAGS] [-ft FILTER_TAGS] [-e EXECUTOR]
                                            [-s {parse,build}] [--testdir TESTDIR] [--rebuild REBUILD]
                                            [-r REPORT_FILE] [--max-pend-time MAX_PEND_TIME]
                                            [--poll-interval POLL_INTERVAL] [-k]

optional arguments:
  -h, --help            show this help message and exit
  -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.
  -t TAGS, --tags TAGS  Discover buildspecs by tags found in buildspec cache
  -ft FILTER_TAGS, --filter-tags FILTER_TAGS
                        Filter buildspecs by tags when building tests.
  -e EXECUTOR, --executor EXECUTOR
                        Discover buildspecs by executor name found in buildspec cache
  -s {parse,build}, --stage {parse,build}
                        control behavior of buildtest build
  --testdir TESTDIR     Specify a custom test directory where to write tests. This overrides configuration file and
                        default location.
  --rebuild REBUILD     Rebuild test X number of times. Must be a positive number between [1-50]
  -r REPORT_FILE, --report_file REPORT_FILE
                        Specify a report file where tests will be written.
  --max-pend-time MAX_PEND_TIME
                        Specify Maximum Pending Time (sec) for job before cancelling job. This only applies for batch
                        job submission.
  --poll-interval POLL_INTERVAL
                        Specify Poll Interval (sec) for polling batch jobs
  -k, --keep-stage-dir  Keep stage directory after job completion.

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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:11
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------+
| Discovered Buildspecs                                                |
+======================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml |
+----------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+----------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml



name            description
--------------  -------------------------------
variables_bash  Declare shell variables in bash

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name           | id       | type   | executor           | tags          | testpath
----------------+----------+--------+--------------------+---------------+------------------------------------------------------------------------------------------------------------------------------
 variables_bash | 9dd0145d | script | generic.local.bash | ['tutorials'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vars/variables_bash/0/variables_bash_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name           | id       | executor           | status   |   returncode
----------------+----------+--------------------+----------+--------------
 variables_bash | 9dd0145d | generic.local.bash | PASS     |            0

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 1/1 Percentage: 100.000%
Failed Tests: 0/1 Percentage: 0.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_khwo_zrb.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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 general_tests/configuration/ 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:11
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b general_tests/configuration/

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                    |
+==========================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml          |
+----------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  5
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  5
[ssh_localhost_remotecommand][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml]: test is skipped because this test is expected to run on platform: Linux but detected platform: Darwin.

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+----------------------------------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml



name                          description
----------------------------  -----------------------------------------------------------
kernel_swapusage              Retrieve Kernel Swap Usage
ulimit_filelock_unlimited     Check if file lock is set to unlimited in ulimits
ulimit_cputime_unlimited      Check if cputime is set to unlimited in ulimits
ulimit_stacksize_unlimited    Check if stack size is set to unlimited in ulimits
ulimit_vmsize_unlimited       Check virtual memory size and check if its set to unlimited
ulimit_filedescriptor_4096    Check if open file descriptors limit is set to 4096
ulimit_max_user_process_2048  Check max number of user process limit is set to 2048
root_disk_usage               Check root disk usage and report if it exceeds threshold
systemd_default_target        check if default target is multi-user.target

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                         | id       | type   | executor           | tags                      | testpath
------------------------------+----------+--------+--------------------+---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------
 kernel_swapusage             | 3584096e | script | generic.local.bash | ['configuration']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/kernel_state/kernel_swapusage/0/kernel_swapusage_build.sh
 ulimit_filelock_unlimited    | a97904c1 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/0/ulimit_filelock_unlimited_build.sh
 ulimit_cputime_unlimited     | e4a8a2f2 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/0/ulimit_cputime_unlimited_build.sh
 ulimit_stacksize_unlimited   | 98223abd | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/0/ulimit_stacksize_unlimited_build.sh
 ulimit_vmsize_unlimited      | fda09b46 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/0/ulimit_vmsize_unlimited_build.sh
 ulimit_filedescriptor_4096   | 6f2facf4 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/0/ulimit_filedescriptor_4096_build.sh
 ulimit_max_user_process_2048 | 5d8af787 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/0/ulimit_max_user_process_2048_build.sh
 root_disk_usage              | 966c88bb | script | generic.local.bash | ['filesystem', 'storage'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/disk_usage/root_disk_usage/0/root_disk_usage_build.sh
 systemd_default_target       | d0ec4386 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/0/systemd_default_target_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                         | id       | executor           | status   |   returncode
------------------------------+----------+--------------------+----------+--------------
 kernel_swapusage             | 3584096e | generic.local.bash | FAIL     |            1
 ulimit_filelock_unlimited    | a97904c1 | generic.local.bash | PASS     |            0
 ulimit_cputime_unlimited     | e4a8a2f2 | generic.local.bash | PASS     |            0
 ulimit_stacksize_unlimited   | 98223abd | generic.local.bash | FAIL     |            0
 ulimit_vmsize_unlimited      | fda09b46 | generic.local.bash | PASS     |            0
 ulimit_filedescriptor_4096   | 6f2facf4 | generic.local.bash | FAIL     |            0
 ulimit_max_user_process_2048 | 5d8af787 | generic.local.bash | FAIL     |            0
 root_disk_usage              | 966c88bb | generic.local.bash | PASS     |            0
 systemd_default_target       | d0ec4386 | generic.local.bash | FAIL     |            1

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 4/9 Percentage: 44.444%
Failed Tests: 5/9 Percentage: 55.556%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_hv7xfj9n.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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 general_tests/configuration/ -b tutorials/vars.yml 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:13
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b general_tests/configuration/ -b tutorials/vars.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                    |
+==========================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml                                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml |
+----------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  6
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  6
[ssh_localhost_remotecommand][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml]: test is skipped because this test is expected to run on platform: Linux but detected platform: Darwin.

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+----------------------------------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml



name                          description
----------------------------  -----------------------------------------------------------
ulimit_filelock_unlimited     Check if file lock is set to unlimited in ulimits
ulimit_cputime_unlimited      Check if cputime is set to unlimited in ulimits
ulimit_stacksize_unlimited    Check if stack size is set to unlimited in ulimits
ulimit_vmsize_unlimited       Check virtual memory size and check if its set to unlimited
ulimit_filedescriptor_4096    Check if open file descriptors limit is set to 4096
ulimit_max_user_process_2048  Check max number of user process limit is set to 2048
kernel_swapusage              Retrieve Kernel Swap Usage
root_disk_usage               Check root disk usage and report if it exceeds threshold
variables_bash                Declare shell variables in bash
systemd_default_target        check if default target is multi-user.target

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                         | id       | type   | executor           | tags                      | testpath
------------------------------+----------+--------+--------------------+---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------
 ulimit_filelock_unlimited    | 42b7e186 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/1/ulimit_filelock_unlimited_build.sh
 ulimit_cputime_unlimited     | 9fbfb7a8 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/1/ulimit_cputime_unlimited_build.sh
 ulimit_stacksize_unlimited   | 01048117 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/1/ulimit_stacksize_unlimited_build.sh
 ulimit_vmsize_unlimited      | ca404a2c | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/1/ulimit_vmsize_unlimited_build.sh
 ulimit_filedescriptor_4096   | 1b26582f | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/1/ulimit_filedescriptor_4096_build.sh
 ulimit_max_user_process_2048 | e1509e26 | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/1/ulimit_max_user_process_2048_build.sh
 kernel_swapusage             | c9f1c573 | script | generic.local.bash | ['configuration']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/kernel_state/kernel_swapusage/1/kernel_swapusage_build.sh
 root_disk_usage              | ac8f7db7 | script | generic.local.bash | ['filesystem', 'storage'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/disk_usage/root_disk_usage/1/root_disk_usage_build.sh
 variables_bash               | 107a05b1 | script | generic.local.bash | ['tutorials']             | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vars/variables_bash/1/variables_bash_build.sh
 systemd_default_target       | dd3113af | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/1/systemd_default_target_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                         | id       | executor           | status   |   returncode
------------------------------+----------+--------------------+----------+--------------
 ulimit_filelock_unlimited    | 42b7e186 | generic.local.bash | PASS     |            0
 ulimit_cputime_unlimited     | 9fbfb7a8 | generic.local.bash | PASS     |            0
 ulimit_stacksize_unlimited   | 01048117 | generic.local.bash | FAIL     |            0
 ulimit_vmsize_unlimited      | ca404a2c | generic.local.bash | PASS     |            0
 ulimit_filedescriptor_4096   | 1b26582f | generic.local.bash | FAIL     |            0
 ulimit_max_user_process_2048 | e1509e26 | generic.local.bash | FAIL     |            0
 kernel_swapusage             | c9f1c573 | generic.local.bash | FAIL     |            1
 root_disk_usage              | ac8f7db7 | generic.local.bash | PASS     |            0
 variables_bash               | 107a05b1 | generic.local.bash | PASS     |            0
 systemd_default_target       | dd3113af | generic.local.bash | FAIL     |            1

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 5/10 Percentage: 50.000%
Failed Tests: 5/10 Percentage: 50.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_7mp9d0ak.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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 build -b tutorials/ -x tutorials/
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 two files. Buildtest will report the excluded buildspecs in the output.

$ buildtest build -b general_tests/configuration/ -x general_tests/configuration/ulimits.yml -x general_tests/configuration/ssh_localhost.yml 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:14
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b general_tests/configuration/ -x general_tests/configuration/ulimits.yml -x general_tests/configuration/ssh_localhost.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                    |
+==========================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml |
+----------------------------------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------------------------+
| Excluded Buildspecs                                                                             |
+=================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml       |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml |
+-------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  5
Excluded Buildspecs:  2
Detected Buildspecs after exclusion:  3

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+----------------------------------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml



name                    description
----------------------  --------------------------------------------------------
root_disk_usage         Check root disk usage and report if it exceeds threshold
kernel_swapusage        Retrieve Kernel Swap Usage
systemd_default_target  check if default target is multi-user.target

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                   | id       | type   | executor           | tags                      | testpath
------------------------+----------+--------+--------------------+---------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------
 root_disk_usage        | 27addca3 | script | generic.local.bash | ['filesystem', 'storage'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/disk_usage/root_disk_usage/2/root_disk_usage_build.sh
 kernel_swapusage       | 82b03808 | script | generic.local.bash | ['configuration']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/kernel_state/kernel_swapusage/2/kernel_swapusage_build.sh
 systemd_default_target | 7390996b | script | generic.local.bash | ['system']                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/2/systemd_default_target_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                   | id       | executor           | status   |   returncode
------------------------+----------+--------------------+----------+--------------
 root_disk_usage        | 27addca3 | generic.local.bash | PASS     |            0
 kernel_swapusage       | 82b03808 | generic.local.bash | FAIL     |            1
 systemd_default_target | 7390996b | generic.local.bash | FAIL     |            1

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 1/3 Percentage: 33.333%
Failed Tests: 2/3 Percentage: 66.667%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_1nkyqgh3.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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.

To build all tutorials tests you can perform buildtest build --tags tutorials. In buildspec file, there is a field tags: [tutorials] to classify tests. buildtest will read the cache file var/buildspec-cache.json and see which buildspecs have a matching tag. You should run buildtest buildspec find atleast once, in order to detect cache file.

$ buildtest build --tags tutorials 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:17
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --tags tutorials

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                           |
+=================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/executor_regex_script.yml           |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shebang.yml                         |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/selinux.yml                         |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/pre_post_build_run.yml    |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml                      |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/custom_run.yml            |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_fortran.yml     |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/vecadd.yml                |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_c.yml           |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/environment.yml                     |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml      |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml       |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml                    |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml          |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml                  |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_platform.yml               |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml                            |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/csh_shell_examples.yml              |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml             |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/sleep.yml                           |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml                 |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/hello_world.yml                     |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml                       |
+-------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  24
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  24

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['tutorials']
+-------------------------------------------------------------------------------------------------+
| tutorials                                                                                       |
+=================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/executor_regex_script.yml           |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shebang.yml                         |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/selinux.yml                         |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/pre_post_build_run.yml    |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml                      |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/custom_run.yml            |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_fortran.yml     |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/vecadd.yml                |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_c.yml           |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/environment.yml                     |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml       |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml                    |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml          |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml                  |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_platform.yml               |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml                            |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/csh_shell_examples.yml              |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml                       |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml             |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/sleep.yml                           |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml                 |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/hello_world.yml                     |
+-------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml      |
+-------------------------------------------------------------------------------------------------+


[skip](/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml): test is skipped.
[vecadd_gnu_exclude][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[override_environmentvars][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[openmp_hello_c_example][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[run_only_platform_linux][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_platform.yml]: test is skipped because this test is expected to run on platform: Linux but detected platform: Darwin.
[default_status_regex][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[override_status_regex][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[run_only_as_root][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml]: test is skipped because this test is expected to run as user: root but detected user: siddiq90.

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile                | validstate   | buildspec
---------------------------+--------------+-------------------------------------------------------------------------------------------------
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/executor_regex_script.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shebang.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/selinux.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/pre_post_build_run.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/custom_run.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_fortran.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/vecadd.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_c.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/environment.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_platform.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/csh_shell_examples.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/sleep.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/hello_world.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml



name                          description
----------------------------  ------------------------------------------------------------------------------
executor_regex_script_schema  regular expression test with executor using script schema
executor_regex_script_schema  regular expression test with executor using script schema
bash_login_shebang            customize shebang line with bash login shell
bash_nonlogin_shebang         customize shebang line with default bash (nonlogin) shell
selinux_disable               Check if SELinux is Disabled
pre_post_build_run            example using pre_build, post_build, pre_run, post_run example
unskipped                     This test is not skipped
custom_run_by_compilers       Customize binary launch based on compiler
hello_f                       Hello World Fortran Compilation
vecadd_gnu                    Vector Addition example with GNU compiler
hello_c                       Hello World C Compilation
bash_env_variables            Declare environment variables in default shell (bash)
csh_env_declaration           csh shell example to declare environment variables
tcsh_env_declaration          tcsh shell example to declare environment variables
circle_area                   Calculate circle of area given a radius
_bin_sh_shell                 /bin/sh shell example
_bin_bash_shell               /bin/bash shell example
bash_shell                    bash shell example
sh_shell                      sh shell example
shell_options                 shell options
run_only_platform_darwin      This test will only run if target platform is Darwin
variables_bash                Declare shell variables in bash
csh_shell                     csh shell example
timelimit_min_max             Run a sleep job for 2 seconds and test pass if its within 1.0-4.0sec
timelimit_min                 Run a sleep job for 2 seconds and test pass if its exceeds min time of 1.0 sec
timelimit_max                 Run a sleep job for 2 seconds and test pass if it's within max time: 5.0 sec
timelimit_min_fail            This test fails because it runs less than mintime of 1.0 second
timelimit_max_fail            This test fails because it exceeds maxtime of 1.0 second
sleep                         sleep 2 seconds
exit1_fail                    exit 1 by default is FAIL
exit1_pass                    report exit 1 as PASS
returncode_list_mismatch      exit 2 failed since it failed to match returncode 1
returncode_int_match          exit 128 matches returncode 128
hello_world                   hello world example

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                         | id       | type   | executor             | tags                    | testpath
------------------------------+----------+--------+----------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 executor_regex_script_schema | d2b92d88 | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/executor_regex_script/executor_regex_script_schema/0/executor_regex_script_schema_build.sh
 executor_regex_script_schema | 7bb3e54b | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/executor_regex_script/executor_regex_script_schema/0/executor_regex_script_schema_build.sh
 bash_login_shebang           | 418f4652 | script | generic.local.bash   | tutorials               | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shebang/bash_login_shebang/0/bash_login_shebang_build.sh
 bash_nonlogin_shebang        | 5505595a | script | generic.local.bash   | tutorials               | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shebang/bash_nonlogin_shebang/0/bash_nonlogin_shebang_build.sh
 selinux_disable              | 3e1c96b8 | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/selinux/selinux_disable/0/selinux_disable_build.sh
 unskipped                    | 969db9e4 | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/skip_tests/unskipped/0/unskipped_build.sh
 bash_env_variables           | 86e06a3b | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/environment/bash_env_variables/0/bash_env_variables_build.sh
 csh_env_declaration          | a90868f6 | script | generic.local.csh    | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.csh/environment/csh_env_declaration/0/csh_env_declaration_build.sh
 tcsh_env_declaration         | a2229242 | script | generic.local.csh    | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.csh/environment/tcsh_env_declaration/0/tcsh_env_declaration_build.sh
 circle_area                  | 77d1935d | script | generic.local.python | ['tutorials', 'python'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.python/python-shell/circle_area/0/circle_area_build.sh
 _bin_sh_shell                | 0a7afbc7 | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/_bin_sh_shell/0/_bin_sh_shell_build.sh
 _bin_bash_shell              | 707ec9de | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shell_examples/_bin_bash_shell/0/_bin_bash_shell_build.sh
 bash_shell                   | 43a9241c | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shell_examples/bash_shell/0/bash_shell_build.sh
 sh_shell                     | 8db5c518 | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/sh_shell/0/sh_shell_build.sh
 shell_options                | ff5514ec | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/shell_options/0/shell_options_build.sh
 run_only_platform_darwin     | 16c92b2b | script | generic.local.python | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.python/run_only_platform/run_only_platform_darwin/0/run_only_platform_darwin_build.sh
 variables_bash               | 5fc12b72 | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vars/variables_bash/2/variables_bash_build.sh
 csh_shell                    | 3b3db343 | script | generic.local.csh    | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.csh/csh_shell_examples/csh_shell/0/csh_shell_build.sh
 timelimit_min_max            | 4ef72631 | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min_max/0/timelimit_min_max_build.sh
 timelimit_min                | 12ccce88 | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min/0/timelimit_min_build.sh
 timelimit_max                | b1f333dd | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_max/0/timelimit_max_build.sh
 timelimit_min_fail           | f9e8d53a | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min_fail/0/timelimit_min_fail_build.sh
 timelimit_max_fail           | fdca9d76 | script | generic.local.sh     | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_max_fail/0/timelimit_max_fail_build.sh
 sleep                        | 92702c39 | script | generic.local.bash   | ['tutorials']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/sleep/sleep/0/sleep_build.sh
 exit1_fail                   | e0d0d28f | script | generic.local.sh     | ['tutorials', 'fail']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/0/exit1_fail_build.sh
 exit1_pass                   | 6c963b6b | script | generic.local.sh     | ['tutorials', 'pass']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/0/exit1_pass_build.sh
 returncode_list_mismatch     | 5f2c250b | script | generic.local.sh     | ['tutorials', 'fail']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/0/returncode_list_mismatch_build.sh
 returncode_int_match         | 2249426d | script | generic.local.sh     | ['tutorials', 'pass']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/0/returncode_int_match_build.sh
 hello_world                  | d385c378 | script | generic.local.bash   | tutorials               | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/hello_world/hello_world/0/hello_world_build.sh


 name                    | id       | type     | executor           | tags                     | compiler    | testpath
-------------------------+----------+----------+--------------------+--------------------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------
 pre_post_build_run      | dd168ad5 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/pre_post_build_run/pre_post_build_run/0/pre_post_build_run_build.sh
 custom_run_by_compilers | 482130d6 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/custom_run/custom_run_by_compilers/0/custom_run_by_compilers_build.sh
 hello_f                 | 6dc75b81 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/gnu_hello_fortran/hello_f/0/hello_f_build.sh
 vecadd_gnu              | 6cbfd400 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vecadd/vecadd_gnu/0/vecadd_gnu_build.sh
 hello_c                 | 64996105 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/gnu_hello_c/hello_c/0/hello_c_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                         | id       | executor             | status   |   returncode
------------------------------+----------+----------------------+----------+--------------
 executor_regex_script_schema | d2b92d88 | generic.local.bash   | PASS     |            0
 executor_regex_script_schema | 7bb3e54b | generic.local.sh     | PASS     |            0
 bash_login_shebang           | 418f4652 | generic.local.bash   | PASS     |            0
 bash_nonlogin_shebang        | 5505595a | generic.local.bash   | PASS     |            0
 selinux_disable              | 3e1c96b8 | generic.local.bash   | FAIL     |            1
 pre_post_build_run           | dd168ad5 | generic.local.bash   | PASS     |            0
 unskipped                    | 969db9e4 | generic.local.bash   | PASS     |            0
 custom_run_by_compilers      | 482130d6 | generic.local.bash   | PASS     |            0
 hello_f                      | 6dc75b81 | generic.local.bash   | FAIL     |          127
 vecadd_gnu                   | 6cbfd400 | generic.local.bash   | FAIL     |          127
 hello_c                      | 64996105 | generic.local.bash   | PASS     |            0
 bash_env_variables           | 86e06a3b | generic.local.bash   | PASS     |            0
 csh_env_declaration          | a90868f6 | generic.local.csh    | PASS     |            0
 tcsh_env_declaration         | a2229242 | generic.local.csh    | PASS     |            0
 circle_area                  | 77d1935d | generic.local.python | PASS     |            0
 _bin_sh_shell                | 0a7afbc7 | generic.local.sh     | PASS     |            0
 _bin_bash_shell              | 707ec9de | generic.local.bash   | PASS     |            0
 bash_shell                   | 43a9241c | generic.local.bash   | PASS     |            0
 sh_shell                     | 8db5c518 | generic.local.sh     | PASS     |            0
 shell_options                | ff5514ec | generic.local.sh     | PASS     |            0
 run_only_platform_darwin     | 16c92b2b | generic.local.python | PASS     |            0
 variables_bash               | 5fc12b72 | generic.local.bash   | PASS     |            0
 csh_shell                    | 3b3db343 | generic.local.csh    | PASS     |            0
 timelimit_min_max            | 4ef72631 | generic.local.sh     | PASS     |            0
 timelimit_min                | 12ccce88 | generic.local.sh     | PASS     |            0
 timelimit_max                | b1f333dd | generic.local.sh     | PASS     |            0
 timelimit_min_fail           | f9e8d53a | generic.local.sh     | FAIL     |            0
 timelimit_max_fail           | fdca9d76 | generic.local.sh     | FAIL     |            0
 sleep                        | 92702c39 | generic.local.bash   | PASS     |            0
 exit1_fail                   | e0d0d28f | generic.local.sh     | FAIL     |            1
 exit1_pass                   | 6c963b6b | generic.local.sh     | PASS     |            1
 returncode_list_mismatch     | 5f2c250b | generic.local.sh     | FAIL     |            2
 returncode_int_match         | 2249426d | generic.local.sh     | PASS     |          128
 hello_world                  | d385c378 | generic.local.bash   | PASS     |            0

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 27/34 Percentage: 79.412%
Failed Tests: 7/34 Percentage: 20.588%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest__68880vd.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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 --tags pass --tags python 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:35
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --tags pass --tags python

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------+
| Discovered Buildspecs                                                           |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml    |
+---------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml    |
+---------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+
Discovered Buildspecs:  3
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  3

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['pass', 'python']
+---------------------------------------------------------------------------------+
| pass                                                                            |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+


+------------------------------------------------------------------------------+
| python                                                                       |
+==============================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml |
+------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml |
+------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+---------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml



name                      description
------------------------  ---------------------------------------------------
python_hello              Hello World python
circle_area               Calculate circle of area given a radius
exit1_fail                exit 1 by default is FAIL
exit1_pass                report exit 1 as PASS
returncode_list_mismatch  exit 2 failed since it failed to match returncode 1
returncode_int_match      exit 128 matches returncode 128

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor             | tags                    | testpath
--------------------------+----------+--------+----------------------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------
 python_hello             | ec83383d | script | generic.local.bash   | python                  | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/python-hello/python_hello/0/python_hello_build.sh
 circle_area              | 29fc597d | script | generic.local.python | ['tutorials', 'python'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.python/python-shell/circle_area/1/circle_area_build.sh
 exit1_fail               | d4c19e0e | script | generic.local.sh     | ['tutorials', 'fail']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/1/exit1_fail_build.sh
 exit1_pass               | c65ae4ea | script | generic.local.sh     | ['tutorials', 'pass']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/1/exit1_pass_build.sh
 returncode_list_mismatch | 7b831db4 | script | generic.local.sh     | ['tutorials', 'fail']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/1/returncode_list_mismatch_build.sh
 returncode_int_match     | d8c7c16c | script | generic.local.sh     | ['tutorials', 'pass']   | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/1/returncode_int_match_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                     | id       | executor             | status   |   returncode
--------------------------+----------+----------------------+----------+--------------
 python_hello             | ec83383d | generic.local.bash   | PASS     |            0
 circle_area              | 29fc597d | generic.local.python | PASS     |            0
 exit1_fail               | d4c19e0e | generic.local.sh     | FAIL     |            1
 exit1_pass               | c65ae4ea | generic.local.sh     | PASS     |            1
 returncode_list_mismatch | 7b831db4 | generic.local.sh     | FAIL     |            2
 returncode_int_match     | d8c7c16c | generic.local.sh     | PASS     |          128

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 4/6 Percentage: 66.667%
Failed Tests: 2/6 Percentage: 33.333%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_qcfh_38h.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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. If you want to filter tests by tags use --filter-tags.

The --filter-tags or short option -ft is used for filtering tests by tag name. The --filter-tags is used in conjunction with other options like --buildspec, --tags, or --executor for discovering buildspecs. Let’s rerun the previous example and filter tests by pass. Now we only see tests built with tagname pass and all remaining tests were ignored.

$ buildtest build --tags pass --filter-tags pass -b tutorials/python-hello.yml 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:38
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --tags pass --filter-tags pass -b tutorials/python-hello.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------+
| Discovered Buildspecs                                                           |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml    |
+---------------------------------------------------------------------------------+
Discovered Buildspecs:  2
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['pass']
+---------------------------------------------------------------------------------+
| pass                                                                            |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+


[exit1_fail][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml]: test is skipped because it is not in tag filter list: ['pass']
[returncode_list_mismatch][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml]: test is skipped because it is not in tag filter list: ['pass']
[python_hello][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml]: test is skipped because it is not in tag filter list: ['pass']

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+---------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml



name                  description
--------------------  -------------------------------
exit1_pass            report exit 1 as PASS
returncode_int_match  exit 128 matches returncode 128

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                 | id       | type   | executor         | tags                  | testpath
----------------------+----------+--------+------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------
 exit1_pass           | 87042181 | script | generic.local.sh | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/3/exit1_pass_build.sh
 returncode_int_match | 57890b85 | script | generic.local.sh | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/3/returncode_int_match_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                 | id       | executor         | status   |   returncode
----------------------+----------+------------------+----------+--------------
 exit1_pass           | 87042181 | generic.local.sh | PASS     |            1
 returncode_int_match | 57890b85 | generic.local.sh | PASS     |          128

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 2/2 Percentage: 100.000%
Failed Tests: 0/2 Percentage: 0.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_4eha73a_.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.log

The --filter-tags option can be appended multiple times to filter tests by multiple tags. If buildtest detects no tests were found when filtering tests by tag name then buildtest will report a message. In example below we see no buildspecs were found with tag name compile in the test.

$ buildtest build -b tutorials/shell_examples.yml --filter-tags compile 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:39
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b tutorials/shell_examples.yml --filter-tags compile

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+--------------------------------------------------------------------------------+
| Discovered Buildspecs                                                          |
+================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml |
+--------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
[_bin_sh_shell][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml]: test is skipped because it is not in tag filter list: ['compile']
[_bin_bash_shell][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml]: test is skipped because it is not in tag filter list: ['compile']
[bash_shell][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml]: test is skipped because it is not in tag filter list: ['compile']
[sh_shell][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml]: test is skipped because it is not in tag filter list: ['compile']
[shell_options][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml]: test is skipped because it is not in tag filter list: ['compile']
No buildspecs to process because there are no valid buildspecs

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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:37
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --tags pass --buildspec tutorials/python-hello.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------+
| Discovered Buildspecs                                                           |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml    |
+---------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+
Discovered Buildspecs:  2
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  2

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['pass']
+---------------------------------------------------------------------------------+
| pass                                                                            |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+---------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml



name                      description
------------------------  ---------------------------------------------------
python_hello              Hello World python
exit1_fail                exit 1 by default is FAIL
exit1_pass                report exit 1 as PASS
returncode_list_mismatch  exit 2 failed since it failed to match returncode 1
returncode_int_match      exit 128 matches returncode 128

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor           | tags                  | testpath
--------------------------+----------+--------+--------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------
 python_hello             | 0a174d66 | script | generic.local.bash | python                | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/python-hello/python_hello/1/python_hello_build.sh
 exit1_fail               | 88bed191 | script | generic.local.sh   | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/2/exit1_fail_build.sh
 exit1_pass               | 3eb152b1 | script | generic.local.sh   | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/2/exit1_pass_build.sh
 returncode_list_mismatch | 81a910c9 | script | generic.local.sh   | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/2/returncode_list_mismatch_build.sh
 returncode_int_match     | f941ffc1 | script | generic.local.sh   | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/2/returncode_int_match_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                     | id       | executor           | status   |   returncode
--------------------------+----------+--------------------+----------+--------------
 python_hello             | 0a174d66 | generic.local.bash | PASS     |            0
 exit1_fail               | 88bed191 | generic.local.sh   | FAIL     |            1
 exit1_pass               | 3eb152b1 | generic.local.sh   | PASS     |            1
 returncode_list_mismatch | 81a910c9 | generic.local.sh   | FAIL     |            2
 returncode_int_match     | f941ffc1 | generic.local.sh   | PASS     |          128

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 3/5 Percentage: 60.000%
Failed Tests: 2/5 Percentage: 40.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_nehh6x2t.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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. For instance, if you want to build all test associated to executor generic.local.sh you can run:

$ buildtest build --executor generic.local.sh

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 on test level like --filter-tags option.

In this example we run all tests that are associated to generic.local.sh executor. Notice how buildtest skips tests that don’t match executor generic.local.sh even though they were discovered in buildspec file.

$ buildtest build --executor generic.local.sh 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:39
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --executor generic.local.sh

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                     |
+===========================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml       |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml           |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml            |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml |
+-------------------------------------------------------------------------------------------+
Discovered Buildspecs:  4
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  4

BREAKDOWN OF BUILDSPECS BY EXECUTORS
--------------------------------------
Detected Executor Names: ['generic.local.sh']
+-------------------------------------------------------------------------------------------+
| generic.local.sh                                                                          |
+===========================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml       |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml           |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml            |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml |
+-------------------------------------------------------------------------------------------+


[qsub_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[qselect_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[cqsub_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[qdel_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[qmove_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[show_jobs][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[show_queues][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+-------------------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml



name                      description
------------------------  ------------------------------------------------------------------------------
timelimit_min_max         Run a sleep job for 2 seconds and test pass if its within 1.0-4.0sec
timelimit_min             Run a sleep job for 2 seconds and test pass if its exceeds min time of 1.0 sec
timelimit_max             Run a sleep job for 2 seconds and test pass if it's within max time: 5.0 sec
timelimit_min_fail        This test fails because it runs less than mintime of 1.0 second
timelimit_max_fail        This test fails because it exceeds maxtime of 1.0 second
exit1_fail                exit 1 by default is FAIL
exit1_pass                report exit 1 as PASS
returncode_list_mismatch  exit 2 failed since it failed to match returncode 1
returncode_int_match      exit 128 matches returncode 128
_bin_sh_shell             /bin/sh shell example
_bin_bash_shell           /bin/bash shell example
bash_shell                bash shell example
sh_shell                  sh shell example
shell_options             shell options

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor           | tags                  | testpath
--------------------------+----------+--------+--------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------
 timelimit_min_max        | 04bd02d5 | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min_max/1/timelimit_min_max_build.sh
 timelimit_min            | 24c4a9a9 | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min/1/timelimit_min_build.sh
 timelimit_max            | 2965bf23 | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_max/1/timelimit_max_build.sh
 timelimit_min_fail       | 7860628c | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min_fail/1/timelimit_min_fail_build.sh
 timelimit_max_fail       | a75304c0 | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_max_fail/1/timelimit_max_fail_build.sh
 exit1_fail               | 89adfce5 | script | generic.local.sh   | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/3/exit1_fail_build.sh
 exit1_pass               | 5fcd43e3 | script | generic.local.sh   | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/4/exit1_pass_build.sh
 returncode_list_mismatch | 781cb739 | script | generic.local.sh   | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/3/returncode_list_mismatch_build.sh
 returncode_int_match     | 8b862e0b | script | generic.local.sh   | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/4/returncode_int_match_build.sh
 _bin_sh_shell            | 3d7f5404 | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/_bin_sh_shell/1/_bin_sh_shell_build.sh
 _bin_bash_shell          | 25464f1d | script | generic.local.bash | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shell_examples/_bin_bash_shell/1/_bin_bash_shell_build.sh
 bash_shell               | 59d2aff2 | script | generic.local.bash | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shell_examples/bash_shell/1/bash_shell_build.sh
 sh_shell                 | 984d346e | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/sh_shell/1/sh_shell_build.sh
 shell_options            | 06c3cc8f | script | generic.local.sh   | ['tutorials']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/shell_options/1/shell_options_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                     | id       | executor           | status   |   returncode
--------------------------+----------+--------------------+----------+--------------
 timelimit_min_max        | 04bd02d5 | generic.local.sh   | PASS     |            0
 timelimit_min            | 24c4a9a9 | generic.local.sh   | PASS     |            0
 timelimit_max            | 2965bf23 | generic.local.sh   | PASS     |            0
 timelimit_min_fail       | 7860628c | generic.local.sh   | FAIL     |            0
 timelimit_max_fail       | a75304c0 | generic.local.sh   | FAIL     |            0
 exit1_fail               | 89adfce5 | generic.local.sh   | FAIL     |            1
 exit1_pass               | 5fcd43e3 | generic.local.sh   | PASS     |            1
 returncode_list_mismatch | 781cb739 | generic.local.sh   | FAIL     |            2
 returncode_int_match     | 8b862e0b | generic.local.sh   | PASS     |          128
 _bin_sh_shell            | 3d7f5404 | generic.local.sh   | PASS     |            0
 _bin_bash_shell          | 25464f1d | generic.local.bash | PASS     |            0
 bash_shell               | 59d2aff2 | generic.local.bash | PASS     |            0
 sh_shell                 | 984d346e | generic.local.sh   | PASS     |            0
 shell_options            | 06c3cc8f | generic.local.sh   | PASS     |            0

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 10/14 Percentage: 71.429%
Failed Tests: 4/14 Percentage: 28.571%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_vqkzh650.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.log

We can append arguments to --executor to search for multiple executors by specifying --executor <name1> --executor <name2>. In next example we search all tests associated with generic.local.sh and generic.local.bash executor.

Note

If you specify multiple executors, buildtest will combine the executors into list, for example --executor generic.local.bash --executor generic.local.sh is converted into a list - [generic.local.bash, generic.local.sh], and buildtest will discover buildspecs based on executor field in testname.

$ buildtest build --executor generic.local.sh --executor generic.local.bash 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:51
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --executor generic.local.sh --executor generic.local.bash

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                                    |
+==========================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_fortran.yml              |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/scontrol.yml                 |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml                                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml                          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_distro.yml                          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/environment.yml                              |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/tags_example.yml                             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/custom_run.yml                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shebang.yml                                  |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml                   |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/pre_post_build_run.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml                 |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/vecadd.yml                         |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bqueues.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bhosts.yml                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/sleep.yml                                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/hello_world.yml                              |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/selinux.yml                                  |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml                           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml                                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/squeue.yml                   |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/run.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/inspect.yml       |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bmgroups.yml                   |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml                               |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml                             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/pull.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/build.yml         |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml                      |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bugroup.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_c.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml               |
+----------------------------------------------------------------------------------------------------------+
Discovered Buildspecs:  42
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  42

BREAKDOWN OF BUILDSPECS BY EXECUTORS
--------------------------------------
Detected Executor Names: ['generic.local.sh', 'generic.local.bash']
+-------------------------------------------------------------------------------------------+
| generic.local.sh                                                                          |
+===========================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml            |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml           |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml |
+-------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml       |
+-------------------------------------------------------------------------------------------+


+----------------------------------------------------------------------------------------------------------+
| generic.local.bash                                                                                       |
+==========================================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_fortran.yml              |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/scontrol.yml                 |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml                                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_distro.yml                          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/environment.yml                              |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/tags_example.yml                             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/custom_run.yml                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shebang.yml                                  |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml                   |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/pre_post_build_run.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml                 |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/vecadd.yml                         |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bqueues.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bhosts.yml                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/sleep.yml                                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/hello_world.yml                              |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/selinux.yml                                  |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml                           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml                                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/squeue.yml                   |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml                |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/run.yml           |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/inspect.yml       |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bmgroups.yml                   |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml                               |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml                             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/pull.yml          |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/build.yml         |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bugroup.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml             |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_c.yml                    |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml                     |
+----------------------------------------------------------------------------------------------------------+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml               |
+----------------------------------------------------------------------------------------------------------+


[slurm_config][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/scontrol.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_partition][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/scontrol.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[run_only_linux_distro][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_distro.yml]: test is skipped because this test is expected to run on linux distro: ['centos'] but detected linux distro: darwin.
[nodes_state_down][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[nodes_state_reboot][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[nodes_state_allocated][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[nodes_state_completing][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[nodes_state_idle][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[node_down_fail_list_reason][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[dead_nodes][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[get_partitions][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[sinfo_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[openmp_hello_c_example][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[override_environmentvars][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[show_accounts][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_users][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_qos][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_tres][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_lsf_queues][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bqueues.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[show_lsf_queues_formatted][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bqueues.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[show_lsf_queues_current_user][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bqueues.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[display_lsf_hosts][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bhosts.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[display_hosts_format][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bhosts.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[bhosts_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bhosts.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[ssh_localhost_remotecommand][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml]: test is skipped because this test is expected to run on platform: Linux but detected platform: Darwin.
[default_status_regex][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[override_status_regex][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.
[qsub_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[qselect_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[cqsub_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[qdel_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[qmove_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[show_jobs][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[show_queues][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml]: test is skipped because ['run_only']['scheduler'] got value: cobalt but detected scheduler: [].
[run_only_as_root][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml]: test is skipped because this test is expected to run as user: root but detected user: siddiq90.
[current_user_queue][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/squeue.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_all_jobs][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/squeue.yml]: test is skipped because ['run_only']['scheduler'] got value: slurm but detected scheduler: [].
[show_host_groups][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bmgroups.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[skip](/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml): test is skipped.
[show_lsf_user_groups][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bugroup.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[show_lsf_configuration][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[show_lsf_models][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[show_lsf_resources][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[lsf_version][/Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml]: test is skipped because ['run_only']['scheduler'] got value: lsf but detected scheduler: [].
[vecadd_gnu_exclude][/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml]: Unable to find any compilers based on regular expression: ['^(gcc)'] so no tests were created.

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile                | validstate   | buildspec
---------------------------+--------------+----------------------------------------------------------------------------------------------------------
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_fortran.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/scontrol.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/kernel_state.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/run_only_distro.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/environment.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/tags_example.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/custom_run.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shebang.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sinfo.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/openmp_hello.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/envvar_override.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/pre_post_build_run.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/sacctmgr.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/vecadd.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bqueues.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bhosts.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ssh_localhost.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_status_regex.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/sleep.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/cobalt/commands.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/hello_world.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/selinux.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/shell_examples.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/root_user.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/slurm/squeue.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/ulimits.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/run.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/inspect.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bmgroups.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/skip_tests.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-hello.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/pull.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/containers/singularity/build.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/runtime_status_test.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/bugroup.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/disk_usage.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/configuration/systemd-default-target.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/gnu_hello_c.yml
 script-v1.0.schema.json   | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/general_tests/sched/lsf/lsinfo.yml
 compiler-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/compilers/compiler_exclude.yml



name                          description
----------------------------  ------------------------------------------------------------------------------
hello_f                       Hello World Fortran Compilation
variables_bash                Declare shell variables in bash
kernel_swapusage              Retrieve Kernel Swap Usage
exit1_fail                    exit 1 by default is FAIL
exit1_pass                    report exit 1 as PASS
returncode_list_mismatch      exit 2 failed since it failed to match returncode 1
returncode_int_match          exit 128 matches returncode 128
run_only_macos_distro         Run test only if distro is darwin.
bash_env_variables            Declare environment variables in default shell (bash)
csh_env_declaration           csh shell example to declare environment variables
tcsh_env_declaration          tcsh shell example to declare environment variables
string_tag                    tags can be a string
list_of_strings_tags          tags can be a list of strings
custom_run_by_compilers       Customize binary launch based on compiler
bash_login_shebang            customize shebang line with bash login shell
bash_nonlogin_shebang         customize shebang line with default bash (nonlogin) shell
pre_post_build_run            example using pre_build, post_build, pre_run, post_run example
vecadd_gnu                    Vector Addition example with GNU compiler
sleep                         sleep 2 seconds
hello_world                   hello world example
selinux_disable               Check if SELinux is Disabled
_bin_sh_shell                 /bin/sh shell example
_bin_bash_shell               /bin/bash shell example
bash_shell                    bash shell example
sh_shell                      sh shell example
shell_options                 shell options
ulimit_filelock_unlimited     Check if file lock is set to unlimited in ulimits
ulimit_cputime_unlimited      Check if cputime is set to unlimited in ulimits
ulimit_stacksize_unlimited    Check if stack size is set to unlimited in ulimits
ulimit_vmsize_unlimited       Check virtual memory size and check if its set to unlimited
ulimit_filedescriptor_4096    Check if open file descriptors limit is set to 4096
ulimit_max_user_process_2048  Check max number of user process limit is set to 2048
runImage                      run container docker://godlovedc/lolcow
inspect_image                 Inspect image via 'singularity inspect'
unskipped                     This test is not skipped
python_hello                  Hello World python
pullImage_dockerhub           Pull image docker://godlovedc/lolcow from DockerHub
pullImage_sylabscloud         Pull image library://alpine:latest from Sylabs Cloud
pullImage_shub                Pull image shub://vsoch/singularity-images from SingularityHub
build_sif_from_dockerimage    build sif image from docker image docker://godlovedc/lolcow
build_sandbox_image           build sandbox image from docker image docker://godlovedc/lolcow
build_remoteimages            build remote hosted image from AWS
timelimit_min_max             Run a sleep job for 2 seconds and test pass if its within 1.0-4.0sec
timelimit_min                 Run a sleep job for 2 seconds and test pass if its exceeds min time of 1.0 sec
timelimit_max                 Run a sleep job for 2 seconds and test pass if it's within max time: 5.0 sec
timelimit_min_fail            This test fails because it runs less than mintime of 1.0 second
timelimit_max_fail            This test fails because it exceeds maxtime of 1.0 second
root_disk_usage               Check root disk usage and report if it exceeds threshold
systemd_default_target        check if default target is multi-user.target
hello_c                       Hello World C Compilation

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                         | id       | type   | executor           | tags                          | testpath
------------------------------+----------+--------+--------------------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------
 variables_bash               | a1d77e79 | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vars/variables_bash/3/variables_bash_build.sh
 kernel_swapusage             | 5e433d4d | script | generic.local.bash | ['configuration']             | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/kernel_state/kernel_swapusage/3/kernel_swapusage_build.sh
 exit1_fail                   | 66119094 | script | generic.local.sh   | ['tutorials', 'fail']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/4/exit1_fail_build.sh
 exit1_pass                   | 5dc645cb | script | generic.local.sh   | ['tutorials', 'pass']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/5/exit1_pass_build.sh
 returncode_list_mismatch     | faed2760 | script | generic.local.sh   | ['tutorials', 'fail']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/4/returncode_list_mismatch_build.sh
 returncode_int_match         | 149442e4 | script | generic.local.sh   | ['tutorials', 'pass']         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/5/returncode_int_match_build.sh
 run_only_macos_distro        | 6e4768af | script | generic.local.bash | ['mac']                       | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/run_only_distro/run_only_macos_distro/0/run_only_macos_distro_build.sh
 bash_env_variables           | 5e4854e4 | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/environment/bash_env_variables/1/bash_env_variables_build.sh
 csh_env_declaration          | 1d0df91c | script | generic.local.csh  | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.csh/environment/csh_env_declaration/1/csh_env_declaration_build.sh
 tcsh_env_declaration         | 14189df2 | script | generic.local.csh  | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.csh/environment/tcsh_env_declaration/1/tcsh_env_declaration_build.sh
 string_tag                   | 47853e9e | script | generic.local.bash | network                       | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/tags_example/string_tag/0/string_tag_build.sh
 list_of_strings_tags         | fa345044 | script | generic.local.bash | ['network', 'ping']           | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/tags_example/list_of_strings_tags/0/list_of_strings_tags_build.sh
 bash_login_shebang           | 26f41cbf | script | generic.local.bash | tutorials                     | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shebang/bash_login_shebang/1/bash_login_shebang_build.sh
 bash_nonlogin_shebang        | 89439f99 | script | generic.local.bash | tutorials                     | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shebang/bash_nonlogin_shebang/1/bash_nonlogin_shebang_build.sh
 sleep                        | 8a970353 | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/sleep/sleep/1/sleep_build.sh
 hello_world                  | 9033747f | script | generic.local.bash | tutorials                     | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/hello_world/hello_world/1/hello_world_build.sh
 selinux_disable              | e0c08464 | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/selinux/selinux_disable/1/selinux_disable_build.sh
 _bin_sh_shell                | ccd1bf3c | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/_bin_sh_shell/2/_bin_sh_shell_build.sh
 _bin_bash_shell              | 1cb6feba | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shell_examples/_bin_bash_shell/2/_bin_bash_shell_build.sh
 bash_shell                   | 773b953b | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/shell_examples/bash_shell/2/bash_shell_build.sh
 sh_shell                     | 9d1fa0da | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/sh_shell/2/sh_shell_build.sh
 shell_options                | fe029b97 | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/shell_examples/shell_options/2/shell_options_build.sh
 ulimit_filelock_unlimited    | 5de6dc43 | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_filelock_unlimited/2/ulimit_filelock_unlimited_build.sh
 ulimit_cputime_unlimited     | 93aa6a30 | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_cputime_unlimited/2/ulimit_cputime_unlimited_build.sh
 ulimit_stacksize_unlimited   | 29a12063 | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_stacksize_unlimited/2/ulimit_stacksize_unlimited_build.sh
 ulimit_vmsize_unlimited      | 3691a5e4 | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_vmsize_unlimited/2/ulimit_vmsize_unlimited_build.sh
 ulimit_filedescriptor_4096   | 939c7bad | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_filedescriptor_4096/2/ulimit_filedescriptor_4096_build.sh
 ulimit_max_user_process_2048 | 7be6c5ff | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/ulimits/ulimit_max_user_process_2048/2/ulimit_max_user_process_2048_build.sh
 runImage                     | 58a40a2f | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/run/runImage/0/runImage_build.sh
 inspect_image                | 44db2ad5 | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/inspect/inspect_image/0/inspect_image_build.sh
 unskipped                    | 808c3004 | script | generic.local.bash | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/skip_tests/unskipped/1/unskipped_build.sh
 python_hello                 | 0f204030 | script | generic.local.bash | python                        | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/python-hello/python_hello/2/python_hello_build.sh
 pullImage_dockerhub          | bdc58bb5 | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/pull/pullImage_dockerhub/0/pullImage_dockerhub_build.sh
 pullImage_sylabscloud        | 15e1ad7c | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/pull/pullImage_sylabscloud/0/pullImage_sylabscloud_build.sh
 pullImage_shub               | 29f1483c | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/pull/pullImage_shub/0/pullImage_shub_build.sh
 build_sif_from_dockerimage   | d5b90b3b | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/build/build_sif_from_dockerimage/0/build_sif_from_dockerimage_build.sh
 build_sandbox_image          | 5499bef6 | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/build/build_sandbox_image/0/build_sandbox_image_build.sh
 build_remoteimages           | 542a3dcf | script | generic.local.bash | ['containers', 'singularity'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/build/build_remoteimages/0/build_remoteimages_build.sh
 timelimit_min_max            | 789c8a27 | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min_max/2/timelimit_min_max_build.sh
 timelimit_min                | 321e9740 | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min/2/timelimit_min_build.sh
 timelimit_max                | 1a3099b3 | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_max/2/timelimit_max_build.sh
 timelimit_min_fail           | f62562c6 | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_min_fail/2/timelimit_min_fail_build.sh
 timelimit_max_fail           | c45eeb14 | script | generic.local.sh   | ['tutorials']                 | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/runtime_status_test/timelimit_max_fail/2/timelimit_max_fail_build.sh
 root_disk_usage              | 59d2409e | script | generic.local.bash | ['filesystem', 'storage']     | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/disk_usage/root_disk_usage/3/root_disk_usage_build.sh
 systemd_default_target       | 7322cbde | script | generic.local.bash | ['system']                    | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/systemd-default-target/systemd_default_target/3/systemd_default_target_build.sh


 name                    | id       | type     | executor           | tags                     | compiler    | testpath
-------------------------+----------+----------+--------------------+--------------------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------
 hello_f                 | 29b02934 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/gnu_hello_fortran/hello_f/1/hello_f_build.sh
 custom_run_by_compilers | 00fd26c4 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/custom_run/custom_run_by_compilers/1/custom_run_by_compilers_build.sh
 pre_post_build_run      | e2a93e5f | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/pre_post_build_run/pre_post_build_run/1/pre_post_build_run_build.sh
 vecadd_gnu              | 7b129a53 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vecadd/vecadd_gnu/1/vecadd_gnu_build.sh
 hello_c                 | c84549f4 | compiler | generic.local.bash | ['tutorials', 'compile'] | builtin_gcc | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/gnu_hello_c/hello_c/1/hello_c_build.sh

+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                         | id       | executor           | status   |   returncode
------------------------------+----------+--------------------+----------+--------------
 hello_f                      | 29b02934 | generic.local.bash | FAIL     |          127
 variables_bash               | a1d77e79 | generic.local.bash | PASS     |            0
 kernel_swapusage             | 5e433d4d | generic.local.bash | FAIL     |            1
 exit1_fail                   | 66119094 | generic.local.sh   | FAIL     |            1
 exit1_pass                   | 5dc645cb | generic.local.sh   | PASS     |            1
 returncode_list_mismatch     | faed2760 | generic.local.sh   | FAIL     |            2
 returncode_int_match         | 149442e4 | generic.local.sh   | PASS     |          128
 run_only_macos_distro        | 6e4768af | generic.local.bash | PASS     |            0
 bash_env_variables           | 5e4854e4 | generic.local.bash | PASS     |            0
 csh_env_declaration          | 1d0df91c | generic.local.csh  | PASS     |            0
 tcsh_env_declaration         | 14189df2 | generic.local.csh  | PASS     |            0
 string_tag                   | 47853e9e | generic.local.bash | PASS     |            0
 list_of_strings_tags         | fa345044 | generic.local.bash | PASS     |            0
 custom_run_by_compilers      | 00fd26c4 | generic.local.bash | PASS     |            0
 bash_login_shebang           | 26f41cbf | generic.local.bash | PASS     |            0
 bash_nonlogin_shebang        | 89439f99 | generic.local.bash | PASS     |            0
 pre_post_build_run           | e2a93e5f | generic.local.bash | PASS     |            0
 vecadd_gnu                   | 7b129a53 | generic.local.bash | FAIL     |          127
 sleep                        | 8a970353 | generic.local.bash | PASS     |            0
 hello_world                  | 9033747f | generic.local.bash | PASS     |            0
 selinux_disable              | e0c08464 | generic.local.bash | FAIL     |            1
 _bin_sh_shell                | ccd1bf3c | generic.local.sh   | PASS     |            0
 _bin_bash_shell              | 1cb6feba | generic.local.bash | PASS     |            0
 bash_shell                   | 773b953b | generic.local.bash | PASS     |            0
 sh_shell                     | 9d1fa0da | generic.local.sh   | PASS     |            0
 shell_options                | fe029b97 | generic.local.sh   | PASS     |            0
 ulimit_filelock_unlimited    | 5de6dc43 | generic.local.bash | PASS     |            0
 ulimit_cputime_unlimited     | 93aa6a30 | generic.local.bash | PASS     |            0
 ulimit_stacksize_unlimited   | 29a12063 | generic.local.bash | FAIL     |            0
 ulimit_vmsize_unlimited      | 3691a5e4 | generic.local.bash | PASS     |            0
 ulimit_filedescriptor_4096   | 939c7bad | generic.local.bash | FAIL     |            0
 ulimit_max_user_process_2048 | 7be6c5ff | generic.local.bash | FAIL     |            0
 runImage                     | 58a40a2f | generic.local.bash | FAIL     |          255
 inspect_image                | 44db2ad5 | generic.local.bash | FAIL     |          255
 unskipped                    | 808c3004 | generic.local.bash | PASS     |            0
 python_hello                 | 0f204030 | generic.local.bash | PASS     |            0
 pullImage_dockerhub          | bdc58bb5 | generic.local.bash | FAIL     |          255
 pullImage_sylabscloud        | 15e1ad7c | generic.local.bash | FAIL     |          255
 pullImage_shub               | 29f1483c | generic.local.bash | FAIL     |          255
 build_sif_from_dockerimage   | d5b90b3b | generic.local.bash | FAIL     |          255
 build_sandbox_image          | 5499bef6 | generic.local.bash | FAIL     |          255
 build_remoteimages           | 542a3dcf | generic.local.bash | FAIL     |          255
 timelimit_min_max            | 789c8a27 | generic.local.sh   | PASS     |            0
 timelimit_min                | 321e9740 | generic.local.sh   | PASS     |            0
 timelimit_max                | 1a3099b3 | generic.local.sh   | PASS     |            0
 timelimit_min_fail           | f62562c6 | generic.local.sh   | FAIL     |            0
 timelimit_max_fail           | c45eeb14 | generic.local.sh   | FAIL     |            0
 root_disk_usage              | 59d2409e | generic.local.bash | PASS     |            0
 systemd_default_target       | 7322cbde | generic.local.bash | FAIL     |            1
 hello_c                      | c84549f4 | generic.local.bash | PASS     |            0

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 30/50 Percentage: 60.000%
Failed Tests: 20/50 Percentage: 40.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_417au6zd.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.log

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

Control builds by 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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:07:20
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b tutorials/vars.yml --stage=parse

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------+
| Discovered Buildspecs                                                |
+======================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml |
+----------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+----------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml



name            description
--------------  -------------------------------
variables_bash  Declare 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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:07:21
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b tutorials/vars.yml --stage=build

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------+
| Discovered Buildspecs                                                |
+======================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml |
+----------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+----------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/vars.yml



name            description
--------------  -------------------------------
variables_bash  Declare shell variables in bash

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name           | id       | type   | executor           | tags          | testpath
----------------+----------+--------+--------------------+---------------+------------------------------------------------------------------------------------------------------------------------------
 variables_bash | d5da7167 | script | generic.local.bash | ['tutorials'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.bash/vars/variables_bash/4/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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:15
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b tutorials/invalid_buildspec_section.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+-------------------------------------------------------------------------------------------+
| Discovered Buildspecs                                                                     |
+===========================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/invalid_buildspec_section.yml |
+-------------------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1


Error Messages from Stage: Parse
________________________________________________________________________________
/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/invalid_buildspec_section.yml
No buildspecs to process because there are no valid buildspecs

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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:06:16
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b tutorials/invalid_executor.yml

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+----------------------------------------------------------------------------------+
| Discovered Buildspecs                                                            |
+==================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/invalid_executor.yml |
+----------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1


Error Messages from Stage: Parse
________________________________________________________________________________
/Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/invalid_executor.yml
No buildspecs to process because there are no valid buildspecs

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 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:07:22
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build -b tutorials/python-shell.yml --rebuild=3

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+------------------------------------------------------------------------------+
| Discovered Buildspecs                                                        |
+==============================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml |
+------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/python-shell.yml



name         description
-----------  ---------------------------------------
circle_area  Calculate circle of area given a radius
circle_area  Calculate circle of area given a radius
circle_area  Calculate circle of area given a radius

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name        | id       | type   | executor             | tags                    | testpath
-------------+----------+--------+----------------------+-------------------------+----------------------------------------------------------------------------------------------------------------------------------
 circle_area | 5d036a0f | script | generic.local.python | ['tutorials', 'python'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.python/python-shell/circle_area/2/circle_area_build.sh
 circle_area | cfa24b70 | script | generic.local.python | ['tutorials', 'python'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.python/python-shell/circle_area/3/circle_area_build.sh
 circle_area | 4ecab753 | script | generic.local.python | ['tutorials', 'python'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.python/python-shell/circle_area/4/circle_area_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name        | id       | executor             | status   |   returncode
-------------+----------+----------------------+----------+--------------
 circle_area | 5d036a0f | generic.local.python | PASS     |            0
 circle_area | cfa24b70 | generic.local.python | PASS     |            0
 circle_area | 4ecab753 | generic.local.python | PASS     |            0

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 3/3 Percentage: 100.000%
Failed Tests: 0/3 Percentage: 0.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_kcfnaann.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.log

The rebuild works with all options including: --buildspec, --exclude, --tags and --executors.

In the next example we rebuild tests by discovering all tags that contain fail.

$ buildtest build --tags fail --rebuild=2 


User:  siddiq90
Hostname:  DOE-7086392.local
Platform:  Darwin
Current Time:  2021/06/08 18:07:23
buildtest path: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest
buildtest version:  0.9.5
python path: /Users/siddiq90/.local/share/virtualenvs/buildtest-KLOcDrW0/bin/python
python version:  3.7.3
Test Directory:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests
Configuration File:  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest/settings/config.yml
Command: /Users/siddiq90/Documents/GitHubDesktop/buildtest/bin/buildtest build --tags fail --rebuild=2

+-------------------------------+
| Stage: Discovering Buildspecs |
+-------------------------------+ 

+---------------------------------------------------------------------------------+
| Discovered Buildspecs                                                           |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+
Discovered Buildspecs:  1
Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1

BREAKDOWN OF BUILDSPECS BY TAGS
----------------------------------
Detected Tag Names: ['fail']
+---------------------------------------------------------------------------------+
| fail                                                                            |
+=================================================================================+
| /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml |
+---------------------------------------------------------------------------------+



+---------------------------+
| Stage: Parsing Buildspecs |
+---------------------------+ 

 schemafile              | validstate   | buildspec
-------------------------+--------------+---------------------------------------------------------------------------------
 script-v1.0.schema.json | True         | /Users/siddiq90/Documents/GitHubDesktop/buildtest/tutorials/pass_returncode.yml



name                      description
------------------------  ---------------------------------------------------
exit1_fail                exit 1 by default is FAIL
exit1_pass                report exit 1 as PASS
returncode_list_mismatch  exit 2 failed since it failed to match returncode 1
returncode_int_match      exit 128 matches returncode 128
exit1_fail                exit 1 by default is FAIL
exit1_pass                report exit 1 as PASS
returncode_list_mismatch  exit 2 failed since it failed to match returncode 1
returncode_int_match      exit 128 matches returncode 128

+----------------------+
| Stage: Building Test |
+----------------------+ 

 name                     | id       | type   | executor         | tags                  | testpath
--------------------------+----------+--------+------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------
 exit1_fail               | 1a7453e9 | script | generic.local.sh | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/5/exit1_fail_build.sh
 exit1_pass               | f21dcd55 | script | generic.local.sh | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/6/exit1_pass_build.sh
 returncode_list_mismatch | 8f0ff4ff | script | generic.local.sh | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/5/returncode_list_mismatch_build.sh
 returncode_int_match     | ecc7ecca | script | generic.local.sh | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/6/returncode_int_match_build.sh
 exit1_fail               | 213e365c | script | generic.local.sh | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_fail/6/exit1_fail_build.sh
 exit1_pass               | 0dfdfb67 | script | generic.local.sh | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/exit1_pass/7/exit1_pass_build.sh
 returncode_list_mismatch | 2e09d72c | script | generic.local.sh | ['tutorials', 'fail'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_list_mismatch/6/returncode_list_mismatch_build.sh
 returncode_int_match     | f941e14f | script | generic.local.sh | ['tutorials', 'pass'] | /Users/siddiq90/Documents/GitHubDesktop/buildtest/var/tests/generic.local.sh/pass_returncode/returncode_int_match/7/returncode_int_match_build.sh



+---------------------+
| Stage: Running Test |
+---------------------+ 

 name                     | id       | executor         | status   |   returncode
--------------------------+----------+------------------+----------+--------------
 exit1_fail               | 1a7453e9 | generic.local.sh | FAIL     |            1
 exit1_pass               | f21dcd55 | generic.local.sh | PASS     |            1
 returncode_list_mismatch | 8f0ff4ff | generic.local.sh | FAIL     |            2
 returncode_int_match     | ecc7ecca | generic.local.sh | PASS     |          128
 exit1_fail               | 213e365c | generic.local.sh | FAIL     |            1
 exit1_pass               | 0dfdfb67 | generic.local.sh | PASS     |            1
 returncode_list_mismatch | 2e09d72c | generic.local.sh | FAIL     |            2
 returncode_int_match     | f941e14f | generic.local.sh | PASS     |          128

+----------------------+
| Stage: Test Summary  |
+----------------------+ 
    
Passed Tests: 4/8 Percentage: 50.000%
Failed Tests: 4/8 Percentage: 50.000%


Writing Logfile to: /var/folders/1m/_jjv09h17k37mkktwnmbkmj0002t_q/T/buildtest_w1u8yl1p.log
A copy of logfile can be found at $BUILDTEST_ROOT/buildtest.log -  /Users/siddiq90/Documents/GitHubDesktop/buildtest/buildtest.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/pass_returncode.yml --rebuild 51
usage: buildtest [options] [COMMANDS] build [-h] [-b BUILDSPEC] [-x EXCLUDE] [--tags TAGS] [-e EXECUTOR]
                                            [-s {parse,build}] [-t TESTDIR] [--rebuild REBUILD] [--settings SETTINGS]
buildtest [options] [COMMANDS] build: error: argument --rebuild: 51 must be a positive number between [1-50]

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?.

Keeping Stage Directory

buildtest will create setup the test environment in the stage directory where test will be executed. Once test is complete, buildtest will remove the stage directory. If you want to preserve the stage directory you can use buildtest build --keep-stage-dir, this is only useful if you want to run the test manually