Running Test Across Multiple Executors

The executor property can support regular expression to search for compatible executors, this can be used if you want to run a test across multiple executors. In buildtest, we use re.fullmatch with the input pattern defined by executor property against a list of available executors defined in configuration file. You can retrieve a list of executors by running buildtest config executors list.

In example below we will run this test on generic.local.bash and generic.local.sh executor based on the regular expression.

buildspecs:
  multiple_executors:
    type: script
    executor: 'generic.local.(bash|sh)'
    description: run test with executor generic.local.bash and generic.local.sh executor
    tags: [tutorials]
    run: date

If we build this test, notice that there are two tests, one for each executor.

buildtest build -b tutorials/multi_executors/executor_regex_script.yml
$ buildtest build -b tutorials/multi_executors/executor_regex_script.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-22529915-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2023/11/13 01:35:52                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.7                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.8.18                                                   │
│ Configuration File: /tmp/tmptsqn67rj/config.yml                              │
│ Test Directory:     /tmp/tmptsqn67rj/var/tests                               │
│ Report File:        /tmp/tmptsqn67rj/var/report.json                         │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tu ║
║ torials/multi_executors/executor_regex_script.yml                            ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tutorials/multi_executors/executor_regex_script.yml: VALID
Total builder objects created: 2
                            Builders by type=script                             
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓
┃          ┃        ┃          ┃          ┃       ┃       ┃ descript ┃ buildsp ┃
┃ builder  ┃ type   ┃ executor ┃ compiler ┃ nodes ┃ procs ┃ ion      ┃ ecs     ┃
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩
│ multiple │ script │ generic. │ None     │ None  │ None  │ run test │ /home/d │
│ _executo │        │ local.ba │          │       │       │ with     │ ocs/che │
│ rs/f0b83 │        │ sh       │          │       │       │ executor │ ckouts/ │
│ c68      │        │          │          │       │       │ generic. │ readthe │
│          │        │          │          │       │       │ local.ba │ docs.or │
│          │        │          │          │       │       │ sh and   │ g/user_ │
│          │        │          │          │       │       │ generic. │ builds/ │
│          │        │          │          │       │       │ local.sh │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │ executor │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/execu │
│          │        │          │          │       │       │          │ tor_reg │
│          │        │          │          │       │       │          │ ex_scri │
│          │        │          │          │       │       │          │ pt.yml  │
├──────────┼────────┼──────────┼──────────┼───────┼───────┼──────────┼─────────┤
│ multiple │ script │ generic. │ None     │ None  │ None  │ run test │ /home/d │
│ _executo │        │ local.sh │          │       │       │ with     │ ocs/che │
│ rs/9ae51 │        │          │          │       │       │ executor │ ckouts/ │
│ eb2      │        │          │          │       │       │ generic. │ readthe │
│          │        │          │          │       │       │ local.ba │ docs.or │
│          │        │          │          │       │       │ sh and   │ g/user_ │
│          │        │          │          │       │       │ generic. │ builds/ │
│          │        │          │          │       │       │ local.sh │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │ executor │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/execu │
│          │        │          │          │       │       │          │ tor_reg │
│          │        │          │          │       │       │          │ ex_scri │
│          │        │          │          │       │       │          │ pt.yml  │
└──────────┴────────┴──────────┴──────────┴───────┴───────┴──────────┴─────────┘
──────────────────────────────── Building Test ─────────────────────────────────
multiple_executors/f0b83c68: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_regex_script/multiple_executors/f0b83c68
multiple_executors/f0b83c68: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_regex_script/multiple_executors/f0b83c68/stage
multiple_executors/f0b83c68: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_regex_script/multiple_executors/f0b83c68/multiple_executors_build.sh
multiple_executors/9ae51eb2: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_regex_script/multiple_executors/9ae51eb2
multiple_executors/9ae51eb2: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_regex_script/multiple_executors/9ae51eb2/stage
multiple_executors/9ae51eb2: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_regex_script/multiple_executors/9ae51eb2/multiple_executors_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
multiple_executors/9ae51eb2 does not have any dependencies adding test to queue
multiple_executors/f0b83c68 does not have any dependencies adding test to queue
   Builders Eligible to Run    
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Builder                     ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ multiple_executors/9ae51eb2 │
│ multiple_executors/f0b83c68 │
└─────────────────────────────┘
multiple_executors/9ae51eb2: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_regex_script/multiple_executors/9ae51eb2/stage
multiple_executors/9ae51eb2: Running Test via command: sh --norc --noprofile -eo pipefail multiple_executors_build.sh
multiple_executors/9ae51eb2 failed to submit job with returncode: 2
──────────────── Error Message for multiple_executors/9ae51eb2 ─────────────────
/usr/bin/sh: 0: Illegal option --

