#!/bin/bash
set -e
echo "[+] Copying and linking files from source tree to \$AUTOPKGTEST_TMP"
for dir in cmake src test thirdparty
do
	ln -s "$PWD/$dir" "$AUTOPKGTEST_TMP/$dir"
done
cp debian/build-snakeoil-certs "$AUTOPKGTEST_TMP"
cd "$AUTOPKGTEST_TMP"
echo "[+] Generating boilerplate CMakeLists.txt"
cat > CMakeLists.txt <<EOF
cmake_minimum_required(VERSION 3.18)
set(CMAKE_MODULE_PATH "\${CMAKE_SOURCE_DIR}/cmake/modules")
project(fastrtps_test LANGUAGES C CXX)
include(CTest)
find_package(fastrtps REQUIRED)
find_package(GTest REQUIRED)
include(\${PROJECT_SOURCE_DIR}/cmake/common/gtest.cmake)
include_directories(src/cpp thirdparty/filewatch)

add_subdirectory(test/blackbox)
add_subdirectory(test/communication)
add_subdirectory(test/xtypes)
add_subdirectory(test/dds/communication)
add_subdirectory(test/dds/discovery)
EOF
echo "[+] Generating snakeoil certificates"
./build-snakeoil-certs
echo "[+] Running CMake"
mkdir _build
cd _build
cmake -DCMAKE_BUILD_TYPE=Release -DGTEST_INDIVIDUAL=ON -DDART_TESTING_TIMEOUT=60 -DRTPS_API_TESTS=ON -DFASTRTPS_API_TESTS=OFF -DFASTDDS_PIM_API_TESTS=OFF ..
echo "[+] Building tests"
make -j$(nproc)
echo "[+] Running tests"
ctest --output-on-failure --repeat until-pass:2

