set(CINN_PYTHON_TEST_DIR ${CMAKE_BINARY_DIR}/test/cinn) add_custom_command( OUTPUT ${CMAKE_BINARY_DIR}/test/__init__.py POST_BUILD COMMAND cp -rf --remove-destination ${PROJECT_SOURCE_DIR}/test/cinn ${CMAKE_BINARY_DIR}/test/ COMMAND cd ${CMAKE_BINARY_DIR}/test/ && touch __init__.py) add_custom_target(COPY_CINN_PYTHON_TESTS ALL DEPENDS ${CMAKE_BINARY_DIR}/test/__init__.py) set(BASIC_TEST_NAMES) foreach(basic_test_name ${BASIC_TEST_NAMES}) add_test( NAME ${basic_test_name} COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}:${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH} python3 ${CMAKE_CURRENT_SOURCE_DIR}/${basic_test_name}.py WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endforeach() if(WITH_GPU) file( GLOB CINN_OP_TEST RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "ops/test_*.py") set(EXCLUDE_OP test_conv2d_op) foreach(op_test_name ${EXCLUDE_OP}) list(REMOVE_ITEM CINN_OP_TEST ops/${op_test_name}.py) endforeach() foreach(op_test_name ${CINN_OP_TEST}) string(REGEX REPLACE ".py" "" op_test_name ${op_test_name}) add_test( NAME ${op_test_name} COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}:${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${op_test_name}.py WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endforeach() # test op mapper file( GLOB CINN_OP_MAPPER_TEST RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "op_mappers/test_*.py") set(EXCLUDE_OP_MAPPER test_mul_op test_conv2d_op) foreach(op_mapper_test_name ${EXCLUDE_OP_MAPPER}) list(REMOVE_ITEM CINN_OP_MAPPER_TEST op_mappers/${op_mapper_test_name}.py) endforeach() foreach(op_mapper_test_name ${CINN_OP_MAPPER_TEST}) string(REGEX REPLACE ".py" "" op_mapper_test_name ${op_mapper_test_name}) add_test( NAME "${op_mapper_test_name}_mapper" COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}:${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${op_mapper_test_name}.py WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endforeach() # test pass test file( GLOB CINN_PASS_TEST RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "passes/test_*.py") set(EXCLUDE_PASS ${EXCLUDE_PASS} test_fusion_fallback_pass) set(EXCLUDE_PASS ${EXCLUDE_PASS} test_accuracy_check_pass) foreach(pass_test_name ${EXCLUDE_PASS}) list(REMOVE_ITEM CINN_PASS_TEST passes/${pass_test_name}.py) endforeach() foreach(pass_test_name ${CINN_PASS_TEST}) string(REGEX REPLACE ".py" "" pass_test_name ${pass_test_name}) add_test( NAME ${pass_test_name} COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}:${CMAKE_BINARY_DIR}/python:$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${pass_test_name}.py WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endforeach() file( GLOB CINN_RUNTIME_TEST RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "runtime/test_*.py") foreach(runtime_test_name ${EXCLUDE_RUNTIME}) list(REMOVE_ITEM CINN_RUNTIME_TEST runtime/${runtime_test_name}.py) endforeach() foreach(runtime_test_name ${CINN_RUNTIME_TEST}) string(REGEX REPLACE ".py" "" runtime_test_name ${runtime_test_name}) add_test( NAME ${runtime_test_name} COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}:${CMAKE_BINARY_DIR}/python/:$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${runtime_test_name}.py WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endforeach() file( GLOB CINN_IR_TEST RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "ir/test_*.py") foreach(ir_test_name ${CINN_IR_TEST}) string(REGEX REPLACE ".py" "" ir_test_name ${ir_test_name}) add_test( NAME ${ir_test_name} COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_BINARY_DIR}:${CMAKE_BINARY_DIR}/python/:$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${ir_test_name}.py WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endforeach() endif()