multiple_executors/9ae51eb2: Detected failure in running test, will attempt to retry test: 1 times
multiple_executors/9ae51eb2: Run - 1/1
multiple_executors/9ae51eb2: Running Test via command: sh --norc --noprofile -eo pipefail multiple_executors_build.sh
multiple_executors/9ae51eb2: failed to submit job with returncode: 2
multiple_executors/9ae51eb2: Test completed in 0.010246 seconds
multiple_executors/9ae51eb2: Test completed with returncode: 2
multiple_executors/9ae51eb2: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_regex_script/multiple_executors/9ae51eb2/multiple_executors.out
multiple_executors/9ae51eb2: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_regex_script/multiple_executors/9ae51eb2/multiple_executors.err
multiple_executors/f0b83c68: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_regex_script/multiple_executors/f0b83c68/stage
multiple_executors/f0b83c68: Running Test via command: bash --norc --noprofile -eo pipefail multiple_executors_build.sh
multiple_executors/f0b83c68: Test completed in 0.008996 seconds
multiple_executors/f0b83c68: Test completed with returncode: 0
multiple_executors/f0b83c68: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_regex_script/multiple_executors/f0b83c68/multiple_executors.out
multiple_executors/f0b83c68: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_regex_script/multiple_executors/f0b83c68/multiple_executors.err
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returncode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ multiple_exe │ generic.loca │ PASS   │ None None     │ 0          │ 0.008996 │
│ cutors/f0b83 │ l.bash       │        │ None          │            │          │
│ c68          │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ multiple_exe │ generic.loca │ FAIL   │ None None     │ 2          │ 0.010246 │
│ cutors/9ae51 │ l.sh         │        │ None          │            │          │
│ eb2          │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/2 Percentage: 50.000%
Failed Tests: 1/2 Percentage: 50.000%


Adding 2 test results to /tmp/tmptsqn67rj/var/report.json
Writing Logfile to: /tmp/tmptsqn67rj/var/logs/buildtest_5x04wb3e.log

Multiple Executors

Note

This feature is in active development

Note

This feature is compatible with type: script and type: spack.

The executors property can be used to define executor specific configuration for each test, currently this field can be used with vars, env , scheduler directives: sbatch, bsub, pbs, cobalt and cray burst buffer/data warp. The executors field is a JSON object that expects name of executor followed by property set per executor. In this next example, we define variables X, Y and environment SHELL based on executors generic.local.sh and generic.local.bash.

buildspecs:
  executors_vars_env_declaration:
    type: script
    executor: 'generic.local.(bash|sh)'
    description: Declaring env and vars by executors section
    tags: [tutorials]
    run: |
      echo "X:" $X
      echo "Y:" $Y
      echo $SHELL
    executors:
      generic.local.bash:
        vars:
          X: 1
          Y: 3
        env:
          SHELL: bash
      generic.local.sh:
        vars:
          X: 2
          Y: 4
        env:
          SHELL: sh

Let’s build this test.

