First, install dependencies:
sudo apt-get install libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libyaml-cpp-dev sudo apt-get install libjsoncpp-dev sudo apt-get install libjson-perl libperlio-gzip-perl perl libgd-gd2-perl libcapture-tiny-perl libdatetime-perl sudo apt-get install protobuf-compiler sudo apt-get install clang-format-18 sudo apt-get install cppcheck sudo apt-get install -y doxygen sudo apt install -y graphviz sudo apt-get install build-essential sudo apt-get install cmake sudo apt-get install libyaml-cpp-dev sudo apt-get install valgrind sudo apt-get install libc6-dbg wget https://github.com/linux-test-project/lcov/releases/download/v2.0/lcov-2.0.tar.gz tar -xf lcov-2.0.tar.gz cd lcov-2.0 sudo make install
Running all UTs:
python3 build_ut.py
Useful options:
# Forward the output to file:python3 build_ut.py -f output_file.log # Configure which suite tests you would like to run # By not supplying this option, all test suites will be run python3 build_ut.py -s serveripc # Configure the googletest filter to use when running the tests # For more details, see: https://github.com/google/googletest/blob/main/docs/advanced.md#running-a-subset-of-the-tests python3 build_ut.py -gf TestFilter # e.g. python3 build_ut.py -gf GstGenericPlayerTest.*
Generate UT coverage report (it will appear in build directory):
python3 build_ut.py -cov
Run UTs with Valgrind to check memory leaks
python3 build_ut.py -val
Running all CTs:
python3 build_ct.py
Useful options/flags are the same as in build_ut.py script
Before the commit code has to be formatted. To do that, execute those commands:
find . -name "*.h" -not -path "./build/*" | xargs clang-format-18 -i --style=file find . -name "*.cpp" -not -path "./build/*" | xargs clang-format-18 -i --style=file
It will modify your local files to meet Rialto Coding Standards.
To check, if there are no Cpplint errors, execute this command:
python3 scripts/cpplint/cpplint.py --recursive .
To run Cppcheck, execute this command:
cppcheck -q -ibuild --enable=all --output-file=cppcheck_report.txt --std=c++17 --suppress-xml=cppcheck_suppressions.xml --library=googletest .
To build Rialto for x86-64 Linux machine, execute those commands:
cmake . -B build -DNATIVE_BUILD=ON -DRIALTO_BUILD_TYPE="Debug" make -C build
tbd
tbd