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) install( DIRECTORY "${PUGS_SOURCE_DIR}/packages/Catch2/src/catch2" DESTINATION "include" FILES_MATCHING PATTERN "*.hpp" ) install( DIRECTORY "${PUGS_BINARY_DIR}/generated-includes/catch2" DESTINATION "include" FILES_MATCHING PATTERN "*.hpp" ) set(checkpointing_sequential_TESTS # this one should enventually integrate parallel tests test_checkpointing_Checkpoint_sequential.cpp test_checkpointing_Resume_sequential.cpp ) 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_ASTCheckpoint.cpp test_ASTCheckpointsInfo.cpp test_ASTDotPrinter.cpp test_ASTExecutionStack.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_CommunicatorManager.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_Eigen3Utils.cpp test_EigenvalueSolver.cpp test_EmbeddedData.cpp test_EmbeddedDiscreteFunctionUtils.cpp test_EscapedString.cpp test_Exceptions.cpp test_ExecutionPolicy.cpp test_Exit.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_Givens.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_LoadBalancer_serial.cpp test_MathModule.cpp test_MedianDualConnectivityBuilder.cpp test_MedianDualMeshBuilder.cpp test_NameProcessor.cpp test_NaNHelper.cpp test_OStream.cpp test_ParallelChecker_write.cpp test_ParseError.cpp test_PartitionerOptions.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_QuadraticPolynomialReconstruction.cpp test_QuadratureType.cpp test_RefId.cpp test_RefItemList.cpp test_ReproducibleSumManager.cpp test_RevisionInfo.cpp test_SmallArray.cpp test_SmallMatrix.cpp test_SmallVector.cpp test_Socket.cpp test_SocketModule.cpp test_SourceLocation.cpp test_SquareGaussQuadrature.cpp test_SquareTransformation.cpp test_Stop.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 ${checkpointing_sequential_TESTS} ) set(checkpointing_TESTS test_checkpointing_Checkpoint.cpp test_checkpointing_PrintCheckpointInfo.cpp test_checkpointing_PrintScriptFrom.cpp test_checkpointing_Resume.cpp test_checkpointing_ResumingManager.cpp test_checkpointing_ResumingUtils.cpp test_checkpointing_SetResumeFrom.cpp ) if(PUGS_HAS_HDF5) list(APPEND checkpointing_TESTS test_checkpointing_Array.cpp test_checkpointing_Connectivity.cpp test_checkpointing_DiscreteFunctionVariant.cpp test_checkpointing_HFTypes.cpp test_checkpointing_IBoundaryDescriptor.cpp test_checkpointing_IBoundaryConditionDescriptor.cpp test_checkpointing_IQuadratureDescriptor.cpp test_checkpointing_IDiscreteFunctionDescriptor.cpp test_checkpointing_IInterfaceDescriptor.cpp test_checkpointing_INamedDiscreteData.cpp test_checkpointing_ItemArray.cpp test_checkpointing_ItemArrayVariant.cpp test_checkpointing_ItemType.cpp test_checkpointing_ItemValue.cpp test_checkpointing_ItemValueVariant.cpp test_checkpointing_IWriter.cpp test_checkpointing_IZoneDescriptor.cpp test_checkpointing_Mesh.cpp test_checkpointing_OStream.cpp test_checkpointing_SubItemArrayPerItemVariant.cpp test_checkpointing_SubItemValuePerItemVariant.cpp test_checkpointing_Table.cpp test_checkpointing_VariableBCDescriptor.cpp ) endif(PUGS_HAS_HDF5) add_executable (mpi_unit_tests mpi_test_main.cpp test_Connectivity.cpp test_ConnectivityDispatcher.cpp test_DiscreteFunctionDPk.cpp test_DiscreteFunctionDPkVector.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_ExecutionStatManager.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_LoadBalancer_parallel.cpp test_MeshEdgeBoundary.cpp test_MeshEdgeInterface.cpp test_MeshFaceBoundary.cpp test_MeshFaceInterface.cpp test_MeshFlatEdgeBoundary.cpp test_MeshFlatFaceBoundary.cpp test_MeshFlatNodeBoundary.cpp test_MeshLineEdgeBoundary.cpp test_MeshLineFaceBoundary.cpp test_MeshLineNodeBoundary.cpp test_MeshNodeBoundary.cpp test_MeshNodeInterface.cpp test_MeshVariant.cpp test_Messenger.cpp test_OFStream.cpp test_ParallelChecker_read.cpp test_Partitioner.cpp test_PolynomialReconstruction_degree_1.cpp test_PolynomialReconstruction_degree_2.cpp test_PolynomialReconstructionDescriptor.cpp test_RandomEngine.cpp test_StencilBuilder_cell2cell.cpp test_StencilBuilder_node2cell.cpp test_SubItemArrayPerItemVariant.cpp test_SubItemValuePerItem.cpp test_SubItemValuePerItemVariant.cpp test_SubItemValuePerItemUtils.cpp test_SubItemArrayPerItem.cpp test_SubItemArrayPerItemUtils.cpp test_Synchronizer.cpp ${checkpointing_TESTS} ) add_library(test_Pugs_MeshDataBase MeshDataBaseForTests.cpp) add_library(test_Pugs_ParallelCheckerTester ParallelCheckerTester.cpp) target_link_libraries (test_Pugs_ParallelCheckerTester ${HIGHFIVE_TARGET}) target_link_libraries (unit_tests test_Pugs_MeshDataBase test_Pugs_ParallelCheckerTester PugsLanguageAST PugsLanguageModules PugsLanguageAlgorithms PugsLanguageUtils PugsLanguage PugsMesh PugsAlgebra PugsAnalysis PugsScheme PugsOutput PugsUtils PugsCheckpointing PugsDev Kokkos::kokkos ${PARMETIS_LIBRARIES} ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES} ${PETSC_LIBRARIES} Catch2 ${PUGS_STD_LINK_FLAGS} ${HIGHFIVE_TARGET} ${SLURM_LIBRARY} stdc++fs ) target_link_libraries (mpi_unit_tests test_Pugs_MeshDataBase test_Pugs_ParallelCheckerTester PugsAlgebra PugsAnalysis PugsUtils PugsLanguage PugsLanguageAST PugsLanguageModules PugsLanguageAlgorithms PugsMesh PugsAlgebra PugsUtils PugsLanguageUtils PugsScheme PugsOutput PugsUtils PugsCheckpointing PugsDev PugsAlgebra PugsMesh Kokkos::kokkos ${PARMETIS_LIBRARIES} ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES} ${PETSC_LIBRARIES} Catch2 ${PUGS_STD_LINK_FLAGS} ${HIGHFIVE_TARGET} ${SLURM_LIBRARY} stdc++fs )