buildtest build -b tutorials/multi_executors/executors_var_env_declaration.yml
$ buildtest build -b tutorials/multi_executors/executors_var_env_declaration.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-22529915-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2023/11/13 01:35:53                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.7                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.8.18                                                   │
│ Configuration File: /tmp/tmptsqn67rj/config.yml                              │
│ Test Directory:     /tmp/tmptsqn67rj/var/tests                               │
│ Report File:        /tmp/tmptsqn67rj/var/report.json                         │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tu ║
║ torials/multi_executors/executors_var_env_declaration.yml                    ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tutorials/multi_executors/executors_var_env_declaration.yml: VALID
Total builder objects created: 2
                            Builders by type=script                             
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓
┃          ┃        ┃          ┃          ┃       ┃       ┃ descript ┃ buildsp ┃
┃ builder  ┃ type   ┃ executor ┃ compiler ┃ nodes ┃ procs ┃ ion      ┃ ecs     ┃
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩
│ executor │ script │ generic. │ None     │ None  │ None  │ Declarin │ /home/d │
│ s_vars_e │        │ local.ba │          │       │       │ g env    │ ocs/che │
│ nv_decla │        │ sh       │          │       │       │ and vars │ ckouts/ │
│ ration/6 │        │          │          │       │       │ by       │ readthe │
│ f25e5cf  │        │          │          │       │       │ executor │ docs.or │
│          │        │          │          │       │       │ s        │ g/user_ │
│          │        │          │          │       │       │ section  │ builds/ │
│          │        │          │          │       │       │          │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │          │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/execu │
│          │        │          │          │       │       │          │ tors_va │
│          │        │          │          │       │       │          │ r_env_d │
│          │        │          │          │       │       │          │ eclarat │
│          │        │          │          │       │       │          │ ion.yml │
├──────────┼────────┼──────────┼──────────┼───────┼───────┼──────────┼─────────┤
│ executor │ script │ generic. │ None     │ None  │ None  │ Declarin │ /home/d │
│ s_vars_e │        │ local.sh │          │       │       │ g env    │ ocs/che │
│ nv_decla │        │          │          │       │       │ and vars │ ckouts/ │
│ ration/9 │        │          │          │       │       │ by       │ readthe │
│ 8c7b755  │        │          │          │       │       │ executor │ docs.or │
│          │        │          │          │       │       │ s        │ g/user_ │
│          │        │          │          │       │       │ section  │ builds/ │
│          │        │          │          │       │       │          │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │          │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/execu │
│          │        │          │          │       │       │          │ tors_va │
│          │        │          │          │       │       │          │ r_env_d │
│          │        │          │          │       │       │          │ eclarat │
│          │        │          │          │       │       │          │ ion.yml │
└──────────┴────────┴──────────┴──────────┴───────┴───────┴──────────┴─────────┘
──────────────────────────────── Building Test ─────────────────────────────────
executors_vars_env_declaration/6f25e5cf: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf
executors_vars_env_declaration/6f25e5cf: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/stage
executors_vars_env_declaration/6f25e5cf: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration_build.sh
executors_vars_env_declaration/98c7b755: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755
executors_vars_env_declaration/98c7b755: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/stage
executors_vars_env_declaration/98c7b755: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
executors_vars_env_declaration/98c7b755 does not have any dependencies adding test to queue
executors_vars_env_declaration/6f25e5cf does not have any dependencies adding test to queue
         Builders Eligible to Run          
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Builder                                 ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ executors_vars_env_declaration/6f25e5cf │
│ executors_vars_env_declaration/98c7b755 │
└─────────────────────────────────────────┘
executors_vars_env_declaration/6f25e5cf: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/stage
executors_vars_env_declaration/6f25e5cf: Running Test via command: bash --norc --noprofile -eo pipefail executors_vars_env_declaration_build.sh
executors_vars_env_declaration/6f25e5cf: Test completed in 0.00631 seconds
executors_vars_env_declaration/6f25e5cf: Test completed with returncode: 0
executors_vars_env_declaration/6f25e5cf: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration.out
executors_vars_env_declaration/6f25e5cf: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration.err
executors_vars_env_declaration/98c7b755: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/stage
executors_vars_env_declaration/98c7b755: Running Test via command: sh --norc --noprofile -eo pipefail executors_vars_env_declaration_build.sh
executors_vars_env_declaration/98c7b755 failed to submit job with returncode: 2
────────── Error Message for executors_vars_env_declaration/98c7b755 ───────────
/usr/bin/sh: 0: Illegal option --

executors_vars_env_declaration/98c7b755: Detected failure in running test, will attempt to retry test: 1 times
executors_vars_env_declaration/98c7b755: Run - 1/1
executors_vars_env_declaration/98c7b755: Running Test via command: sh --norc --noprofile -eo pipefail executors_vars_env_declaration_build.sh
executors_vars_env_declaration/98c7b755: failed to submit job with returncode: 2
executors_vars_env_declaration/98c7b755: Test completed in 0.010185 seconds
executors_vars_env_declaration/98c7b755: Test completed with returncode: 2
executors_vars_env_declaration/98c7b755: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration.out
executors_vars_env_declaration/98c7b755: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration.err
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returncode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ executors_va │ generic.loca │ FAIL   │ None None     │ 2          │ 0.010185 │
│ rs_env_decla │ l.sh         │        │ None          │            │          │
│ ration/98c7b │              │        │               │            │          │
│ 755          │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ executors_va │ generic.loca │ PASS   │ None None     │ 0          │ 0.00631  │
│ rs_env_decla │ l.bash       │        │ None          │            │          │
│ ration/6f25e │              │        │               │            │          │
│ 5cf          │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/2 Percentage: 50.000%
Failed Tests: 1/2 Percentage: 50.000%


