set(EXECUTABLE_OUTPUT_PATH ${PUGS_BINARY_DIR}) include_directories(${PUGS_SOURCE_DIR}/src) include_directories(${PUGS_BINARY_DIR}/src) include_directories(${PUGS_SOURCE_DIR}/tests) add_executable (unit_tests test_main.cpp test_AffectationProcessor.cpp test_AffectationToStringProcessor.cpp test_AffectationToTupleProcessor.cpp test_Array.cpp test_ArraySubscriptProcessor.cpp test_ASTBuilder.cpp test_ASTDotPrinter.cpp test_ASTModulesImporter.cpp test_ASTNode.cpp test_ASTNodeAffectationExpressionBuilder.cpp test_ASTNodeArraySubscriptExpressionBuilder.cpp test_ASTNodeBinaryOperatorExpressionBuilder.cpp test_ASTNodeBuiltinFunctionExpressionBuilder.cpp test_ASTNodeDataType.cpp test_ASTNodeDataTypeBuilder.cpp test_ASTNodeDataTypeChecker.cpp test_ASTNodeDataTypeFlattener.cpp test_ASTNodeDeclarationToAffectationConverter.cpp test_ASTNodeEmptyBlockCleaner.cpp test_ASTNodeExpressionBuilder.cpp test_ASTNodeFunctionEvaluationExpressionBuilder.cpp test_ASTNodeFunctionExpressionBuilder.cpp test_ASTNodeIncDecExpressionBuilder.cpp test_ASTNodeJumpPlacementChecker.cpp test_ASTNodeListAffectationExpressionBuilder.cpp test_ASTNodeListProcessor.cpp test_ASTNodeNaturalConversionChecker.cpp test_ASTNodeTypeCleaner.cpp test_ASTNodeUnaryOperatorExpressionBuilder.cpp test_ASTPrinter.cpp test_ASTSymbolTableBuilder.cpp test_ASTSymbolInitializationChecker.cpp test_BreakProcessor.cpp test_BinaryExpressionProcessor_arithmetic.cpp test_BinaryExpressionProcessor_comparison.cpp test_BinaryExpressionProcessor_equality.cpp test_BinaryExpressionProcessor_logic.cpp test_BinaryExpressionProcessor_raw.cpp test_BinaryExpressionProcessor_shift.cpp test_BinaryOperatorMangler.cpp test_BiCGStab.cpp test_BuildInfo.cpp test_BuiltinFunctionEmbedder.cpp test_BuiltinFunctionEmbedderUtils.cpp test_BuiltinFunctionEmbedderTable.cpp test_BuiltinFunctionProcessor.cpp test_CastArray.cpp test_CellIntegrator.cpp test_CellType.cpp test_ConsoleManager.cpp test_CG.cpp test_ConcatExpressionProcessor.cpp test_ConsoleManager.cpp test_ContinueProcessor.cpp test_CRSGraph.cpp test_CRSMatrix.cpp test_CRSMatrixDescriptor.cpp test_CubeGaussQuadrature.cpp test_CubeTransformation.cpp test_DataVariant.cpp test_Demangle.cpp test_DiamondDualConnectivityBuilder.cpp test_DiamondDualMeshBuilder.cpp test_DiscreteFunctionDescriptorP0.cpp test_DiscreteFunctionDescriptorP0Vector.cpp test_DiscreteFunctionType.cpp test_DiscreteFunctionUtils.cpp test_DoWhileProcessor.cpp test_Dual1DConnectivityBuilder.cpp test_Dual1DMeshBuilder.cpp test_DualConnectivityManager.cpp test_DualMeshManager.cpp test_DualMeshType.cpp test_EdgeIntegrator.cpp test_EigenvalueSolver.cpp test_EmbeddedData.cpp test_EmbeddedDiscreteFunctionUtils.cpp test_EscapedString.cpp test_Exceptions.cpp test_ExecutionPolicy.cpp test_FaceIntegrator.cpp test_FakeProcessor.cpp test_ForProcessor.cpp test_FunctionArgumentConverter.cpp test_FunctionProcessor.cpp test_FunctionSymbolId.cpp test_FunctionTable.cpp test_GaussLegendreQuadratureDescriptor.cpp test_GaussLobattoQuadratureDescriptor.cpp test_GaussQuadratureDescriptor.cpp test_IfProcessor.cpp test_IncDecExpressionProcessor.cpp test_IntegrateCellArray.cpp test_IntegrateCellValue.cpp test_IntegrateOnCells.cpp test_INodeProcessor.cpp test_ItemId.cpp test_ItemType.cpp test_LinearSolver.cpp test_LinearSolverOptions.cpp test_LineTransformation.cpp test_ListAffectationProcessor.cpp test_MathModule.cpp test_MedianDualConnectivityBuilder.cpp test_MedianDualMeshBuilder.cpp test_NameProcessor.cpp test_NaNHelper.cpp test_OStream.cpp test_ParseError.cpp test_PETScUtils.cpp test_PrimalToDiamondDualConnectivityDataMapper.cpp test_PrimalToDual1DConnectivityDataMapper.cpp test_PrimalToMedianDualConnectivityDataMapper.cpp test_PrismGaussQuadrature.cpp test_PrismTransformation.cpp test_PugsAssert.cpp test_PugsFunctionAdapter.cpp test_PugsUtils.cpp test_PyramidGaussQuadrature.cpp test_PyramidTransformation.cpp test_QuadratureType.cpp test_RefId.cpp test_RefItemList.cpp test_RevisionInfo.cpp test_SmallArray.cpp test_SmallMatrix.cpp test_SmallVector.cpp test_Socket.cpp test_SocketModule.cpp test_SquareGaussQuadrature.cpp test_SquareTransformation.cpp test_SymbolTable.cpp test_Table.cpp test_TetrahedronGaussQuadrature.cpp test_TetrahedronTransformation.cpp test_TensorialGaussLegendreQuadrature.cpp test_TensorialGaussLobattoQuadrature.cpp test_Timer.cpp test_TinyMatrix.cpp test_TinyVector.cpp test_TriangleGaussQuadrature.cpp test_TriangleTransformation.cpp test_TupleToVectorProcessor.cpp test_UnaryExpressionProcessor.cpp test_UnaryOperatorMangler.cpp test_Vector.cpp test_WhileProcessor.cpp ) add_executable (mpi_unit_tests mpi_test_main.cpp test_Connectivity.cpp test_DiscreteFunctionIntegrator.cpp test_DiscreteFunctionIntegratorByZone.cpp test_DiscreteFunctionInterpoler.cpp test_DiscreteFunctionInterpolerByZone.cpp test_DiscreteFunctionP0.cpp test_DiscreteFunctionP0Vector.cpp test_DiscreteFunctionVectorIntegrator.cpp test_DiscreteFunctionVectorIntegratorByZone.cpp test_DiscreteFunctionVectorInterpoler.cpp test_DiscreteFunctionVectorInterpolerByZone.cpp test_EmbeddedDiscreteFunctionMathFunctions1D.cpp test_EmbeddedDiscreteFunctionMathFunctions2D.cpp test_EmbeddedDiscreteFunctionMathFunctions3D.cpp test_EmbeddedDiscreteFunctionOperators1D.cpp test_EmbeddedDiscreteFunctionOperators2D.cpp test_EmbeddedDiscreteFunctionOperators3D.cpp test_InterpolateItemArray.cpp test_InterpolateItemValue.cpp test_ItemArray.cpp test_ItemArrayUtils.cpp test_ItemArrayVariant.cpp test_ItemArrayVariantFunctionInterpoler.cpp test_ItemValue.cpp test_ItemValueUtils.cpp test_ItemValueVariant.cpp test_ItemValueVariantFunctionInterpoler.cpp test_MeshEdgeBoundary.cpp test_MeshFaceBoundary.cpp test_MeshFlatEdgeBoundary.cpp test_MeshFlatFaceBoundary.cpp test_MeshFlatNodeBoundary.cpp test_MeshLineEdgeBoundary.cpp test_MeshLineFaceBoundary.cpp test_MeshLineNodeBoundary.cpp test_MeshNodeBoundary.cpp test_Messenger.cpp test_OFStream.cpp test_Partitioner.cpp test_RandomEngine.cpp test_SubItemArrayPerItemVariant.cpp test_SubItemValuePerItem.cpp test_SubItemValuePerItemVariant.cpp test_SubItemValuePerItemUtils.cpp test_SubItemArrayPerItem.cpp test_SubItemArrayPerItemUtils.cpp test_Synchronizer.cpp ) add_library(test_Pugs_MeshDataBase MeshDataBaseForTests.cpp) target_link_libraries (unit_tests test_Pugs_MeshDataBase PugsLanguageAST PugsLanguageModules PugsLanguageAlgorithms PugsLanguageUtils PugsLanguage PugsMesh PugsAlgebra PugsAnalysis PugsScheme PugsOutput PugsUtils Kokkos::kokkos ${PARMETIS_LIBRARIES} ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES} ${PETSC_LIBRARIES} Catch2 ${PUGS_STD_LINK_FLAGS} stdc++fs ) target_link_libraries (mpi_unit_tests test_Pugs_MeshDataBase PugsAlgebra PugsAnalysis PugsUtils PugsLanguage PugsLanguageAST PugsLanguageModules PugsLanguageAlgorithms PugsMesh PugsAlgebra PugsUtils PugsLanguageUtils PugsScheme PugsOutput PugsUtils PugsAlgebra PugsMesh Kokkos::kokkos ${PARMETIS_LIBRARIES} ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES} ${PETSC_LIBRARIES} Catch2 ${PUGS_STD_LINK_FLAGS} stdc++fs ) enable_testing() if(${PUGS_HAS_MPI}) set(MPIEXEC_OPTION_FLAGS --oversubscribe) if (NOT "$ENV{GITLAB_CI}" STREQUAL "") set(MPIEXEC_OPTION_FLAGS ${MPIEXEC_OPTION_FLAGS} --allow-run-as-root) endif() set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 3 ${MPIEXEC_OPTION_FLAGS} --path ${PUGS_BINARY_DIR}) endif()