#!/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
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(fastdds REQUIRED)
find_package(GTest REQUIRED)
include_directories(src/cpp thirdparty/filewatch)

add_subdirectory(test/blackbox)
add_subdirectory(test/feature)
add_subdirectory(test/dds/communication)
add_subdirectory(test/dds/discovery)
EOF
echo "[+] Running CMake"
mkdir _build
cd _build
cmake -DCMAKE_BUILD_TYPE=Release -DDART_TESTING_TIMEOUT=60 -DRTPS_API_TESTS=ON -DFASTDDS_PIM_API_TESTS=OFF ..
echo "[+] Building tests"
cmake --build . -j$(nproc) --verbose
echo "[+] Running tests"
ctest --output-on-failure -E 'TwoPublishersCommunicationReliable|statefulwriter_wrong_permissions_properly_cleaned_up|InconsistentAcknackReceived|stress'