Adding 2 test results to /tmp/tmptsqn67rj/var/report.json
Writing Logfile to: /tmp/tmptsqn67rj/var/logs/buildtest_vmsp5f9q.log

Now let’s look at the generated content of the test as follows. We will see that buildtest will set X=1, Y=3 and SHELL=bash for generic.local.bash and X=2, Y=4 and SHELL=sh for generic.local.sh

buildtest inspect query -t executors_vars_env_declaration/
$ buildtest inspect query -t executors_vars_env_declaration/
───── executors_vars_env_declaration/6f25e5cf-a7d0-4399-9d1c-81b92f32723e ──────
Executor: generic.local.bash
Description: Declaring env and vars by executors section
State: PASS
Returncode: 0
Runtime: 0.00631 sec
Starttime: 2023/11/13 01:35:53
Endtime: 2023/11/13 01:35:53
Command: bash --norc --noprofile -eo pipefail executors_vars_env_declaration_build.sh
Test Script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration.sh
Build Script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration_build.sh
Output File: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration.out
Error File: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_declaration/executors_vars_env_declaration/6f25e5cf/executors_vars_env_declaration.err
Log File: /tmp/tmptsqn67rj/var/logs/buildtest_vmsp5f9q.log
─ Test File: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executors_var_env_… ─
#!/usr/bin/bash                                                                 
set -eo pipefail                                                                
export SHELL="bash"                                                             
X="1"                                                                           
Y="3"                                                                           
# Content of run section                                                        
echo "X:" $X                                                                    
echo "Y:" $Y                                                                    
echo $SHELL                                                                     
                                                                                
───── executors_vars_env_declaration/98c7b755-6272-4062-b012-bb3ea34b7cb2 ──────
Executor: generic.local.sh
Description: Declaring env and vars by executors section
State: FAIL
Returncode: 2
Runtime: 0.010185 sec
Starttime: 2023/11/13 01:35:53
Endtime: 2023/11/13 01:35:53
Command: sh --norc --noprofile -eo pipefail executors_vars_env_declaration_build.sh
Test Script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration.sh
Build Script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration_build.sh
Output File: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration.out
Error File: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_declaration/executors_vars_env_declaration/98c7b755/executors_vars_env_declaration.err
Log File: /tmp/tmptsqn67rj/var/logs/buildtest_vmsp5f9q.log
─ Test File: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executors_var_env_de… ─
#!/usr/bin/sh                                                                   
                                                                                
export SHELL="sh"                                                               
X="2"                                                                           
Y="4"                                                                           
# Content of run section                                                        
echo "X:" $X                                                                    
echo "Y:" $Y                                                                    
echo $SHELL

Scheduler Directives

We can also define scheduler directives based on executor type, in this example we define sbatch property per executor type. Note that sbatch property in the executors section will override the sbatch property defined in the top-level file otherwise it will use the default.

buildspecs:
  executors_sbatch_declaration:
    type: script
    executor: 'generic.local.(bash|sh)'
    description: Declaring env and vars by executors section
    tags: [tutorials]
    run: hostname
    sbatch: ["-N 4"]
    executors:
      generic.local.bash:
        sbatch: ["-n 4", "-N 1", "-t 30"]
      generic.local.sh:
        sbatch: ["-n 8", "-N 1", "-t 60"]
