1 if (NOT BUILD_RUNTIME_NNAPI_TEST)
3 endif(NOT BUILD_RUNTIME_NNAPI_TEST)
6 message(STATUS "Skip build NNAPI test: no runtime build")
10 nnfw_find_package(GTest)
13 set(GENERATED_CPPS "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_2_cts_tests.cpp"
14 "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_1_cts_tests.cpp"
15 "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_0_cts_tests.cpp"
16 "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_Ex_cts_tests.cpp")
18 # Skip script for generate test and use pre-generated test
19 if (GENERATE_RUNTIME_NNAPI_TESTS)
20 set(GENERATOR_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/specs/generate_test.sh")
21 file(GLOB_RECURSE TEST_SPECS "${CMAKE_CURRENT_SOURCE_DIR}/specs/*.mod.py")
23 add_custom_command(OUTPUT ${GENERATED_CPPS}
24 COMMAND ${GENERATOR_SCRIPT}
25 DEPENDS ${GENERATOR_SCRIPT} ${TEST_SPECS}
26 COMMENT "Generating runtime nnapi tests")
27 add_custom_target(generate-runtime-nnapi-tests
28 DEPENDS ${GENERATED_CPPS})
29 endif(GENERATE_RUNTIME_NNAPI_TESTS)
31 set(RUNTIME_NNAPI_TEST nnapi_gtest)
32 set(RUNTIME_NNAPI_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/TestMain.cpp
33 ${CMAKE_CURRENT_SOURCE_DIR}/src/TestNeuralNetworksWrapper.cpp
34 ${CMAKE_CURRENT_SOURCE_DIR}/src/TestTrivialModel.cpp
35 ${CMAKE_CURRENT_SOURCE_DIR}/src/TestValidation.cpp)
36 set(GENERATED_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/TestGenerated.cpp
38 set(RUNTIME_NNAPI_TEST_SRC ${RUNTIME_NNAPI_TEST_SRC} ${GENERATED_TEST_SRC})
40 add_executable(${RUNTIME_NNAPI_TEST} ${RUNTIME_NNAPI_TEST_SRC})
42 if (GENERATE_RUNTIME_NNAPI_TESTS)
43 add_dependencies(${RUNTIME_NNAPI_TEST} generate-runtime-nnapi-tests)
44 endif(GENERATE_RUNTIME_NNAPI_TESTS)
46 set(RUNTIME_NNAPI_TEST_SRC_INC ${CMAKE_CURRENT_SOURCE_DIR}/include
47 ${CMAKE_CURRENT_SOURCE_DIR}/src)
48 target_include_directories(${RUNTIME_NNAPI_TEST} PRIVATE ${RUNTIME_NNAPI_TEST_SRC_INC})
50 # Define NNTEST_ONLY_PUBLIC_API to avoid android dependency
51 target_compile_definitions(${RUNTIME_NNAPI_TEST} PRIVATE NNTEST_ONLY_PUBLIC_API)
53 target_link_libraries(${RUNTIME_NNAPI_TEST} nnfw_lib_nnapi)
54 target_link_libraries(${RUNTIME_NNAPI_TEST} gtest gmock)
55 target_link_libraries(${RUNTIME_NNAPI_TEST} ${LIB_PTHREAD} dl)
57 install(TARGETS ${RUNTIME_NNAPI_TEST} DESTINATION unittest)
59 # Default test backend: cpu
60 set(SKIPLIST_FILE_NAME ${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}.cpu)
61 install(FILES ${SKIPLIST_FILE_NAME}
63 RENAME ${RUNTIME_NNAPI_TEST}.skip
66 # Install skiplist file for target as backup
67 FILE(GLOB SKIPLIST_TARGET ${CMAKE_CURRENT_SOURCE_DIR}/${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}*)
68 FILE(GLOB SKIPLIST_NOARCH ${CMAKE_CURRENT_SOURCE_DIR}/${RUNTIME_NNAPI_TEST}.skip.noarch.*)
69 list(APPEND SKIPLIST_ALL_RUNTIME ${SKIPLIST_TARGET} ${SKIPLIST_NOARCH})
70 install(FILES ${SKIPLIST_ALL_RUNTIME} DESTINATION unittest OPTIONAL)