mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-03-30 17:16:22 +03:00
Configuration - Add support for Google Test framework in CMake #443
Enhance Google Test integration and add support for test projects. Each Toolkit have GTests folder with place for new tests. For adding new tests needs to extend FILES.cmake files in each GTests folder. The single executable is created for each toolkit with all tests. The tests grouped by module and toolkit with :: as separator. Added option to download GTest by Cmake if not found. Add GTest for PLib_JacobiPolynomial with comprehensive test cases Add GTest for TCollection_AsciiString and TCollection_ExtendedString Set C++ standard to C++14 for GTest compatibility if required
This commit is contained in:
parent
986af180e6
commit
876ccbe977
145
.github/actions/run-gtest/action.yml
vendored
Normal file
145
.github/actions/run-gtest/action.yml
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
name: 'Run GTest Validation'
|
||||
description: 'Execute GTest suite and validate results'
|
||||
|
||||
inputs:
|
||||
platform:
|
||||
description: 'Platform (windows, macos, linux)'
|
||||
required: true
|
||||
compiler:
|
||||
description: 'Compiler (msvc, clang, gcc)'
|
||||
required: true
|
||||
install-artifact-name:
|
||||
description: 'Name of the artifact containing the installed files'
|
||||
required: true
|
||||
artifact-suffix:
|
||||
description: 'Suffix for the GTest results artifact name'
|
||||
required: true
|
||||
default: 'x64'
|
||||
|
||||
outputs:
|
||||
has-failures:
|
||||
description: 'Whether any tests failed'
|
||||
value: ${{ steps.check-failures.outputs.has_failures }}
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Download and extract install directory
|
||||
uses: actions/download-artifact@v4.1.7
|
||||
with:
|
||||
name: ${{ inputs.install-artifact-name }}
|
||||
path: install
|
||||
|
||||
- name: Download and extract 3rdparty dependencies for Windows
|
||||
if: inputs.platform == 'windows'
|
||||
shell: pwsh
|
||||
run: |
|
||||
Invoke-WebRequest -Uri https://github.com/Open-Cascade-SAS/OCCT/releases/download/V7_9_0_beta1/3rdparty-vc14-64.zip -OutFile 3rdparty-vc14-64.zip
|
||||
Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath .
|
||||
Remove-Item 3rdparty-vc14-64.zip
|
||||
|
||||
- name: Install macOS dependencies
|
||||
if: inputs.platform == 'macos'
|
||||
shell: bash
|
||||
run: |
|
||||
brew update
|
||||
brew install tcl-tk tbb gl2ps xerces-c \
|
||||
libxmu libxi libxft libxpm \
|
||||
glew freeimage draco glfw
|
||||
|
||||
- name: Install Linux dependencies
|
||||
if: inputs.platform == 'linux'
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake clang make libbtbb-dev libx11-dev libglu1-mesa-dev tcllib tcl-thread tcl libvtk9-dev libopenvr-dev libdraco-dev libfreeimage-dev libegl1-mesa-dev libgles2-mesa-dev libfreetype-dev
|
||||
|
||||
- name: Setup Xvfb and Mesa for Linux
|
||||
if: inputs.platform == 'linux'
|
||||
uses: ./.github/actions/setup-xvfb-mesa
|
||||
|
||||
- name: Set execute permissions on Unix platforms
|
||||
if: inputs.platform != 'windows'
|
||||
shell: bash
|
||||
run: |
|
||||
chmod +x install/bin/OpenCascadeGTest
|
||||
|
||||
- name: Run OpenCascadeGTest on Windows
|
||||
if: inputs.platform == 'windows'
|
||||
id: run-gtest-windows
|
||||
shell: cmd
|
||||
run: |
|
||||
cd install
|
||||
call env.bat ${{ inputs.compiler == 'msvc' && 'vc14' || 'clang' }} win64 release
|
||||
cd bin
|
||||
set GTEST_OUTPUT=""
|
||||
OpenCascadeGTest.exe --gtest_output=xml:gtest_results.xml > gtest_output.log 2>&1
|
||||
type gtest_output.log
|
||||
exit /b 0
|
||||
|
||||
- name: Run OpenCascadeGTest on Unix platforms
|
||||
if: inputs.platform != 'windows'
|
||||
id: run-gtest-unix
|
||||
shell: bash
|
||||
env:
|
||||
DISPLAY: ${{ inputs.platform == 'linux' && ':99' || '' }}
|
||||
LIBGL_ALWAYS_SOFTWARE: 1
|
||||
run: |
|
||||
cd install/bin
|
||||
source env.sh
|
||||
./OpenCascadeGTest --gtest_output=xml:gtest_results.xml > gtest_output.log 2>&1
|
||||
cat gtest_output.log
|
||||
|
||||
- name: Upload GTest results
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
with:
|
||||
name: gtest-results-${{ inputs.platform }}-${{ inputs.compiler }}-${{ inputs.artifact-suffix }}
|
||||
path: |
|
||||
install/bin/gtest_results.xml
|
||||
install/bin/gtest_output.log
|
||||
retention-days: 15
|
||||
|
||||
- name: Check for test failures on Windows
|
||||
if: inputs.platform == 'windows'
|
||||
id: check-failures-windows
|
||||
shell: pwsh
|
||||
run: |
|
||||
cd install/bin
|
||||
$log = Get-Content "gtest_output.log" -Raw
|
||||
if ($log -match "\[\s+FAILED\s+\]") {
|
||||
Write-Error "GTest failures detected in the output."
|
||||
echo "has_failures=true" >> $env:GITHUB_OUTPUT
|
||||
} else {
|
||||
Write-Output "No GTest failures detected."
|
||||
echo "has_failures=false" >> $env:GITHUB_OUTPUT
|
||||
}
|
||||
|
||||
- name: Check for test failures on Unix
|
||||
if: inputs.platform != 'windows'
|
||||
id: check-failures-unix
|
||||
shell: bash
|
||||
run: |
|
||||
cd install/bin
|
||||
if grep -q "\[ FAILED \]" gtest_output.log; then
|
||||
echo "::error::GTest failures detected in the output."
|
||||
echo "has_failures=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "No GTest failures detected."
|
||||
echo "has_failures=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Set combined output
|
||||
id: check-failures
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ inputs.platform }}" == "windows" ]; then
|
||||
echo "has_failures=${{ steps.check-failures-windows.outputs.has_failures }}" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "has_failures=${{ steps.check-failures-unix.outputs.has_failures }}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Fail job if tests failed
|
||||
if: steps.check-failures.outputs.has_failures == 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
echo "::error::GTest failures detected"
|
||||
exit 1
|
148
.github/workflows/build-and-test-multiplatform.yml
vendored
148
.github/workflows/build-and-test-multiplatform.yml
vendored
@ -21,13 +21,13 @@ jobs:
|
||||
clang-format:
|
||||
name: Check code formatting
|
||||
runs-on: windows-2022
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
- name: Run clang-format check
|
||||
uses: ./.github/actions/clang-format-check
|
||||
with:
|
||||
@ -95,8 +95,9 @@ jobs:
|
||||
-D USE_TBB=ON `
|
||||
-D USE_RAPIDJSON=ON `
|
||||
-D USE_OPENGL=ON `
|
||||
-D CMAKE_CXX_FLAGS="/W4 /WX" `
|
||||
-D CMAKE_C_FLAGS="/W4 /WX" ..
|
||||
-D BUILD_GTEST=ON `
|
||||
-D BUILD_CPP_STANDARD=C++14 `
|
||||
-D INSTALL_GTEST=ON ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build OCCT
|
||||
@ -170,6 +171,9 @@ jobs:
|
||||
-D USE_TBB=ON `
|
||||
-D USE_RAPIDJSON=ON `
|
||||
-D USE_OPENGL=ON `
|
||||
-D BUILD_GTEST=ON `
|
||||
-D BUILD_CPP_STANDARD=C++14 `
|
||||
-D INSTALL_GTEST=ON `
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra -Wno-unknown-warning-option" `
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra -Wno-unknown-warning-option" ..
|
||||
shell: pwsh
|
||||
@ -224,6 +228,9 @@ jobs:
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D BUILD_GTEST=ON \
|
||||
-D BUILD_CPP_STANDARD=C++14 \
|
||||
-D INSTALL_GTEST=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" ..
|
||||
|
||||
@ -277,6 +284,9 @@ jobs:
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D BUILD_GTEST=ON \
|
||||
-D BUILD_CPP_STANDARD=C++14 \
|
||||
-D INSTALL_GTEST=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" ..
|
||||
|
||||
@ -333,6 +343,9 @@ jobs:
|
||||
-D USE_TBB=OFF \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D BUILD_GTEST=ON \
|
||||
-D BUILD_CPP_STANDARD=C++14 \
|
||||
-D INSTALL_GTEST=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" ..
|
||||
|
||||
@ -388,7 +401,10 @@ jobs:
|
||||
-D USE_VTK=ON \
|
||||
-D USE_TBB=OFF \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON ..
|
||||
-D USE_OPENGL=ON \
|
||||
-D BUILD_GTEST=ON \
|
||||
-D BUILD_CPP_STANDARD=C++14 \
|
||||
-D INSTALL_GTEST=ON ..
|
||||
|
||||
- name: Build OCCT
|
||||
run: |
|
||||
@ -406,7 +422,7 @@ jobs:
|
||||
name: Build TInspector on Windows
|
||||
needs: prepare-and-build-windows-x64
|
||||
runs-on: windows-2022
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
@ -421,7 +437,7 @@ jobs:
|
||||
name: Build TInspector on Linux
|
||||
needs: prepare-and-build-linux-clang-x64
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
@ -436,7 +452,7 @@ jobs:
|
||||
name: Build CSharp Sample on Windows
|
||||
needs: prepare-and-build-windows-x64
|
||||
runs-on: windows-2022
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
@ -451,7 +467,7 @@ jobs:
|
||||
name: Build MFC Sample on Windows
|
||||
needs: prepare-and-build-windows-x64
|
||||
runs-on: windows-2022
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
@ -466,7 +482,7 @@ jobs:
|
||||
name: Build Qt Sample on Windows
|
||||
needs: prepare-and-build-windows-x64
|
||||
runs-on: windows-2022
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
@ -481,7 +497,7 @@ jobs:
|
||||
name: Build Qt Sample on Linux
|
||||
needs: prepare-and-build-linux-clang-x64
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
@ -1146,7 +1162,7 @@ jobs:
|
||||
cd install/bin/results/macos-x64-retest
|
||||
if [ "$(ls -A)" ]; then
|
||||
cp -rf * ../macos-x64/
|
||||
|
||||
|
||||
cd ../../
|
||||
source env.sh
|
||||
./DRAWEXE -v -c testsummarize results/macos-x64
|
||||
@ -1363,7 +1379,7 @@ jobs:
|
||||
cd install/bin/results/macos-gcc-x64-retest
|
||||
if [ "$(ls -A)" ]; then
|
||||
cp -rf * ../macos-gcc-x64/
|
||||
|
||||
|
||||
cd ../../
|
||||
source env.sh
|
||||
./DRAWEXE -v -c testsummarize results/macos-gcc-x64
|
||||
@ -1567,7 +1583,7 @@ jobs:
|
||||
cd install/bin/results/linux-clang-x64-retest
|
||||
if [ "$(ls -A)" ]; then
|
||||
cp -rf * ../linux-clang-x64/
|
||||
|
||||
|
||||
cd ../../
|
||||
source env.sh
|
||||
./DRAWEXE -v -c testsummarize results/linux-clang-x64
|
||||
@ -1771,7 +1787,7 @@ jobs:
|
||||
cd install/bin/results/linux-gcc-x64-retest
|
||||
if [ "$(ls -A)" ]; then
|
||||
cp -rf * ../linux-gcc-x64/
|
||||
|
||||
|
||||
cd ../../
|
||||
source env.sh
|
||||
./DRAWEXE -v -c testsummarize results/linux-gcc-x64
|
||||
@ -1802,6 +1818,108 @@ jobs:
|
||||
echo "Found $FAILED_COUNT FAILED tests"
|
||||
fi
|
||||
|
||||
run-gtest-windows-x64:
|
||||
name: Run GTest on Windows with MSVC (x64)
|
||||
needs: prepare-and-build-windows-x64
|
||||
runs-on: windows-2022
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Run GTests
|
||||
uses: ./.github/actions/run-gtest
|
||||
with:
|
||||
platform: windows
|
||||
compiler: msvc
|
||||
install-artifact-name: install-windows-x64
|
||||
artifact-suffix: x64
|
||||
|
||||
run-gtest-windows-clang-x64:
|
||||
name: Run GTest on Windows with Clang (x64)
|
||||
needs: prepare-and-build-windows-clang-x64
|
||||
runs-on: windows-2022
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Run GTests
|
||||
uses: ./.github/actions/run-gtest
|
||||
with:
|
||||
platform: windows
|
||||
compiler: clang
|
||||
install-artifact-name: install-windows-clang-x64
|
||||
artifact-suffix: x64
|
||||
|
||||
run-gtest-macos-x64:
|
||||
name: Run GTest on macOS with Clang (x64)
|
||||
needs: prepare-and-build-macos-x64
|
||||
runs-on: macos-15
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Run GTests
|
||||
uses: ./.github/actions/run-gtest
|
||||
with:
|
||||
platform: macos
|
||||
compiler: clang
|
||||
install-artifact-name: install-macos-x64
|
||||
artifact-suffix: x64
|
||||
|
||||
run-gtest-macos-gcc-x64:
|
||||
name: Run GTest on macOS with GCC (x64)
|
||||
needs: prepare-and-build-macos-gcc-x64
|
||||
runs-on: macos-15
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Run GTests
|
||||
uses: ./.github/actions/run-gtest
|
||||
with:
|
||||
platform: macos
|
||||
compiler: gcc
|
||||
install-artifact-name: install-macos-gcc-x64
|
||||
artifact-suffix: x64
|
||||
|
||||
run-gtest-linux-clang-x64:
|
||||
name: Run GTest on Linux with Clang (x64)
|
||||
needs: prepare-and-build-linux-clang-x64
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Run GTests
|
||||
uses: ./.github/actions/run-gtest
|
||||
with:
|
||||
platform: linux
|
||||
compiler: clang
|
||||
install-artifact-name: install-linux-clang-x64
|
||||
artifact-suffix: x64
|
||||
|
||||
run-gtest-linux-gcc-x64:
|
||||
name: Run GTest on Linux with GCC (x64)
|
||||
needs: prepare-and-build-linux-gcc-x64
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Run GTests
|
||||
uses: ./.github/actions/run-gtest
|
||||
with:
|
||||
platform: linux
|
||||
compiler: gcc
|
||||
install-artifact-name: install-linux-gcc-x64
|
||||
artifact-suffix: x64
|
||||
|
||||
test-summary:
|
||||
name: 'Summarize Test Results'
|
||||
runs-on: ubuntu-24.04
|
||||
|
@ -82,6 +82,12 @@ elseif ("${BUILD_CPP_STANDARD}" STREQUAL "C++23")
|
||||
else ()
|
||||
message (FATAL_ERROR, "misprint in c++ standard name")
|
||||
endif()
|
||||
|
||||
if (DEFINED BUILD_GTEST AND BUILD_GTEST AND CMAKE_CXX_STANDARD LESS 14)
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
message (STATUS "Info: C++14 standard is required for GTest. Set to C++14.")
|
||||
endif()
|
||||
|
||||
set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# include cmake file
|
||||
@ -449,6 +455,10 @@ else()
|
||||
OCCT_CHECK_AND_UNSET (USE_VTK)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED BUILD_GTEST)
|
||||
set (BUILD_GTEST OFF CACHE BOOL "${BUILD_GTEST_DESCR}")
|
||||
endif()
|
||||
|
||||
# Rebuild *.yacc and *.lex files that are contained by TKMath toolkit
|
||||
list (FIND BUILD_TOOLKITS TKMath CAN_REBUILD_PDC_FOR_TKMATH)
|
||||
list (FIND BUILD_TOOLKITS StepFile CAN_REBUILD_PDC_FOR_STEPFILE)
|
||||
@ -1184,6 +1194,29 @@ foreach (BUILD_TOOLKIT ${BUILD_TOOLKITS})
|
||||
add_subdirectory ("${OCCT_${BUILD_TOOLKIT}_FILES_LOCATION}")
|
||||
endforeach()
|
||||
|
||||
# Setup Google Test integration if enabled
|
||||
if (BUILD_GTEST)
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/gtest")
|
||||
enable_testing()
|
||||
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_gtest")
|
||||
# Initialize GTest environment and create the target first
|
||||
OCCT_INIT_GTEST()
|
||||
|
||||
# Collect test files from all active toolkits and add them to the target
|
||||
foreach (BUILD_TOOLKIT ${BUILD_TOOLKITS})
|
||||
OCCT_COLLECT_TOOLKIT_TESTS(${BUILD_TOOLKIT})
|
||||
endforeach()
|
||||
|
||||
# Set environment variables for all tests
|
||||
OCCT_SET_GTEST_ENVIRONMENT()
|
||||
else()
|
||||
# Disable GTest integration if not enabled
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_GTEST")
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("GTest")
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_GTEST")
|
||||
endif()
|
||||
|
||||
if (BUILD_DOC_Overview OR BUILD_DOC_RefMan)
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_doc")
|
||||
# Setup documentation targets
|
||||
|
66
adm/cmake/gtest.cmake
Normal file
66
adm/cmake/gtest.cmake
Normal file
@ -0,0 +1,66 @@
|
||||
# Google Test integration for OCCT
|
||||
|
||||
# Only proceed if tests are enabled
|
||||
if (NOT BUILD_GTEST)
|
||||
set(GOOGLETEST_FOUND FALSE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check if the user has specified whether to install Google Test
|
||||
if (NOT DEFINED INSTALL_GTEST)
|
||||
set(INSTALL_GTEST OFF CACHE BOOL "Install Google Test")
|
||||
endif()
|
||||
|
||||
# Google Test configuration options
|
||||
option(GTEST_USE_EXTERNAL "Use externally provided Google Test installation" OFF)
|
||||
option(GTEST_USE_FETCHCONTENT "Use FetchContent to download and build Google Test" ON)
|
||||
|
||||
# Try to find existing GTest installation
|
||||
find_package(GTest QUIET)
|
||||
|
||||
if(GTest_FOUND)
|
||||
message(STATUS "Found Googletest installation")
|
||||
set(GOOGLETEST_FOUND TRUE)
|
||||
set(GTEST_USE_EXTERNAL TRUE)
|
||||
set(GTEST_USE_FETCHCONTENT FALSE)
|
||||
else()
|
||||
message(STATUS "Googletest not found in system paths")
|
||||
if(GTEST_USE_FETCHCONTENT)
|
||||
include(FetchContent)
|
||||
|
||||
# Set option to disable GMock before declaring the content
|
||||
set(BUILD_GMOCK OFF CACHE BOOL "Builds the googlemock subproject" FORCE)
|
||||
|
||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
URL https://github.com/google/googletest/archive/refs/tags/v1.16.0.zip
|
||||
DOWNLOAD_EXTRACT_TIMESTAMP true
|
||||
)
|
||||
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
|
||||
# Set proper grouping for the targets in solution explorer
|
||||
if(TARGET gtest)
|
||||
set_target_properties(gtest PROPERTIES FOLDER "ThirdParty/GoogleTest")
|
||||
target_compile_definitions(gtest PRIVATE GTEST_CREATE_SHARED_LIBRARY=1)
|
||||
endif()
|
||||
if(TARGET gtest_main)
|
||||
set_target_properties(gtest_main PROPERTIES FOLDER "ThirdParty/GoogleTest")
|
||||
target_compile_definitions(gtest_main PRIVATE GTEST_CREATE_SHARED_LIBRARY=1)
|
||||
endif()
|
||||
|
||||
# Set variables for consistent use throughout the build system
|
||||
set(GOOGLETEST_FOUND TRUE)
|
||||
else()
|
||||
message(STATUS "Google Test not available. Tests will be skipped.")
|
||||
set(GOOGLETEST_FOUND FALSE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Enable CTest if Google Test is available
|
||||
if(GOOGLETEST_FOUND)
|
||||
include(GoogleTest)
|
||||
endif()
|
245
adm/cmake/occt_gtest.cmake
Normal file
245
adm/cmake/occt_gtest.cmake
Normal file
@ -0,0 +1,245 @@
|
||||
# Google Test integration for OCCT toolkits
|
||||
|
||||
set (TEST_PROJECT_NAME OpenCascadeGTest)
|
||||
|
||||
# Initialize Google Test environment and create the target
|
||||
function(OCCT_INIT_GTEST)
|
||||
if (NOT GOOGLETEST_FOUND)
|
||||
message(STATUS "Google Test not available. Skipping test project ${TEST_PROJECT_NAME}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Initialize test data collections
|
||||
set(OCCT_GTEST_SOURCE_FILES "" PARENT_SCOPE)
|
||||
set(OCCT_GTEST_SOURCE_FILES_ABS "" PARENT_SCOPE)
|
||||
set(OCCT_GTEST_TESTS_LIST "" PARENT_SCOPE)
|
||||
|
||||
# Create the test executable once
|
||||
add_executable(${TEST_PROJECT_NAME})
|
||||
|
||||
set_target_properties(${TEST_PROJECT_NAME} PROPERTIES FOLDER "Testing")
|
||||
|
||||
# Link with Google Test
|
||||
target_link_libraries(${TEST_PROJECT_NAME} PRIVATE GTest::gtest_main)
|
||||
|
||||
# Add pthreads if necessary (for Linux)
|
||||
if (UNIX AND NOT APPLE)
|
||||
target_link_libraries(${TEST_PROJECT_NAME} PRIVATE pthread)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${TEST_PROJECT_NAME} PRIVATE GTEST_LINKED_AS_SHARED_LIBRARY=1)
|
||||
|
||||
# Link with all active toolkits that are libraries
|
||||
foreach(TOOLKIT ${BUILD_TOOLKITS})
|
||||
if(TARGET ${TOOLKIT})
|
||||
get_target_property(TOOLKIT_TYPE ${TOOLKIT} TYPE)
|
||||
if(TOOLKIT_TYPE STREQUAL "SHARED_LIBRARY" OR TOOLKIT_TYPE STREQUAL "STATIC_LIBRARY")
|
||||
target_link_libraries(${TEST_PROJECT_NAME} PRIVATE ${TOOLKIT})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (INSTALL_GTEST)
|
||||
# Install the test executable
|
||||
install (TARGETS ${TEST_PROJECT_NAME}
|
||||
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
|
||||
|
||||
if (EMSCRIPTEN)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${TEST_PROJECT_NAME}.wasm DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Add tests from a specific toolkit to the main test executable
|
||||
function(OCCT_COLLECT_TOOLKIT_TESTS TOOLKIT_NAME)
|
||||
# Skip if Google Test is not available or the test executable wasn't created
|
||||
if (NOT GOOGLETEST_FOUND OR NOT TARGET ${TEST_PROJECT_NAME})
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Extract test source files from FILES.cmake
|
||||
set(FILES_CMAKE_PATH "${OCCT_${TOOLKIT_NAME}_FILES_LOCATION}/GTests/FILES.cmake")
|
||||
if(EXISTS "${FILES_CMAKE_PATH}")
|
||||
# Reset toolkit test files list
|
||||
set(OCCT_${TOOLKIT_NAME}_GTests_FILES)
|
||||
|
||||
# Include the toolkit's FILES.cmake which sets OCCT_${TOOLKIT_NAME}_GTests_FILES
|
||||
include("${FILES_CMAKE_PATH}")
|
||||
set(TEST_SOURCE_FILES "${OCCT_${TOOLKIT_NAME}_GTests_FILES}")
|
||||
|
||||
# Skip if no test files found
|
||||
if(NOT TEST_SOURCE_FILES)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Get module name for test organization
|
||||
get_target_property(TOOLKIT_MODULE ${TOOLKIT_NAME} MODULE)
|
||||
if(NOT TOOLKIT_MODULE)
|
||||
set(TOOLKIT_MODULE "Unknown")
|
||||
endif()
|
||||
|
||||
# Get absolute paths of test source files and add them to the executable
|
||||
set(TEST_SOURCE_FILES_ABS)
|
||||
foreach(TEST_SOURCE_FILE ${TEST_SOURCE_FILES})
|
||||
set(TEST_SOURCE_FILE_ABS "${OCCT_${TOOLKIT_NAME}_GTests_FILES_LOCATION}/${TEST_SOURCE_FILE}")
|
||||
list(APPEND TEST_SOURCE_FILES_ABS "${TEST_SOURCE_FILE_ABS}")
|
||||
endforeach()
|
||||
|
||||
# Add test sources to the executable
|
||||
target_sources(${TEST_PROJECT_NAME} PRIVATE ${TEST_SOURCE_FILES_ABS})
|
||||
|
||||
# Create a more reliable test discovery approach
|
||||
# Use the WORKING_DIRECTORY parameter to ensure proper test execution context
|
||||
gtest_add_tests(
|
||||
TARGET ${TEST_PROJECT_NAME}
|
||||
TEST_PREFIX "${TOOLKIT_MODULE}::${TOOLKIT_NAME}::"
|
||||
SOURCES ${TEST_SOURCE_FILES_ABS}
|
||||
TEST_LIST TOOLKIT_TESTS
|
||||
SKIP_DEPENDENCY
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
)
|
||||
|
||||
# Configure test output properties to improve result capture
|
||||
foreach(test_name ${TOOLKIT_TESTS})
|
||||
set_tests_properties(${test_name} PROPERTIES
|
||||
# Use proper result detection by checking output and return code
|
||||
PASS_REGULAR_EXPRESSION "\\[ PASSED \\]"
|
||||
FAIL_REGULAR_EXPRESSION "\\[ FAILED \\]"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# Add these tests to the main list so we can set environment for all tests later
|
||||
# Get the existing list first
|
||||
if(DEFINED OCCT_GTEST_TESTS_LIST)
|
||||
set(TEMP_GTEST_TESTS_LIST ${OCCT_GTEST_TESTS_LIST})
|
||||
else()
|
||||
set(TEMP_GTEST_TESTS_LIST "")
|
||||
endif()
|
||||
|
||||
# Append the new tests
|
||||
list(APPEND TEMP_GTEST_TESTS_LIST ${TOOLKIT_TESTS})
|
||||
|
||||
# Update the parent scope variable
|
||||
set(OCCT_GTEST_TESTS_LIST "${TEMP_GTEST_TESTS_LIST}" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Set environment variables for all collected tests
|
||||
function(OCCT_SET_GTEST_ENVIRONMENT)
|
||||
if (NOT GOOGLETEST_FOUND OR NOT TARGET ${TEST_PROJECT_NAME})
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (OCCT_GTEST_TESTS_LIST)
|
||||
# Set common environment variables
|
||||
set(TEST_ENVIRONMENT
|
||||
"CSF_LANGUAGE=us"
|
||||
"MMGT_CLEAR=1"
|
||||
"CSF_SHMessage=${CMAKE_SOURCE_DIR}/resources/SHMessage"
|
||||
"CSF_MDTVTexturesDirectory=${CMAKE_SOURCE_DIR}/resources/Textures"
|
||||
"CSF_ShadersDirectory=${CMAKE_SOURCE_DIR}/resources/Shaders"
|
||||
"CSF_XSMessage=${CMAKE_SOURCE_DIR}/resources/XSMessage"
|
||||
"CSF_TObjMessage=${CMAKE_SOURCE_DIR}/resources/TObj"
|
||||
"CSF_StandardDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
|
||||
"CSF_PluginDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
|
||||
"CSF_XCAFDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
|
||||
"CSF_TObjDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
|
||||
"CSF_StandardLiteDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
|
||||
"CSF_IGESDefaults=${CMAKE_SOURCE_DIR}/resources/XSTEPResource"
|
||||
"CSF_STEPDefaults=${CMAKE_SOURCE_DIR}/resources/XSTEPResource"
|
||||
"CSF_XmlOcafResource=${CMAKE_SOURCE_DIR}/resources/XmlOcafResource"
|
||||
"CSF_MIGRATION_TYPES=${CMAKE_SOURCE_DIR}/resources/StdResource/MigrationSheet.txt"
|
||||
"CSF_OCCTResourcePath=${CMAKE_SOURCE_DIR}/resources"
|
||||
"CSF_OCCTDataPath=${CMAKE_SOURCE_DIR}/data"
|
||||
"CSF_OCCTDocPath=${CMAKE_SOURCE_DIR}/doc"
|
||||
"CSF_OCCTSamplesPath=${CMAKE_SOURCE_DIR}/samples"
|
||||
"CSF_OCCTTestsPath=${CMAKE_SOURCE_DIR}/tests"
|
||||
"CSF_OCCTBinPath=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||
"CSF_OCCTLibPath=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
|
||||
"CSF_OCCTIncludePath=${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}"
|
||||
"CASROOT=${CMAKE_SOURCE_DIR}"
|
||||
)
|
||||
|
||||
# Build PATH environment variable
|
||||
set(PATH_ELEMENTS
|
||||
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||
)
|
||||
|
||||
# Add 3rdparty paths to PATH
|
||||
if(3RDPARTY_TCL_LIBRARY_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_TCL_LIBRARY_DIR}")
|
||||
endif()
|
||||
if(3RDPARTY_TK_LIBRARY_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_TK_LIBRARY_DIR}")
|
||||
endif()
|
||||
if(3RDPARTY_FREETYPE_LIBRARY_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_FREETYPE_LIBRARY_DIR}")
|
||||
endif()
|
||||
if(3RDPARTY_FREEIMAGE_LIBRARY_DIRS)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_FREEIMAGE_LIBRARY_DIRS}")
|
||||
endif()
|
||||
if(3RDPARTY_TBB_LIBRARY_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_TBB_LIBRARY_DIR}")
|
||||
endif()
|
||||
if(3RDPARTY_VTK_LIBRARY_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_VTK_LIBRARY_DIR}")
|
||||
endif()
|
||||
if(3RDPARTY_FFMPEG_LIBRARY_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_FFMPEG_LIBRARY_DIR}")
|
||||
endif()
|
||||
if(3RDPARTY_QT_DIR)
|
||||
list(APPEND PATH_ELEMENTS "${3RDPARTY_QT_DIR}/bin")
|
||||
endif()
|
||||
if (3RDPARTY_DLL_DIRS)
|
||||
foreach(DLL_DIR ${3RDPARTY_DLL_DIRS})
|
||||
list(APPEND PATH_ELEMENTS "${DLL_DIR}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Create the PATH variable that ctest will use
|
||||
if(WIN32)
|
||||
string(REPLACE ";" "\\;" TEST_PATH_ENV "$ENV{PATH}")
|
||||
string(REPLACE ";" "\\;" PATH_ELEMENTS_STR "${PATH_ELEMENTS}")
|
||||
list(APPEND TEST_ENVIRONMENT "PATH=${PATH_ELEMENTS_STR}\\;${TEST_PATH_ENV}")
|
||||
else()
|
||||
string(REPLACE ";" ":" PATH_ELEMENTS_STR "${PATH_ELEMENTS}")
|
||||
list(APPEND TEST_ENVIRONMENT "PATH=${PATH_ELEMENTS_STR}:$ENV{PATH}")
|
||||
|
||||
# Set LD_LIBRARY_PATH for Unix systems
|
||||
list(APPEND TEST_ENVIRONMENT "LD_LIBRARY_PATH=${PATH_ELEMENTS_STR}:$ENV{LD_LIBRARY_PATH}")
|
||||
|
||||
# Set DYLD_LIBRARY_PATH for macOS
|
||||
if(APPLE)
|
||||
list(APPEND TEST_ENVIRONMENT "DYLD_LIBRARY_PATH=${PATH_ELEMENTS_STR}:$ENV{DYLD_LIBRARY_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Add DrawResources related environment if it exists
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/resources/DrawResources")
|
||||
list(APPEND TEST_ENVIRONMENT "DRAWHOME=${CMAKE_SOURCE_DIR}/resources/DrawResources")
|
||||
list(APPEND TEST_ENVIRONMENT "CSF_DrawPluginDefaults=${CMAKE_SOURCE_DIR}/resources/DrawResources")
|
||||
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/resources/DrawResources/DrawDefault")
|
||||
list(APPEND TEST_ENVIRONMENT "DRAWDEFAULT=${CMAKE_SOURCE_DIR}/resources/DrawResources/DrawDefault")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set FPE signal handler if enabled
|
||||
if(BUILD_ENABLE_FPE_SIGNAL_HANDLER)
|
||||
list(APPEND TEST_ENVIRONMENT "CSF_FPE=1")
|
||||
endif()
|
||||
|
||||
# Set TCL/TK library paths if they differ
|
||||
if(3RDPARTY_TCL_LIBRARY_DIR AND 3RDPARTY_TK_LIBRARY_DIR AND NOT 3RDPARTY_TCL_LIBRARY_DIR STREQUAL 3RDPARTY_TK_LIBRARY_DIR)
|
||||
if(3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT)
|
||||
list(APPEND TEST_ENVIRONMENT "TCL_LIBRARY=${3RDPARTY_TCL_LIBRARY_DIR}/../lib/tcl${3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT}")
|
||||
endif()
|
||||
if(3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT)
|
||||
list(APPEND TEST_ENVIRONMENT "TK_LIBRARY=${3RDPARTY_TK_LIBRARY_DIR}/../lib/tk${3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set environment for all tests in the project
|
||||
set_tests_properties(${OCCT_GTEST_TESTS_LIST} PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}")
|
||||
endif()
|
||||
endfunction()
|
@ -189,6 +189,7 @@ elseif (BUILD_SOVERSION_NUMBERS GREATER 1)
|
||||
elseif (BUILD_SOVERSION_NUMBERS GREATER 0)
|
||||
set (OCC_SOVERSION "${OCC_VERSION_MAJOR}")
|
||||
endif()
|
||||
|
||||
set_target_properties (${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PRECOMPILED_DEFS}"
|
||||
SOVERSION "${OCC_SOVERSION}"
|
||||
VERSION "${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}")
|
||||
|
5
src/ApplicationFramework/TKBin/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKBin/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBin
|
||||
set(OCCT_TKBin_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBin_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKBinL/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKBinL/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBinL
|
||||
set(OCCT_TKBinL_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBinL_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKBinTObj/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKBinTObj/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBinTObj
|
||||
set(OCCT_TKBinTObj_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBinTObj_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKCAF/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKCAF
|
||||
set(OCCT_TKCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKCAF_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKCDF/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKCDF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKCDF
|
||||
set(OCCT_TKCDF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKCDF_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKLCAF/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKLCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKLCAF
|
||||
set(OCCT_TKLCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKLCAF_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKStd/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKStd/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKStd
|
||||
set(OCCT_TKStd_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKStd_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKStdL/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKStdL/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKStdL
|
||||
set(OCCT_TKStdL_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKStdL_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKTObj/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKTObj/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKTObj
|
||||
set(OCCT_TKTObj_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKTObj_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKVCAF/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKVCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKVCAF
|
||||
set(OCCT_TKVCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKVCAF_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKXml/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKXml/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXml
|
||||
set(OCCT_TKXml_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXml_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKXmlL/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKXmlL/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXmlL
|
||||
set(OCCT_TKXmlL_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXmlL_GTests_FILES
|
||||
)
|
5
src/ApplicationFramework/TKXmlTObj/GTests/FILES.cmake
Normal file
5
src/ApplicationFramework/TKXmlTObj/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXmlTObj
|
||||
set(OCCT_TKXmlTObj_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXmlTObj_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKBinXCAF/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKBinXCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBinXCAF
|
||||
set(OCCT_TKBinXCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBinXCAF_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDE/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDE/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDE
|
||||
set(OCCT_TKDE_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDE_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDECascade/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDECascade/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDECascade
|
||||
set(OCCT_TKDECascade_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDECascade_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDEGLTF/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDEGLTF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDEGLTF
|
||||
set(OCCT_TKDEGLTF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDEGLTF_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDEIGES/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDEIGES/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDEIGES
|
||||
set(OCCT_TKDEIGES_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDEIGES_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDEOBJ/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDEOBJ/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDEOBJ
|
||||
set(OCCT_TKDEOBJ_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDEOBJ_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDEPLY/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDEPLY/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDEPLY
|
||||
set(OCCT_TKDEPLY_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDEPLY_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDESTEP/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDESTEP/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDESTEP
|
||||
set(OCCT_TKDESTEP_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDESTEP_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDESTL/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDESTL/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDESTL
|
||||
set(OCCT_TKDESTL_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDESTL_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKDEVRML/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKDEVRML/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDEVRML
|
||||
set(OCCT_TKDEVRML_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDEVRML_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKRWMesh/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKRWMesh/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKRWMesh
|
||||
set(OCCT_TKRWMesh_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKRWMesh_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKXCAF/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKXCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXCAF
|
||||
set(OCCT_TKXCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXCAF_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKXSBase/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKXSBase/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSBase
|
||||
set(OCCT_TKXSBase_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSBase_GTests_FILES
|
||||
)
|
5
src/DataExchange/TKXmlXCAF/GTests/FILES.cmake
Normal file
5
src/DataExchange/TKXmlXCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXmlXCAF
|
||||
set(OCCT_TKXmlXCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXmlXCAF_GTests_FILES
|
||||
)
|
5
src/Draw/TKD3DHostTest/GTests/FILES.cmake
Normal file
5
src/Draw/TKD3DHostTest/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKD3DHostTest
|
||||
set(OCCT_TKD3DHostTest_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKD3DHostTest_GTests_FILES
|
||||
)
|
5
src/Draw/TKDCAF/GTests/FILES.cmake
Normal file
5
src/Draw/TKDCAF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDCAF
|
||||
set(OCCT_TKDCAF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDCAF_GTests_FILES
|
||||
)
|
5
src/Draw/TKDraw/GTests/FILES.cmake
Normal file
5
src/Draw/TKDraw/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKDraw
|
||||
set(OCCT_TKDraw_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKDraw_GTests_FILES
|
||||
)
|
5
src/Draw/TKIVtkDraw/GTests/FILES.cmake
Normal file
5
src/Draw/TKIVtkDraw/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKIVtkDraw
|
||||
set(OCCT_TKIVtkDraw_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKIVtkDraw_GTests_FILES
|
||||
)
|
5
src/Draw/TKOpenGlTest/GTests/FILES.cmake
Normal file
5
src/Draw/TKOpenGlTest/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKOpenGlTest
|
||||
set(OCCT_TKOpenGlTest_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKOpenGlTest_GTests_FILES
|
||||
)
|
5
src/Draw/TKOpenGlesTest/GTests/FILES.cmake
Normal file
5
src/Draw/TKOpenGlesTest/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKOpenGlesTest
|
||||
set(OCCT_TKOpenGlesTest_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKOpenGlesTest_GTests_FILES
|
||||
)
|
5
src/Draw/TKQADraw/GTests/FILES.cmake
Normal file
5
src/Draw/TKQADraw/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKQADraw
|
||||
set(OCCT_TKQADraw_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKQADraw_GTests_FILES
|
||||
)
|
5
src/Draw/TKTObjDRAW/GTests/FILES.cmake
Normal file
5
src/Draw/TKTObjDRAW/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKTObjDRAW
|
||||
set(OCCT_TKTObjDRAW_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKTObjDRAW_GTests_FILES
|
||||
)
|
5
src/Draw/TKTopTest/GTests/FILES.cmake
Normal file
5
src/Draw/TKTopTest/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKTopTest
|
||||
set(OCCT_TKTopTest_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKTopTest_GTests_FILES
|
||||
)
|
5
src/Draw/TKViewerTest/GTests/FILES.cmake
Normal file
5
src/Draw/TKViewerTest/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKViewerTest
|
||||
set(OCCT_TKViewerTest_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKViewerTest_GTests_FILES
|
||||
)
|
5
src/Draw/TKXDEDRAW/GTests/FILES.cmake
Normal file
5
src/Draw/TKXDEDRAW/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXDEDRAW
|
||||
set(OCCT_TKXDEDRAW_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXDEDRAW_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAW/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAW/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAW
|
||||
set(OCCT_TKXSDRAW_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAW_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWDE/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWDE/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWDE
|
||||
set(OCCT_TKXSDRAWDE_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWDE_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWGLTF/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWGLTF/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWGLTF
|
||||
set(OCCT_TKXSDRAWGLTF_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWGLTF_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWIGES/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWIGES/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWIGES
|
||||
set(OCCT_TKXSDRAWIGES_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWIGES_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWOBJ/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWOBJ/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWOBJ
|
||||
set(OCCT_TKXSDRAWOBJ_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWOBJ_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWPLY/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWPLY/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWPLY
|
||||
set(OCCT_TKXSDRAWPLY_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWPLY_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWSTEP/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWSTEP/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWSTEP
|
||||
set(OCCT_TKXSDRAWSTEP_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWSTEP_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWSTL/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWSTL/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWSTL
|
||||
set(OCCT_TKXSDRAWSTL_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWSTL_GTests_FILES
|
||||
)
|
5
src/Draw/TKXSDRAWVRML/GTests/FILES.cmake
Normal file
5
src/Draw/TKXSDRAWVRML/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXSDRAWVRML
|
||||
set(OCCT_TKXSDRAWVRML_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXSDRAWVRML_GTests_FILES
|
||||
)
|
6
src/FoundationClasses/TKMath/GTests/FILES.cmake
Normal file
6
src/FoundationClasses/TKMath/GTests/FILES.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
# Test source files for TKMath
|
||||
set(OCCT_TKMath_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKMath_GTests_FILES
|
||||
PLib_JacobiPolynomial_Test.cxx
|
||||
)
|
@ -0,0 +1,169 @@
|
||||
// Copyright (c) 2025 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <PLib_JacobiPolynomial.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array2OfReal.hxx>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, ConstructorAndAccessors)
|
||||
{
|
||||
// Test with GeomAbs_C0
|
||||
PLib_JacobiPolynomial aJacobi1(10, GeomAbs_C0);
|
||||
EXPECT_EQ(10, aJacobi1.WorkDegree());
|
||||
EXPECT_EQ(0, aJacobi1.NivConstr());
|
||||
|
||||
// Test with GeomAbs_C1
|
||||
PLib_JacobiPolynomial aJacobi2(20, GeomAbs_C1);
|
||||
EXPECT_EQ(20, aJacobi2.WorkDegree());
|
||||
EXPECT_EQ(1, aJacobi2.NivConstr());
|
||||
|
||||
// Test with GeomAbs_C2
|
||||
PLib_JacobiPolynomial aJacobi3(30, GeomAbs_C2);
|
||||
EXPECT_EQ(30, aJacobi3.WorkDegree());
|
||||
EXPECT_EQ(2, aJacobi3.NivConstr());
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, Weights)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(20, GeomAbs_C1);
|
||||
|
||||
// Test with 10 Gauss points
|
||||
Standard_Integer nPoints = 10;
|
||||
Standard_Integer nDegree = 20;
|
||||
TColStd_Array2OfReal aWeights(0, nPoints / 2, 0, nDegree);
|
||||
aJacobi.Weights(nPoints, aWeights);
|
||||
|
||||
// Weights should be positive
|
||||
for (Standard_Integer i = 0; i <= nPoints / 2; i++)
|
||||
{
|
||||
for (Standard_Integer j = 0; j <= nDegree; j++)
|
||||
{
|
||||
// We don't check exact values, but they should be defined
|
||||
EXPECT_FALSE(std::isnan(aWeights(i, j)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, MaxValue)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(15, GeomAbs_C0);
|
||||
Standard_Integer q = aJacobi.WorkDegree() - 2 * (aJacobi.NivConstr() + 1);
|
||||
|
||||
TColStd_Array1OfReal aTabMax(0, q);
|
||||
aJacobi.MaxValue(aTabMax);
|
||||
|
||||
// The maximum values should be positive
|
||||
for (Standard_Integer i = 0; i <= q; i++)
|
||||
{
|
||||
EXPECT_GT(aTabMax(i), 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, D0)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(10, GeomAbs_C0);
|
||||
Standard_Integer q = aJacobi.WorkDegree() - 2 * (aJacobi.NivConstr() + 1);
|
||||
|
||||
TColStd_Array1OfReal aBasisValue(0, q);
|
||||
|
||||
// Test at u = 0
|
||||
aJacobi.D0(0.0, aBasisValue);
|
||||
|
||||
// Test at u = 0.5
|
||||
aJacobi.D0(0.5, aBasisValue);
|
||||
|
||||
// Test at u = 1.0
|
||||
aJacobi.D0(1.0, aBasisValue);
|
||||
|
||||
// We don't check exact values here, just that the method executes without issues
|
||||
EXPECT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, D1)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(12, GeomAbs_C1);
|
||||
Standard_Integer q = aJacobi.WorkDegree() - 2 * (aJacobi.NivConstr() + 1);
|
||||
|
||||
TColStd_Array1OfReal aBasisValue(0, q);
|
||||
TColStd_Array1OfReal aBasisD1(0, q);
|
||||
|
||||
// Test at u = 0.5
|
||||
aJacobi.D1(0.5, aBasisValue, aBasisD1);
|
||||
|
||||
// We don't check exact values here, just that the method executes without issues
|
||||
EXPECT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, D2)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(14, GeomAbs_C2);
|
||||
Standard_Integer q = aJacobi.WorkDegree() - 2 * (aJacobi.NivConstr() + 1);
|
||||
|
||||
TColStd_Array1OfReal aBasisValue(0, q);
|
||||
TColStd_Array1OfReal aBasisD1(0, q);
|
||||
TColStd_Array1OfReal aBasisD2(0, q);
|
||||
|
||||
// Test at u = 0.5
|
||||
aJacobi.D2(0.5, aBasisValue, aBasisD1, aBasisD2);
|
||||
|
||||
// We don't check exact values here, just that the method executes without issues
|
||||
EXPECT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, D3)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(16, GeomAbs_C2);
|
||||
Standard_Integer q = aJacobi.WorkDegree() - 2 * (aJacobi.NivConstr() + 1);
|
||||
|
||||
TColStd_Array1OfReal aBasisValue(0, q);
|
||||
TColStd_Array1OfReal aBasisD1(0, q);
|
||||
TColStd_Array1OfReal aBasisD2(0, q);
|
||||
TColStd_Array1OfReal aBasisD3(0, q);
|
||||
|
||||
// Test at u = 0.5
|
||||
aJacobi.D3(0.5, aBasisValue, aBasisD1, aBasisD2, aBasisD3);
|
||||
|
||||
// We don't check exact values here, just that the method executes without issues
|
||||
EXPECT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST(PLib_JacobiPolynomialTest, ReduceDegree)
|
||||
{
|
||||
PLib_JacobiPolynomial aJacobi(20, GeomAbs_C1);
|
||||
Standard_Integer dimension = 3;
|
||||
Standard_Integer maxDegree = 15;
|
||||
Standard_Real tolerance = 1.0e-3;
|
||||
|
||||
// Create sample JacCoeff array with increasing values
|
||||
TColStd_Array1OfReal aJacCoeff(1, dimension * (maxDegree + 1));
|
||||
for (Standard_Integer i = 1; i <= dimension * (maxDegree + 1); i++)
|
||||
{
|
||||
aJacCoeff(i) = 0.1 * i;
|
||||
}
|
||||
|
||||
// Initialize output variables
|
||||
Standard_Integer newDegree = 0;
|
||||
Standard_Real maxError = 0.0;
|
||||
|
||||
// Test the reduce degree functionality
|
||||
aJacobi
|
||||
.ReduceDegree(dimension, maxDegree, tolerance, aJacCoeff.ChangeValue(1), newDegree, maxError);
|
||||
|
||||
// New degree should be less than or equal to maxDegree
|
||||
EXPECT_LE(newDegree, maxDegree);
|
||||
|
||||
// Max error should be defined
|
||||
EXPECT_FALSE(std::isnan(maxError));
|
||||
}
|
7
src/FoundationClasses/TKernel/GTests/FILES.cmake
Normal file
7
src/FoundationClasses/TKernel/GTests/FILES.cmake
Normal file
@ -0,0 +1,7 @@
|
||||
# Test source files for TKernel
|
||||
set(OCCT_TKernel_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKernel_GTests_FILES
|
||||
TCollection_AsciiString_Test.cxx
|
||||
TCollection_ExtendedString_Test.cxx
|
||||
)
|
@ -0,0 +1,233 @@
|
||||
// Copyright (c) 2025 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
TEST(TCollection_AsciiStringTest, DefaultConstructor)
|
||||
{
|
||||
TCollection_AsciiString aString;
|
||||
EXPECT_EQ(0, aString.Length());
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, ConstructorWithCString)
|
||||
{
|
||||
TCollection_AsciiString aString("Test String");
|
||||
EXPECT_EQ(11, aString.Length());
|
||||
EXPECT_FALSE(aString.IsEmpty());
|
||||
EXPECT_STREQ("Test String", aString.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, ConstructorWithChar)
|
||||
{
|
||||
TCollection_AsciiString aString('A');
|
||||
EXPECT_EQ(1, aString.Length());
|
||||
EXPECT_FALSE(aString.IsEmpty());
|
||||
EXPECT_STREQ("A", aString.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, CopyConstructor)
|
||||
{
|
||||
TCollection_AsciiString aString1("Original");
|
||||
TCollection_AsciiString aString2(aString1);
|
||||
EXPECT_STREQ(aString1.ToCString(), aString2.ToCString());
|
||||
EXPECT_EQ(aString1.Length(), aString2.Length());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, AssignmentOperator)
|
||||
{
|
||||
TCollection_AsciiString aString1("First");
|
||||
TCollection_AsciiString aString2;
|
||||
aString2 = aString1;
|
||||
EXPECT_STREQ(aString1.ToCString(), aString2.ToCString());
|
||||
|
||||
// Change original to verify deep copy
|
||||
aString1 = "Changed";
|
||||
EXPECT_STRNE(aString1.ToCString(), aString2.ToCString());
|
||||
EXPECT_STREQ("First", aString2.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, Concatenation)
|
||||
{
|
||||
TCollection_AsciiString aString1("Hello");
|
||||
TCollection_AsciiString aString2(" World");
|
||||
TCollection_AsciiString aString3 = aString1 + aString2;
|
||||
EXPECT_STREQ("Hello World", aString3.ToCString());
|
||||
|
||||
// Using += operator
|
||||
aString1 += aString2;
|
||||
EXPECT_STREQ("Hello World", aString1.ToCString());
|
||||
|
||||
// Concatenate with char
|
||||
aString1 += '!';
|
||||
EXPECT_STREQ("Hello World!", aString1.ToCString());
|
||||
|
||||
// Concatenate with C string
|
||||
aString1 += " Test";
|
||||
EXPECT_STREQ("Hello World! Test", aString1.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, SubString)
|
||||
{
|
||||
TCollection_AsciiString aString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
|
||||
TCollection_AsciiString subString = aString.SubString(3, 8);
|
||||
EXPECT_STREQ("CDEFGH", subString.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, ChangeCase)
|
||||
{
|
||||
TCollection_AsciiString aString("Hello World");
|
||||
|
||||
// Test to upper case
|
||||
TCollection_AsciiString upperString = aString;
|
||||
upperString.UpperCase();
|
||||
EXPECT_STREQ("HELLO WORLD", upperString.ToCString());
|
||||
|
||||
// Test to lower case
|
||||
TCollection_AsciiString lowerString = aString;
|
||||
lowerString.LowerCase();
|
||||
EXPECT_STREQ("hello world", lowerString.ToCString());
|
||||
|
||||
// Test capitalize
|
||||
TCollection_AsciiString capitalizeString = lowerString;
|
||||
capitalizeString.Capitalize();
|
||||
EXPECT_STREQ("Hello world", capitalizeString.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, SearchAndLocation)
|
||||
{
|
||||
TCollection_AsciiString aString("This is a test string for testing search functions");
|
||||
|
||||
// Test Search
|
||||
EXPECT_EQ(11, aString.Search("test"));
|
||||
EXPECT_EQ(-1, aString.Search("nonexistent"));
|
||||
|
||||
// Test SearchFromEnd
|
||||
EXPECT_EQ(27, aString.SearchFromEnd("test"));
|
||||
|
||||
// Test Location
|
||||
EXPECT_EQ(3, aString.Location(TCollection_AsciiString("i"), 1, aString.Length()));
|
||||
EXPECT_EQ(6, aString.Location(TCollection_AsciiString("i"), 4, aString.Length()));
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, RemoveAndInsert)
|
||||
{
|
||||
TCollection_AsciiString aString("Hello World");
|
||||
|
||||
// Test Remove
|
||||
aString.Remove(6, 6);
|
||||
EXPECT_STREQ("Hello", aString.ToCString());
|
||||
|
||||
// Test Insert
|
||||
aString.Insert(6, " Universe");
|
||||
EXPECT_STREQ("Hello Universe", aString.ToCString());
|
||||
|
||||
// Test RemoveAll
|
||||
aString.RemoveAll('e');
|
||||
EXPECT_STREQ("Hllo Univrs", aString.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, Comparison)
|
||||
{
|
||||
TCollection_AsciiString aString1("Test");
|
||||
TCollection_AsciiString aString2("Test");
|
||||
TCollection_AsciiString aString3("Different");
|
||||
|
||||
EXPECT_TRUE(aString1.IsEqual(aString2));
|
||||
EXPECT_TRUE(aString1 == aString2);
|
||||
EXPECT_FALSE(aString1.IsDifferent(aString2));
|
||||
EXPECT_FALSE(aString1 != aString2);
|
||||
|
||||
EXPECT_FALSE(aString1.IsEqual(aString3));
|
||||
EXPECT_FALSE(aString1 == aString3);
|
||||
EXPECT_TRUE(aString1.IsDifferent(aString3));
|
||||
EXPECT_TRUE(aString1 != aString3);
|
||||
|
||||
// Testing with C strings
|
||||
EXPECT_TRUE(aString1.IsEqual("Test"));
|
||||
EXPECT_TRUE(aString1 == "Test");
|
||||
EXPECT_FALSE(aString1.IsEqual("Different"));
|
||||
EXPECT_FALSE(aString1 == "Different");
|
||||
|
||||
// Test IsLess and IsGreater
|
||||
TCollection_AsciiString aStringA("A");
|
||||
TCollection_AsciiString aStringZ("Z");
|
||||
|
||||
EXPECT_TRUE(aStringA.IsLess(aStringZ));
|
||||
EXPECT_TRUE(aStringA < aStringZ);
|
||||
EXPECT_FALSE(aStringA.IsGreater(aStringZ));
|
||||
EXPECT_FALSE(aStringA > aStringZ);
|
||||
|
||||
EXPECT_TRUE(aStringZ.IsGreater(aStringA));
|
||||
EXPECT_TRUE(aStringZ > aStringA);
|
||||
EXPECT_FALSE(aStringZ.IsLess(aStringA));
|
||||
EXPECT_FALSE(aStringZ < aStringA);
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, Token)
|
||||
{
|
||||
TCollection_AsciiString aString("This is a test string");
|
||||
|
||||
EXPECT_STREQ("This", aString.Token().ToCString());
|
||||
EXPECT_STREQ("is", aString.Token(" ", 2).ToCString());
|
||||
EXPECT_STREQ("a", aString.Token(" ", 3).ToCString());
|
||||
EXPECT_STREQ("test", aString.Token(" ", 4).ToCString());
|
||||
EXPECT_STREQ("string", aString.Token(" ", 5).ToCString());
|
||||
EXPECT_STREQ("", aString.Token(" ", 6).ToCString()); // No 6th token
|
||||
|
||||
// Test with different separators
|
||||
TCollection_AsciiString aStringWithSeps("one,two;three:four");
|
||||
EXPECT_STREQ("one", aStringWithSeps.Token(",;:", 1).ToCString());
|
||||
EXPECT_STREQ("two", aStringWithSeps.Token(",;:", 2).ToCString());
|
||||
EXPECT_STREQ("three", aStringWithSeps.Token(",;:", 3).ToCString());
|
||||
EXPECT_STREQ("four", aStringWithSeps.Token(",;:", 4).ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, ValueConversion)
|
||||
{
|
||||
// Test integer conversion
|
||||
TCollection_AsciiString intString("12345");
|
||||
EXPECT_EQ(12345, intString.IntegerValue());
|
||||
EXPECT_TRUE(intString.IsIntegerValue());
|
||||
|
||||
// Test real value conversion
|
||||
TCollection_AsciiString realString("123.456");
|
||||
EXPECT_DOUBLE_EQ(123.456, realString.RealValue());
|
||||
EXPECT_TRUE(realString.IsRealValue());
|
||||
|
||||
// Test invalid conversions
|
||||
TCollection_AsciiString invalidString("not a number");
|
||||
EXPECT_FALSE(invalidString.IsIntegerValue());
|
||||
EXPECT_FALSE(invalidString.IsRealValue());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, HashCode)
|
||||
{
|
||||
TCollection_AsciiString aString1("Test");
|
||||
TCollection_AsciiString aString2("Test");
|
||||
TCollection_AsciiString aString3("Different");
|
||||
|
||||
EXPECT_EQ(aString1.HashCode(), aString2.HashCode());
|
||||
EXPECT_NE(aString1.HashCode(), aString3.HashCode());
|
||||
}
|
||||
|
||||
TEST(TCollection_AsciiStringTest, Split)
|
||||
{
|
||||
TCollection_AsciiString aString("abcdefghij");
|
||||
TCollection_AsciiString remainder = aString.Split(5);
|
||||
|
||||
EXPECT_STREQ("abcde", aString.ToCString());
|
||||
EXPECT_STREQ("fghij", remainder.ToCString());
|
||||
}
|
@ -0,0 +1,203 @@
|
||||
// Copyright (c) 2025 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <TCollection_ExtendedString.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, DefaultConstructor)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
EXPECT_EQ(0, aString.Length());
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, ConstructorWithCString)
|
||||
{
|
||||
TCollection_ExtendedString aString("Test String");
|
||||
EXPECT_EQ(11, aString.Length());
|
||||
EXPECT_FALSE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, ConstructorWithChar)
|
||||
{
|
||||
TCollection_ExtendedString aString('A');
|
||||
EXPECT_EQ(1, aString.Length());
|
||||
EXPECT_FALSE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, ConstructorWithAsciiString)
|
||||
{
|
||||
TCollection_AsciiString asciiString("ASCII Test");
|
||||
TCollection_ExtendedString extendedString(asciiString);
|
||||
EXPECT_EQ(asciiString.Length(), extendedString.Length());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, CopyConstructor)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Original");
|
||||
TCollection_ExtendedString aString2(aString1);
|
||||
EXPECT_EQ(aString1.Length(), aString2.Length());
|
||||
EXPECT_TRUE(aString1.IsEqual(aString2));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, AssignmentOperator)
|
||||
{
|
||||
TCollection_ExtendedString aString1("First");
|
||||
TCollection_ExtendedString aString2;
|
||||
aString2 = aString1;
|
||||
EXPECT_TRUE(aString1.IsEqual(aString2));
|
||||
|
||||
// Change original to verify deep copy
|
||||
aString1 = TCollection_ExtendedString("Changed");
|
||||
EXPECT_FALSE(aString1.IsEqual(aString2));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Concatenation)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Hello");
|
||||
TCollection_ExtendedString aString2(" World");
|
||||
TCollection_ExtendedString aString3 = aString1 + aString2;
|
||||
EXPECT_EQ(11, aString3.Length());
|
||||
|
||||
// Convert to AsciiString for comparison
|
||||
TCollection_AsciiString asciiResult(aString3);
|
||||
EXPECT_STREQ("Hello World", asciiResult.ToCString());
|
||||
|
||||
// Using += operator
|
||||
aString1 += aString2;
|
||||
EXPECT_TRUE(aString1.IsEqual(aString3));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, ConversionToFromAscii)
|
||||
{
|
||||
// ASCII to Extended
|
||||
TCollection_AsciiString asciiString("Test String");
|
||||
TCollection_ExtendedString extendedString(asciiString);
|
||||
|
||||
// Extended back to ASCII
|
||||
TCollection_AsciiString convertedBack(extendedString);
|
||||
|
||||
EXPECT_STREQ(asciiString.ToCString(), convertedBack.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Comparison)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Test");
|
||||
TCollection_ExtendedString aString2("Test");
|
||||
TCollection_ExtendedString aString3("Different");
|
||||
|
||||
EXPECT_TRUE(aString1.IsEqual(aString2));
|
||||
EXPECT_TRUE(aString1 == aString2);
|
||||
EXPECT_FALSE(aString1.IsDifferent(aString2));
|
||||
EXPECT_FALSE(aString1 != aString2);
|
||||
|
||||
EXPECT_FALSE(aString1.IsEqual(aString3));
|
||||
EXPECT_FALSE(aString1 == aString3);
|
||||
EXPECT_TRUE(aString1.IsDifferent(aString3));
|
||||
EXPECT_TRUE(aString1 != aString3);
|
||||
|
||||
// Test IsLess and IsGreater
|
||||
TCollection_ExtendedString aStringA("A");
|
||||
TCollection_ExtendedString aStringZ("Z");
|
||||
|
||||
EXPECT_TRUE(aStringA.IsLess(aStringZ));
|
||||
EXPECT_TRUE(aStringA < aStringZ);
|
||||
EXPECT_FALSE(aStringA.IsGreater(aStringZ));
|
||||
EXPECT_FALSE(aStringA > aStringZ);
|
||||
|
||||
EXPECT_TRUE(aStringZ.IsGreater(aStringA));
|
||||
EXPECT_TRUE(aStringZ > aStringA);
|
||||
EXPECT_FALSE(aStringZ.IsLess(aStringA));
|
||||
EXPECT_FALSE(aStringZ < aStringA);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, UnicodeSupport)
|
||||
{
|
||||
// Test with unicode characters
|
||||
const Standard_ExtCharacter unicodeChars[] = {0x0041, 0x00A9, 0x2122, 0x20AC, 0}; // A, ©, ™, €
|
||||
TCollection_ExtendedString unicodeString(unicodeChars);
|
||||
|
||||
EXPECT_EQ(4, unicodeString.Length());
|
||||
EXPECT_EQ(0x0041, unicodeString.Value(1)); // A
|
||||
EXPECT_EQ(0x00A9, unicodeString.Value(2)); // ©
|
||||
EXPECT_EQ(0x2122, unicodeString.Value(3)); // ™
|
||||
EXPECT_EQ(0x20AC, unicodeString.Value(4)); // €
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, HashCode)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Test");
|
||||
TCollection_ExtendedString aString2("Test");
|
||||
TCollection_ExtendedString aString3("Different");
|
||||
|
||||
EXPECT_EQ(aString1.HashCode(), aString2.HashCode());
|
||||
EXPECT_NE(aString1.HashCode(), aString3.HashCode());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Remove)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello World");
|
||||
aString.Remove(6, 6); // Remove "World"
|
||||
|
||||
TCollection_AsciiString asciiResult(aString);
|
||||
EXPECT_STREQ("Hello", asciiResult.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, ToExtString)
|
||||
{
|
||||
TCollection_ExtendedString aString("Test String");
|
||||
Standard_ExtString extString = aString.ToExtString();
|
||||
|
||||
// Check first few characters
|
||||
EXPECT_EQ('T', extString[0]);
|
||||
EXPECT_EQ('e', extString[1]);
|
||||
EXPECT_EQ('s', extString[2]);
|
||||
EXPECT_EQ('t', extString[3]);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsAscii)
|
||||
{
|
||||
TCollection_ExtendedString asciiString("Simple ASCII");
|
||||
EXPECT_TRUE(asciiString.IsAscii());
|
||||
|
||||
// Create a string with non-ASCII character
|
||||
Standard_ExtCharacter unicodeChars[] = {'A', 0x20AC, 0}; // A, €
|
||||
TCollection_ExtendedString unicodeString(unicodeChars);
|
||||
EXPECT_FALSE(unicodeString.IsAscii());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Cat)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
|
||||
// Cat with ExtendedString
|
||||
TCollection_ExtendedString result1 = aString.Cat(TCollection_ExtendedString(" World"));
|
||||
TCollection_AsciiString asciiResult1(result1);
|
||||
EXPECT_STREQ("Hello World", asciiResult1.ToCString());
|
||||
|
||||
// Cat with character
|
||||
TCollection_ExtendedString result2 = aString.Cat('!');
|
||||
TCollection_AsciiString asciiResult2(result2);
|
||||
EXPECT_STREQ("Hello!", asciiResult2.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, ChangeAll)
|
||||
{
|
||||
TCollection_ExtendedString aString("Helloo Woorld");
|
||||
aString.ChangeAll('o', 'X');
|
||||
|
||||
TCollection_AsciiString asciiResult(aString);
|
||||
EXPECT_STREQ("HellXX WXXrld", asciiResult.ToCString());
|
||||
}
|
5
src/ModelingAlgorithms/TKBO/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKBO/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBO
|
||||
set(OCCT_TKBO_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBO_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKBool/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKBool/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBool
|
||||
set(OCCT_TKBool_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBool_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKExpress/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKExpress/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKExpress
|
||||
set(OCCT_TKExpress_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKExpress_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKFeat/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKFeat/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKFeat
|
||||
set(OCCT_TKFeat_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKFeat_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKFillet/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKFillet/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKFillet
|
||||
set(OCCT_TKFillet_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKFillet_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKGeomAlgo/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKGeomAlgo/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKGeomAlgo
|
||||
set(OCCT_TKGeomAlgo_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKGeomAlgo_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKHLR/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKHLR/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKHLR
|
||||
set(OCCT_TKHLR_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKHLR_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKMesh/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKMesh/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKMesh
|
||||
set(OCCT_TKMesh_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKMesh_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKOffset/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKOffset/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKOffset
|
||||
set(OCCT_TKOffset_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKOffset_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKPrim/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKPrim/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKPrim
|
||||
set(OCCT_TKPrim_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKPrim_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKShHealing/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKShHealing/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKShHealing
|
||||
set(OCCT_TKShHealing_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKShHealing_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKTopAlgo/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKTopAlgo/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKTopAlgo
|
||||
set(OCCT_TKTopAlgo_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKTopAlgo_GTests_FILES
|
||||
)
|
5
src/ModelingAlgorithms/TKXMesh/GTests/FILES.cmake
Normal file
5
src/ModelingAlgorithms/TKXMesh/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKXMesh
|
||||
set(OCCT_TKXMesh_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKXMesh_GTests_FILES
|
||||
)
|
5
src/ModelingData/TKBRep/GTests/FILES.cmake
Normal file
5
src/ModelingData/TKBRep/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKBRep
|
||||
set(OCCT_TKBRep_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKBRep_GTests_FILES
|
||||
)
|
5
src/ModelingData/TKG2d/GTests/FILES.cmake
Normal file
5
src/ModelingData/TKG2d/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKG2d
|
||||
set(OCCT_TKG2d_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKG2d_GTests_FILES
|
||||
)
|
5
src/ModelingData/TKG3d/GTests/FILES.cmake
Normal file
5
src/ModelingData/TKG3d/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKG3d
|
||||
set(OCCT_TKG3d_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKG3d_GTests_FILES
|
||||
)
|
5
src/ModelingData/TKGeomBase/GTests/FILES.cmake
Normal file
5
src/ModelingData/TKGeomBase/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKGeomBase
|
||||
set(OCCT_TKGeomBase_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKGeomBase_GTests_FILES
|
||||
)
|
5
src/Visualization/TKD3DHost/GTests/FILES.cmake
Normal file
5
src/Visualization/TKD3DHost/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKD3DHost
|
||||
set(OCCT_TKD3DHost_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKD3DHost_GTests_FILES
|
||||
)
|
5
src/Visualization/TKIVtk/GTests/FILES.cmake
Normal file
5
src/Visualization/TKIVtk/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKIVtk
|
||||
set(OCCT_TKIVtk_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKIVtk_GTests_FILES
|
||||
)
|
5
src/Visualization/TKMeshVS/GTests/FILES.cmake
Normal file
5
src/Visualization/TKMeshVS/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKMeshVS
|
||||
set(OCCT_TKMeshVS_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKMeshVS_GTests_FILES
|
||||
)
|
5
src/Visualization/TKOpenGl/GTests/FILES.cmake
Normal file
5
src/Visualization/TKOpenGl/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKOpenGl
|
||||
set(OCCT_TKOpenGl_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKOpenGl_GTests_FILES
|
||||
)
|
5
src/Visualization/TKOpenGles/GTests/FILES.cmake
Normal file
5
src/Visualization/TKOpenGles/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKOpenGles
|
||||
set(OCCT_TKOpenGles_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKOpenGles_GTests_FILES
|
||||
)
|
5
src/Visualization/TKService/GTests/FILES.cmake
Normal file
5
src/Visualization/TKService/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKService
|
||||
set(OCCT_TKService_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKService_GTests_FILES
|
||||
)
|
5
src/Visualization/TKV3d/GTests/FILES.cmake
Normal file
5
src/Visualization/TKV3d/GTests/FILES.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
# Test source files for TKV3d
|
||||
set(OCCT_TKV3d_GTests_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
|
||||
|
||||
set(OCCT_TKV3d_GTests_FILES
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user