buildtest build -b tutorials/multi_executors/executor_scheduler.yml
$ buildtest build -b tutorials/multi_executors/executor_scheduler.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-22529915-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2023/11/13 01:35:54                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.7                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.8.18                                                   │
│ Configuration File: /tmp/tmptsqn67rj/config.yml                              │
│ Test Directory:     /tmp/tmptsqn67rj/var/tests                               │
│ Report File:        /tmp/tmptsqn67rj/var/report.json                         │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tu ║
║ torials/multi_executors/executor_scheduler.yml                               ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tutorials/multi_executors/executor_scheduler.yml: VALID
Total builder objects created: 2
                            Builders by type=script                             
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓
┃          ┃        ┃          ┃          ┃       ┃       ┃ descript ┃ buildsp ┃
┃ builder  ┃ type   ┃ executor ┃ compiler ┃ nodes ┃ procs ┃ ion      ┃ ecs     ┃
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩
│ executor │ script │ generic. │ None     │ None  │ None  │ Declarin │ /home/d │
│ s_sbatch │        │ local.ba │          │       │       │ g env    │ ocs/che │
│ _declara │        │ sh       │          │       │       │ and vars │ ckouts/ │
│ tion/efb │        │          │          │       │       │ by       │ readthe │
│ 74733    │        │          │          │       │       │ executor │ docs.or │
│          │        │          │          │       │       │ s        │ g/user_ │
│          │        │          │          │       │       │ section  │ builds/ │
│          │        │          │          │       │       │          │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │          │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/execu │
│          │        │          │          │       │       │          │ tor_sch │
│          │        │          │          │       │       │          │ eduler. │
│          │        │          │          │       │       │          │ yml     │
├──────────┼────────┼──────────┼──────────┼───────┼───────┼──────────┼─────────┤
│ executor │ script │ generic. │ None     │ None  │ None  │ Declarin │ /home/d │
│ s_sbatch │        │ local.sh │          │       │       │ g env    │ ocs/che │
│ _declara │        │          │          │       │       │ and vars │ ckouts/ │
│ tion/d37 │        │          │          │       │       │ by       │ readthe │
│ f3bb2    │        │          │          │       │       │ executor │ docs.or │
│          │        │          │          │       │       │ s        │ g/user_ │
│          │        │          │          │       │       │ section  │ builds/ │
│          │        │          │          │       │       │          │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │          │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/execu │
│          │        │          │          │       │       │          │ tor_sch │
│          │        │          │          │       │       │          │ eduler. │
│          │        │          │          │       │       │          │ yml     │
└──────────┴────────┴──────────┴──────────┴───────┴───────┴──────────┴─────────┘
──────────────────────────────── Building Test ─────────────────────────────────
executors_sbatch_declaration/efb74733: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733
executors_sbatch_declaration/efb74733: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/stage
executors_sbatch_declaration/efb74733: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration_build.sh
executors_sbatch_declaration/d37f3bb2: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2
executors_sbatch_declaration/d37f3bb2: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/stage
executors_sbatch_declaration/d37f3bb2: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
executors_sbatch_declaration/d37f3bb2 does not have any dependencies adding test to queue
executors_sbatch_declaration/efb74733 does not have any dependencies adding test to queue
        Builders Eligible to Run         
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Builder                               ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ executors_sbatch_declaration/d37f3bb2 │
│ executors_sbatch_declaration/efb74733 │
└───────────────────────────────────────┘
executors_sbatch_declaration/d37f3bb2: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/stage
executors_sbatch_declaration/d37f3bb2: Running Test via command: sh --norc --noprofile -eo pipefail executors_sbatch_declaration_build.sh
executors_sbatch_declaration/d37f3bb2 failed to submit job with returncode: 2
─────────── Error Message for executors_sbatch_declaration/d37f3bb2 ────────────
/usr/bin/sh: 0: Illegal option --

executors_sbatch_declaration/d37f3bb2: Detected failure in running test, will attempt to retry test: 1 times
executors_sbatch_declaration/d37f3bb2: Run - 1/1
executors_sbatch_declaration/d37f3bb2: Running Test via command: sh --norc --noprofile -eo pipefail executors_sbatch_declaration_build.sh
executors_sbatch_declaration/d37f3bb2: failed to submit job with returncode: 2
executors_sbatch_declaration/d37f3bb2: Test completed in 0.009945 seconds
executors_sbatch_declaration/d37f3bb2: Test completed with returncode: 2
executors_sbatch_declaration/d37f3bb2: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration.out
executors_sbatch_declaration/d37f3bb2: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration.err
executors_sbatch_declaration/efb74733: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/stage
executors_sbatch_declaration/efb74733: Running Test via command: bash --norc --noprofile -eo pipefail executors_sbatch_declaration_build.sh
executors_sbatch_declaration/efb74733: Test completed in 0.006593 seconds
executors_sbatch_declaration/efb74733: Test completed with returncode: 0
executors_sbatch_declaration/efb74733: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration.out
executors_sbatch_declaration/efb74733: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration.err
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returncode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ executors_sb │ generic.loca │ PASS   │ None None     │ 0          │ 0.006593 │
│ atch_declara │ l.bash       │        │ None          │            │          │
│ tion/efb7473 │              │        │               │            │          │
│ 3            │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ executors_sb │ generic.loca │ FAIL   │ None None     │ 2          │ 0.009945 │
│ atch_declara │ l.sh         │        │ None          │            │          │
│ tion/d37f3bb │              │        │               │            │          │
│ 2            │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/2 Percentage: 50.000%
Failed Tests: 1/2 Percentage: 50.000%


