Imported Upstream version 1.8.0
[platform/core/ml/nnfw.git] / compiler / tf2nnpackage-value-remote-test / CMakeLists.txt
1 include("test.lst")
2
3 # Do not make test if there are no remote machine information
4 if(NOT REMOTE_IP)
5   message(STATUS "tf2nnpackage-value-remote-test: need to set REMOTE IP")
6   return()
7 endif(NOT REMOTE_IP)
8
9 if(NOT REMOTE_USER)
10   message(STATUS "tf2nnpackage-value-remote-test: need to set REMOTE_USER")
11   return()
12 endif(NOT REMOTE_USER)
13
14 nnas_include(TargetRequire)
15
16 unset(REQUIRED_TARGETS)
17 list(APPEND REQUIRED_TARGETS testDataGenerator)
18 TargetRequire_Return(${REQUIRED_TARGETS})
19
20 message(STATUS "tf2nnpackage-value-remote-test: run tests")
21
22 unset(TEST_NAMES)
23
24 nncc_find_resource(TensorFlowLiteRecipes)
25 set(TFLITE_RECIPE_REPO "${TensorFlowLiteRecipes_DIR}")
26
27 file(GLOB SUBDIR RELATIVE ${TFLITE_RECIPE_REPO} ${TFLITE_RECIPE_REPO}/*)
28 foreach(DIR IN ITEMS ${SUBDIR})
29   if(IS_DIRECTORY ${TFLITE_RECIPE_REPO}/${DIR})
30     list(APPEND TEST_NAMES ${DIR})
31   endif()
32 endforeach()
33
34 get_target_property(ARTIFACTS_SRC_PATH testDataGenerator SOURCE_DIR)
35
36 # In this test, only the runtime test is performed because the test from tf to
37 # nnpackage is done in common-artifacts, and for this runtime test, generation of
38 # test data is required. And, tcgenerate in ${ARTIFACTS_SRC_PATH}/exclude.lst
39 # means it won't generate test data, which is why below "tcgenerate" macro excludes
40 # specific opearators from runtime test.
41 # Also, since circlize and optimize macro included in `exclude.lst` file is only
42 # needed in common-artifacts, it has no function here.
43 macro(circlize)
44 endmacro()
45 macro(optimize)
46 endmacro()
47
48 macro(tcgenerate NAME)
49   list(REMOVE_ITEM TEST_NAMES ${NAME})
50 endmacro()
51
52 include("${ARTIFACTS_SRC_PATH}/exclude.lst")
53
54 # Copy testall
55 set(TEST_RUNNER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testall.sh")
56 set(TEST_RUNNER "${CMAKE_CURRENT_BINARY_DIR}/testall.sh")
57
58 add_custom_command(
59   OUTPUT ${TEST_RUNNER}
60   COMMAND ${CMAKE_COMMAND} -E copy "${TEST_RUNNER_SOURCE}" "${TEST_RUNNER}"
61   DEPENDS ${TEST_RUNNER_SOURCE}
62   COMMENT "Generate test runner"
63 )
64
65 list(APPEND TEST_DEPS "${TEST_RUNNER}")
66
67 get_target_property(ARTIFACTS_BIN_PATH testDataGenerator BINARY_DIR)
68
69 # Generate test.config
70 set(TEST_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/test.config")
71
72 add_custom_command(
73   OUTPUT ${TEST_CONFIG}
74   COMMAND ${CMAKE_COMMAND} -E remove -f ${TEST_CONFIG}
75   COMMAND ${CMAKE_COMMAND} -E echo 'RUNTIME_LIBRARY_PATH=\"${NNAS_PROJECT_SOURCE_DIR}/Product/out/\"' >> ${TEST_CONFIG}
76   COMMENT "Generate test configuration"
77 )
78
79 list(APPEND TEST_DEPS "${TEST_CONFIG}")
80
81 # This "tf2nnpackage_value_remote_test_deps" target enforces CMake to generate all the dependencies during "build" phase
82 add_custom_target(tf2nnpackage_value_remote_test_deps ALL DEPENDS ${TEST_DEPS})
83
84 # Run tests
85 add_test(
86   NAME tf2nnpackage_value_remote_test
87   COMMAND "${TEST_RUNNER}"
88           "${TEST_CONFIG}"
89           "${ARTIFACTS_BIN_PATH}"
90           "${REMOTE_IP}"
91           "${REMOTE_USER}"
92           ${TEST_NAMES}
93 )