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
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
Running those commands is the same as for Rialto.
To build UTs, Rialto dependencies are required. If you modified the Rialto public interface, you have to specify the Rialto branch with -b option:
python build_ut.py -b RIALTO_BRANCH_NAME
If you run UTs in your rialto-gstreamer directory earlier, before this step you probably need to remove the outdated headers:
rm -rf tests/third-party/include/*
tbd