Adding 2 test results to /tmp/tmptsqn67rj/var/report.json
Writing Logfile to: /tmp/tmptsqn67rj/var/logs/buildtest_nw5gyj20.log

If we inspect this test, we will see each each test have different #SBATCH directives for each test based on the sbatch property defined in the executors field.

buildtest inspect query -t executors_sbatch_declaration/
$ buildtest inspect query -t executors_sbatch_declaration/
────── executors_sbatch_declaration/d37f3bb2-58d9-4a71-82ca-9cb1e898e394 ───────
Executor: generic.local.sh
Description: Declaring env and vars by executors section
State: FAIL
Returncode: 2
Runtime: 0.009945 sec
Starttime: 2023/11/13 01:35:54
Endtime: 2023/11/13 01:35:54
Command: sh --norc --noprofile -eo pipefail executors_sbatch_declaration_build.sh
Test Script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration.sh
Build Script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration_build.sh
Output File: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration.out
Error File: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/executors_sbatch_declaration/d37f3bb2/executors_sbatch_declaration.err
Log File: /tmp/tmptsqn67rj/var/logs/buildtest_nw5gyj20.log
─ Test File: /tmp/tmptsqn67rj/var/tests/generic.local.sh/executor_scheduler/e… ─
#!/usr/bin/sh                                                                   
#SBATCH -n 8                                                                    
#SBATCH -N 1                                                                    
#SBATCH -t 60                                                                   
#SBATCH --job-name=executors_sbatch_declaration                                 
#SBATCH --output=executors_sbatch_declaration.out                               
#SBATCH --error=executors_sbatch_declaration.err                                
                                                                                
# Content of run section                                                        
hostname                                                                        
────── executors_sbatch_declaration/efb74733-5b53-4df2-8c5a-df1252d9379d ───────
Executor: generic.local.bash
Description: Declaring env and vars by executors section
State: PASS
Returncode: 0
Runtime: 0.006593 sec
Starttime: 2023/11/13 01:35:54
Endtime: 2023/11/13 01:35:54
Command: bash --norc --noprofile -eo pipefail executors_sbatch_declaration_build.sh
Test Script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration.sh
Build Script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration_build.sh
Output File: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration.out
Error File: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler/executors_sbatch_declaration/efb74733/executors_sbatch_declaration.err
Log File: /tmp/tmptsqn67rj/var/logs/buildtest_nw5gyj20.log
─ Test File: /tmp/tmptsqn67rj/var/tests/generic.local.bash/executor_scheduler… ─
#!/usr/bin/bash                                                                 
#SBATCH -n 4                                                                    
#SBATCH -N 1                                                                    
#SBATCH -t 30                                                                   
#SBATCH --job-name=executors_sbatch_declaration                                 
#SBATCH --output=executors_sbatch_declaration.out                               
#SBATCH --error=executors_sbatch_declaration.err                                
set -eo pipefail                                                                
# Content of run section                                                        
hostname

Cray Burst Buffer and Data Warp

You can also define BB and DW directives in the executors field to override cray burst buffer and data warp settings per executor. buildtest will use the fields BB and DW and insert the #BB and #DW directives in the job script. For more details see Cray Burst Buffer & Data Warp.

buildspecs:
  create_burst_buffer_executors:
    type: script
    executor: "generic.local.(sh|bash)"
    sbatch: ["-N 1", "-t 10", "-C knl"]
    description: Create a burst buffer for multiple executors
    tags: [jobs]
    executors:
      generic.local.sh:
        BB:
          - create_persistent name=buffer1 capacity=10GB access_mode=striped type=scratch
        DW:
          - persistentdw name=buffer1
      generic.local.bash:
        BB:
        - create_persistent name=buffer2 capacity=10GB access_mode=striped type=scratch
        DW:
          - persistentdw name=buffer2
    run: hostname

Custom Status by Executor

The status and metrics field are supported in executors which can be defined within the named executor. In this next example, we will define executor generic.local.bash to match for returncode 0 or 2 while second test will use executor generic.local.sh to match returncode of 1.

buildspecs:
  status_returncode_by_executors:
    type: script
    executor: "generic.local.(bash|sh)"
    description: define status per executor type.
    tags: [tutorials]
    run: exit 0
    executors:
      generic.local.bash:
        status:
          returncode: [0, 2]
      generic.local.sh:
        status:
          returncode: 1

