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_ArrayUtils.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_BiCGStab.cpp test_BuiltinFunctionEmbedder.cpp test_BuiltinFunctionEmbedderTable.cpp test_BuiltinFunctionProcessor.cpp test_CG.cpp test_ContinueProcessor.cpp test_ConcatExpressionProcessor.cpp test_CRSMatrix.cpp test_DataVariant.cpp test_DoWhileProcessor.cpp test_EmbeddedData.cpp test_ExecutionPolicy.cpp test_FakeProcessor.cpp test_ForProcessor.cpp test_FunctionArgumentConverter.cpp test_FunctionProcessor.cpp test_FunctionSymbolId.cpp test_FunctionTable.cpp test_IfProcessor.cpp test_IncDecExpressionProcessor.cpp test_INodeProcessor.cpp test_ItemType.cpp test_ListAffectationProcessor.cpp test_MathModule.cpp test_NameProcessor.cpp test_OStreamProcessor.cpp test_ParseError.cpp test_PugsFunctionAdapter.cpp test_PugsAssert.cpp test_RevisionInfo.cpp test_SparseMatrixDescriptor.cpp test_SymbolTable.cpp test_TinyMatrix.cpp test_TinyVector.cpp test_TupleToVectorProcessor.cpp test_UnaryExpressionProcessor.cpp test_Vector.cpp test_WhileProcessor.cpp ) add_executable (mpi_unit_tests mpi_test_main.cpp mpi_test_Messenger.cpp ) target_link_libraries (unit_tests PugsLanguage PugsLanguageAST PugsLanguageModules PugsLanguageAlgorithms PugsLanguageUtils PugsMesh PugsAlgebra PugsUtils 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 PugsUtils PugsAlgebra PugsMesh kokkos ${PARMETIS_LIBRARIES} ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES} ${PETSC_LIBRARIES} Catch2 ${PUGS_STD_LINK_FLAGS} stdc++fs ) enable_testing() #parse catch tests ParseAndAddCatchTests(unit_tests) 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() ParseAndAddCatchTests(mpi_unit_tests) unset(OptionalCatchTestLauncher)