Running Unit Tests

General

There are some rudimentary unit tests available. The coverage is not high, but they can still be useful. The methods to invoke them depends on platform.

On all platform the tests are built using the build target test

Linux

After a successful build of the overall program, the unit tests are created using make test.

The simplest way to run the test is from the build directory:

$ cd build
$ make test
$ make run-tests

This provides a good overview over all tests available and the results.

If there is a need of more fine-grained operation, the basic tests are available in the build/test directory. Here, there is a number of executables like tests, rest-tests and ipc-tests.

Each of these can be run and will then provide more detailed output. For example tests --help provides info on available command line options. There is for example options to only run a single test, avoiding certain test(s), etc.

Windows

After a successful build of the program, tests are built by building the test target. This could (probably) be done in VS Studio or on the command line:

% cd build
% cmake --build . --config Release  --target test

The tests are created in a directory like build\test\<config>, for example build\test\Release. To be able to run, libraries needs to be installed into the same directory using something like

% cd build
% cmake -DCMAKE_INSTALL_PREFIX=C:/Users/al/src/OpenCPN/build/test/Release ..
% cmake --install .

The CMAKE_INSTALL_PREFIX path is the absolute path to the test directory; obviously this will be different for every user.

With the libraries in place the test overview could be run like

% cd build
% cmake --build . --config Release --target run-tests

If there is a need to get more detailed feedback the basic test executables like rest-tests, ipc-tests and tests can be run from the installation directory. See Linux above.

MacOS

TBD