Now let’s run this test and we will see the test using executor generic.local.sh will fail because we have a returncode mismatch even though both tests got a 0 returncode as its actual value.

buildtest build -b tutorials/multi_executors/status_by_executors.yml
$ buildtest build -b tutorials/multi_executors/status_by_executors.yml
╭───────────────────────────── buildtest summary ──────────────────────────────╮
│                                                                              │
│ User:               docs                                                     │
│ Hostname:           build-22529915-project-280831-buildtest                  │
│ Platform:           Linux                                                    │
│ Current Time:       2023/11/13 01:35:55                                      │
│ buildtest path:     /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ buildtest version:  1.7                                                      │
│ python path:        /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│ python version:     3.8.18                                                   │
│ Configuration File: /tmp/tmptsqn67rj/config.yml                              │
│ Test Directory:     /tmp/tmptsqn67rj/var/tests                               │
│ Report File:        /tmp/tmptsqn67rj/var/report.json                         │
│ Command:            /home/docs/checkouts/readthedocs.org/user_builds/buildte │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────  Discovering Buildspecs ────────────────────────────
                             Discovered buildspecs                              
╔══════════════════════════════════════════════════════════════════════════════╗
║ buildspec                                                                    ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ /home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tu ║
║ torials/multi_executors/status_by_executors.yml                              ║
╚══════════════════════════════════════════════════════════════════════════════╝


Total Discovered Buildspecs:  1
Total Excluded Buildspecs:  0
Detected Buildspecs after exclusion:  1
────────────────────────────── Parsing Buildspecs ──────────────────────────────
Valid Buildspecs: 1
Invalid Buildspecs: 0
/home/docs/checkouts/readthedocs.org/user_builds/buildtest/checkouts/v1.7/tutorials/multi_executors/status_by_executors.yml: VALID
Total builder objects created: 2
                            Builders by type=script                             
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓
┃          ┃        ┃          ┃          ┃       ┃       ┃ descript ┃ buildsp ┃
┃ builder  ┃ type   ┃ executor ┃ compiler ┃ nodes ┃ procs ┃ ion      ┃ ecs     ┃
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩
│ status_r │ script │ generic. │ None     │ None  │ None  │ define   │ /home/d │
│ eturncod │        │ local.ba │          │       │       │ status   │ ocs/che │
│ e_by_exe │        │ sh       │          │       │       │ per      │ ckouts/ │
│ cutors/2 │        │          │          │       │       │ executor │ readthe │
│ 36f7887  │        │          │          │       │       │ type.    │ docs.or │
│          │        │          │          │       │       │          │ g/user_ │
│          │        │          │          │       │       │          │ builds/ │
│          │        │          │          │       │       │          │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │          │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/statu │
│          │        │          │          │       │       │          │ s_by_ex │
│          │        │          │          │       │       │          │ ecutors │
│          │        │          │          │       │       │          │ .yml    │
├──────────┼────────┼──────────┼──────────┼───────┼───────┼──────────┼─────────┤
│ status_r │ script │ generic. │ None     │ None  │ None  │ define   │ /home/d │
│ eturncod │        │ local.sh │          │       │       │ status   │ ocs/che │
│ e_by_exe │        │          │          │       │       │ per      │ ckouts/ │
│ cutors/5 │        │          │          │       │       │ executor │ readthe │
│ db183a9  │        │          │          │       │       │ type.    │ docs.or │
│          │        │          │          │       │       │          │ g/user_ │
│          │        │          │          │       │       │          │ builds/ │
│          │        │          │          │       │       │          │ buildte │
│          │        │          │          │       │       │          │ st/chec │
│          │        │          │          │       │       │          │ kouts/v │
│          │        │          │          │       │       │          │ 1.7/tut │
│          │        │          │          │       │       │          │ orials/ │
│          │        │          │          │       │       │          │ multi_e │
│          │        │          │          │       │       │          │ xecutor │
│          │        │          │          │       │       │          │ s/statu │
│          │        │          │          │       │       │          │ s_by_ex │
│          │        │          │          │       │       │          │ ecutors │
│          │        │          │          │       │       │          │ .yml    │
└──────────┴────────┴──────────┴──────────┴───────┴───────┴──────────┴─────────┘
──────────────────────────────── Building Test ─────────────────────────────────
status_returncode_by_executors/236f7887: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/236f7887
status_returncode_by_executors/236f7887: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/236f7887/stage
status_returncode_by_executors/236f7887: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/236f7887/status_returncode_by_executors_build.sh
status_returncode_by_executors/5db183a9: Creating test directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/5db183a9
status_returncode_by_executors/5db183a9: Creating the stage directory: /tmp/tmptsqn67rj/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/5db183a9/stage
status_returncode_by_executors/5db183a9: Writing build script: /tmp/tmptsqn67rj/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/5db183a9/status_returncode_by_executors_build.sh
──────────────────────────────── Running Tests ─────────────────────────────────
Spawning 1 processes for processing builders
───────────────────────────────── Iteration 1 ──────────────────────────────────
status_returncode_by_executors/5db183a9 does not have any dependencies adding test to queue
status_returncode_by_executors/236f7887 does not have any dependencies adding test to queue
         Builders Eligible to Run          
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Builder                                 ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ status_returncode_by_executors/5db183a9 │
│ status_returncode_by_executors/236f7887 │
└─────────────────────────────────────────┘
status_returncode_by_executors/5db183a9: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/5db183a9/stage
status_returncode_by_executors/5db183a9: Running Test via command: sh --norc --noprofile -eo pipefail status_returncode_by_executors_build.sh
status_returncode_by_executors/5db183a9 failed to submit job with returncode: 2
────────── Error Message for status_returncode_by_executors/5db183a9 ───────────
/usr/bin/sh: 0: Illegal option --

