Back to overview

Developer Quick Start

Check out the MOOS-IvP branch containing your changes, build it, then use this repository to run a focused CTest group and its mission harness.

1. Build

Build the edited MOOS-IvP branch and the tests

Build both

cd /path/to/moos-ivp
git switch my-branch
./build.sh

cd /path/to/moos-ivp-cicd-testing
./build.sh

2. Test

Example: editing pEchoVar

Run the focused CTest group, then the full pEchoVar harness.

Run the pechovar CTest group

cd tests/cpp
./ctests.sh --pechovar

Run ./ctests.sh with no family option to test everything, or use --help to list the available families.

The first focused run may configure and build the selected CTest executables before testing. Later runs rebuild incrementally.

Example success output

100% tests passed, 0 tests failed out of 31

Run the full pEchoVar harness

cd harnesses/pechovar_harnesses/H01-pechovar_unit
./zlaunch.sh 10

Example success output

results=.../results.txt failures=0 total=33 jobs=1 elapsed_seconds=...

Optional build matrix

Check the native and Linux builds

Run the normal build on this computer, then compile the same local MOOS-IvP checkout for each supported Linux and compiler combination.

cd /path/to/moos-ivp-cicd-testing
./build-matrix.sh

Example success output

Build matrix result: 5 passed, 0 failed

Run ./build-matrix.sh --help for native-only testing, focused Linux targets, and compatibility builds.

Harness reference

Common launch options

Harness defaults vary with the mission. Run ./zlaunch.sh --help for the exact values and case names supported by the harness you are using.

Option Typical default Purpose
[time_warp]10Set the MOOS time warp.
--case=NAMEAll casesRun one named case.
--jobs=N1Run cases concurrently.
--max_time=SECONDSHarness-specificOverride the per-case timeout.
--port_base=NHarness-specificMove the run to another MOOS port range.
--port_stride=NHarness-specificChange spacing between case port blocks, when supported.
--log=minimal|fullminimalReduce CPU usage with minimal logging, or capture full logs for debugging.
--keep_workdirsOffPreserve isolated case directories after the run.
--gui / --nogui--noguiEnable or disable the mission viewer.
--just_make, -jOffGenerate mission files without launching.
--verbose, -vOffShow rolling scheduler activity.
--help, -hList the harness options and case names.

Rerun a failure with full diagnostics

./zlaunch.sh --case=CASE --log=full --keep_workdirs 10

--log=full restores comprehensive logging. --keep_workdirs retains the generated mission and logs; the final workdirs=... field gives their location.

Some harnesses also provide specialized selectors such as --group=NAME or performance timing profiles such as --profile=local|ci.

Result

Confirm the result

CTest passes with 100% tests passed. The harness passes with failures=0. The optional build matrix passes with 0 failed. Open results.txt only when you want the per-case harness details.