Build-time dependencies:
- boost
+ libboost (system, filesystem, program-options)
hiredis
+ rpm
+ valgrind
+ autoconf-archive
doxygen (optional)
Commands to install dependent packages in Fedora:
sudo dnf install boost-devel
sudo dnf install hiredis-devel
+ sudo dnf install rpm
+ sudo dnf install valgrind
+ sudo dnf install autoconf-archive
sudo dnf install doxygen
Commands to install dependent packages in Debian/Ubuntu:
- sudo apt install libboost-all-dev
+ sudo apt install libboost-filesystem-dev
+ sudo apt install libboost-program-options-dev
+ sudo apt install libboost-system-dev
sudo apt install libhiredis-dev
+ sudo apt install rpm
+ sudo apt install valgrind
+ sudo apt install autoconf-archive
sudo apt install doxygen
### Compilation in the source directory
make testrunner
./testrunner --help
+## Running unit tests with gcov
+
+Enable unit test gcov code coverage analysis by configuring gcov reporting
+directory:
+
+ ./configure --with-gcov-report-dir=DIR
+
+Directory can be an absolute path or a relative path to an SDL source root.
+Unit test build creates directory if it does not exist.
+
+Build and run unit tests with code coverage analysis:
+
+ make test_gcov
+
+After successful unit test run code coverage (.gcov) result files are in
+a directory, what was defined by '--with-gcov-report-dir' configure option.
+
+In addition, graphical gcov front-ends such as lcov can be used for coverage
+analysis:
+
+ lcov --directory tst/ --directory src --capture --output-file coverage.info
+ genhtml coverage.info --output-directory out
+
+Open the out/index.html using any web browser.
+
+## Docker Tests
+
+It's also possible to test SDL compilation, run unit tests and test building of
+rpm and Debian packages in a Docker:
+
+ docker build --no-cache -f docker_test/Dockerfile-Test -t sdltest:latest .
+
+If needed, ready rpm and Debian packages can be copied from Docker to host. In
+below example packages are copied to host's /tmp/sdltest-packages directory:
+
+ docker run -v /tmp/sdltest-packages:/export sdltest:latest /export
+
## Using SDL in application pod
SDL is not yet available in O-RAN-SC PackageCloud.io repository.