status_returncode_by_executors/5db183a9: Detected failure in running test, will attempt to retry test: 1 times
status_returncode_by_executors/5db183a9: Run - 1/1
status_returncode_by_executors/5db183a9: Running Test via command: sh --norc --noprofile -eo pipefail status_returncode_by_executors_build.sh
status_returncode_by_executors/5db183a9: failed to submit job with returncode: 2
status_returncode_by_executors/5db183a9: Test completed in 0.010188 seconds
status_returncode_by_executors/5db183a9: Test completed with returncode: 2
status_returncode_by_executors/5db183a9: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/5db183a9/status_returncode_by_executors.out
status_returncode_by_executors/5db183a9: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.sh/status_by_executors/status_returncode_by_executors/5db183a9/status_returncode_by_executors.err
status_returncode_by_executors/5db183a9: Checking returncode - 2 is matched in list [1]
status_returncode_by_executors/236f7887: Current Working Directory : /tmp/tmptsqn67rj/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/236f7887/stage
status_returncode_by_executors/236f7887: Running Test via command: bash --norc --noprofile -eo pipefail status_returncode_by_executors_build.sh
status_returncode_by_executors/236f7887: Test completed in 0.005968 seconds
status_returncode_by_executors/236f7887: Test completed with returncode: 0
status_returncode_by_executors/236f7887: Writing output file -  /tmp/tmptsqn67rj/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/236f7887/status_returncode_by_executors.out
status_returncode_by_executors/236f7887: Writing error file - /tmp/tmptsqn67rj/var/tests/generic.local.bash/status_by_executors/status_returncode_by_executors/236f7887/status_returncode_by_executors.err
status_returncode_by_executors/236f7887: Checking returncode - 0 is matched in list [0, 2]
                                  Test Summary                                  
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
┃              ┃              ┃        ┃ checks        ┃            ┃          ┃
┃              ┃              ┃        ┃ (ReturnCode,  ┃            ┃          ┃
┃              ┃              ┃        ┃ Regex,        ┃            ┃          ┃
┃ builder      ┃ executor     ┃ status ┃ Runtime)      ┃ returncode ┃ runtime  ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
│ status_retur │ generic.loca │ PASS   │ True None     │ 0          │ 0.005968 │
│ ncode_by_exe │ l.bash       │        │ None          │            │          │
│ cutors/236f7 │              │        │               │            │          │
│ 887          │              │        │               │            │          │
├──────────────┼──────────────┼────────┼───────────────┼────────────┼──────────┤
│ status_retur │ generic.loca │ FAIL   │ False None    │ 2          │ 0.010188 │
│ ncode_by_exe │ l.sh         │        │ None          │            │          │
│ cutors/5db18 │              │        │               │            │          │
│ 3a9          │              │        │               │            │          │
└──────────────┴──────────────┴────────┴───────────────┴────────────┴──────────┘



Passed Tests: 1/2 Percentage: 50.000%
Failed Tests: 1/2 Percentage: 50.000%


Adding 2 test results to /tmp/tmptsqn67rj/var/report.json
Writing Logfile to: /tmp/tmptsqn67rj/var/logs/buildtest_qg3plrsb.log