test: add unit testing for point.h to CI workflow
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(arc-core)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
enable_testing()
|
||||
add_subdirectory(test)
|
||||
+30
-2
@@ -1,4 +1,5 @@
|
||||
FROM ubuntu:24.04
|
||||
# Base builder
|
||||
FROM ubuntu:24.04 AS base
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@@ -32,6 +33,33 @@ RUN make install
|
||||
|
||||
WORKDIR /app
|
||||
COPY src/occt/ ./src
|
||||
COPY unit-test/occt/ ./unit-test
|
||||
COPY test/occt/ ./test
|
||||
|
||||
RUN cmake -S src -B build -DCMAKE_PREFIX_PATH=/usr/local && cmake --build build
|
||||
|
||||
COPY test/occt/ ./test
|
||||
|
||||
# Unit test runner
|
||||
FROM ubuntu:24.04 AS unit-testing
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
cmake \
|
||||
git \
|
||||
catch2 \
|
||||
xvfb \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base /usr/local /usr/local
|
||||
COPY --from=base /app/build /app/build
|
||||
COPY --from=base /app/src /app/src
|
||||
COPY --from=base /app/test /app/test
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN cmake -S test -B build/tests -DCMAKE_PREFIX_PATH=/usr/local
|
||||
RUN cmake --build build/tests
|
||||
|
||||
CMD ["ctest", "--test-dir", "build/tests", "-V"]
|
||||
|
||||
@@ -6,6 +6,12 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_PATH="$(cd "$SCRIPT_DIR/../../" && pwd)"
|
||||
DOCKERFILE_PATH="$SCRIPT_DIR/../occt.Dockerfile"
|
||||
|
||||
# Check for --unit-testing argument
|
||||
RUN_UNIT_TESTS=false
|
||||
if [[ "${1-}" == "--unit-testing" ]]; then
|
||||
RUN_UNIT_TESTS=true
|
||||
fi
|
||||
|
||||
echo "Building image..."
|
||||
if ! docker build -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"; then
|
||||
echo "Image build failed." >&2
|
||||
@@ -17,3 +23,11 @@ if ! docker run --rm "$IMAGE_NAME" ls /usr/local/bin; then
|
||||
echo "Listing /usr/local/bin failed." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$RUN_UNIT_TESTS" = true ]; then
|
||||
echo "Running unit tests..."
|
||||
if ! docker run --rm "$IMAGE_NAME" ctest --test-dir /app/build/unit-tests -V; then
|
||||
echo "Unit tests failed." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
set(project_name "arc-core-occt")
|
||||
project(${project_name})
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(OpenCASCADE REQUIRED)
|
||||
|
||||
add_library(occt SHARED
|
||||
./point.cpp
|
||||
)
|
||||
|
||||
target_include_directories(occt PUBLIC ${OpenCASCADE_INCLUDE_DIR})
|
||||
target_link_libraries(occt PUBLIC ${OpenCASCADE_LIBRARIES})
|
||||
@@ -0,0 +1,27 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project(arc-core-test)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Catch2 3 REQUIRED)
|
||||
|
||||
add_executable(tests
|
||||
/app/test/point-test.cpp
|
||||
/app/src/point.cpp
|
||||
)
|
||||
|
||||
target_include_directories(tests PRIVATE
|
||||
/app/src/include
|
||||
/usr/local/include/opencascade
|
||||
)
|
||||
|
||||
target_link_libraries(tests PRIVATE
|
||||
Catch2::Catch2WithMain
|
||||
/usr/local/lib/libocct.so
|
||||
)
|
||||
|
||||
include(CTest)
|
||||
include(Catch)
|
||||
|
||||
catch_discover_tests(tests)
|
||||
Reference in New Issue
Block a user