1 nnas_include(TargetRequire)
3 unset(REQUIRED_TARGETS)
4 list(APPEND REQUIRED_TARGETS tf2circle)
5 list(APPEND REQUIRED_TARGETS tfkit)
6 list(APPEND REQUIRED_TARGETS nnkit-run)
7 list(APPEND REQUIRED_TARGETS nnkit_tf_backend)
8 list(APPEND REQUIRED_TARGETS nnkit_randomize_action)
9 list(APPEND REQUIRED_TARGETS nnkit_HDF5_export_action)
10 list(APPEND REQUIRED_TARGETS nnkit_HDF5_import_action)
11 TargetRequire_Return(${REQUIRED_TARGETS})
13 message(STATUS "tf2circle-value_pbtxt-remote-test: run tests")
15 nncc_find_resource(TensorFlowTests)
18 # Copy [PREFIX]/test.pbtxt to PREFIX.pbtxt in binary folder
19 # Copy [PREFIX]/test.info to PREFIX.info in binary folder
20 # Copy [PREFIX]/customop.conf to PREFIX.customop.conf in binary folder
21 # Encode PREFIX.pbtxt to PREFIX.pb
23 set(TEST_REPO "${TensorFlowTests_DIR}")
24 set(TEST_PBTXT_FILENAME "test.pbtxt")
25 set(TEST_INFO_FILENAME "test.info")
26 set(TEST_CUSTOMOP_CONF_FILENAME "customop.conf")
31 list(APPEND TESTCASES ${NAME})
34 # Read "test.lst" if exists
35 include("test.lst" OPTIONAL)
37 # Do not make test if there are no remote machine information
44 endif(NOT REMOTE_USER)
46 # Do not make test if there are no testcases
54 foreach(PREFIX IN ITEMS ${TESTCASES})
55 if(NOT IS_DIRECTORY "${TEST_REPO}/${PREFIX}")
56 message(FATAL_ERROR "Missing '${PREFIX}' test")
59 set(PBTXT_SOURCE_PATH "${TEST_REPO}/${PREFIX}/${TEST_PBTXT_FILENAME}")
60 set(INFO_SOURCE_PATH "${TEST_REPO}/${PREFIX}/${TEST_INFO_FILENAME}")
61 set(CUSTOMOP_CONF_SOURCE_PATH "${TEST_REPO}/${PREFIX}/${TEST_CUSTOMOP_CONF_FILENAME}")
63 set(PBTXT_FILE "${PREFIX}.pbtxt")
64 set(PBTXT_PATH "${CMAKE_CURRENT_BINARY_DIR}/${PBTXT_FILE}")
66 set(INFO_FILE "${PREFIX}.info")
67 set(INFO_PATH "${CMAKE_CURRENT_BINARY_DIR}/${INFO_FILE}")
69 set(CUSTOMOP_CONF_FILE "${PREFIX}.${TEST_CUSTOMOP_CONF_FILENAME}") # ex) CustomOp_001.customop.conf
70 set(CUSTOMOP_CONF_PATH "${CMAKE_CURRENT_BINARY_DIR}/${CUSTOMOP_CONF_FILE}")
72 set(PB_FILE "${PREFIX}.pb")
73 set(PB_PATH "${CMAKE_CURRENT_BINARY_DIR}/${PB_FILE}")
76 add_custom_command(OUTPUT ${PBTXT_PATH}
77 COMMAND ${CMAKE_COMMAND} -E copy "${PBTXT_SOURCE_PATH}" "${PBTXT_PATH}"
78 DEPENDS ${PBTXT_SOURCE_PATH}
79 COMMENT "Generate ${PBTXT_FILE}"
83 add_custom_command(OUTPUT ${INFO_PATH}
84 COMMAND ${CMAKE_COMMAND} -E copy "${INFO_SOURCE_PATH}" "${INFO_PATH}"
85 DEPENDS ${INFO_SOURCE_PATH}
86 COMMENT "Generate ${INFO_FILE}"
89 # Generate .pb from .pbtxt
90 add_custom_command(OUTPUT ${PB_PATH}
91 COMMAND $<TARGET_FILE:tfkit> encode ${PBTXT_PATH} ${PB_PATH}
93 COMMENT "Generate ${PB_FILE}"
96 list(APPEND TEST_DEPS ${INFO_PATH} ${PB_PATH})
98 if (EXISTS "${CUSTOMOP_CONF_SOURCE_PATH}")
101 add_custom_command(OUTPUT ${CUSTOMOP_CONF_PATH}
102 COMMAND ${CMAKE_COMMAND} -E copy "${CUSTOMOP_CONF_SOURCE_PATH}" "${CUSTOMOP_CONF_PATH}"
103 DEPENDS ${CUSTOMOP_CONF_SOURCE_PATH}
104 COMMENT "Generate ${CUSTOMOP_CONF_FILE}"
107 list(APPEND TEST_DEPS ${CUSTOMOP_CONF_PATH})
109 endif (EXISTS "${CUSTOMOP_CONF_SOURCE_PATH}")
111 list(APPEND TEST_NAMES ${PREFIX})
117 set(TEST_RUNNER "${CMAKE_CURRENT_BINARY_DIR}/testall.sh")
118 set(TEST_RUNNER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testall.sh")
121 OUTPUT ${TEST_RUNNER}
122 COMMAND ${CMAKE_COMMAND} -E copy "${TEST_RUNNER_SOURCE}" "${TEST_RUNNER}"
123 DEPENDS ${TEST_RUNNER_SOURCE}
124 COMMENT "Generate test runner"
127 list(APPEND TEST_DEPS "${TEST_RUNNER}")
130 ### Generate test.config
132 set(TEST_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/test.config")
135 OUTPUT ${TEST_CONFIG}
136 COMMAND ${CMAKE_COMMAND} -E remove -f ${TEST_CONFIG}
137 COMMAND ${CMAKE_COMMAND} -E echo 'NNKIT_RUN_PATH=\"$<TARGET_FILE:nnkit-run>\"' >> ${TEST_CONFIG}
138 COMMAND ${CMAKE_COMMAND} -E echo 'TF_BACKEND_PATH=\"$<TARGET_FILE:nnkit_tf_backend>\"' >> ${TEST_CONFIG}
139 COMMAND ${CMAKE_COMMAND} -E echo 'TF2CIRCLE_PATH=\"$<TARGET_FILE:tf2circle>\"' >> ${TEST_CONFIG}
140 COMMAND ${CMAKE_COMMAND} -E echo 'RANDOMIZE_ACTION_PATH=\"$<TARGET_FILE:nnkit_randomize_action>\"' >> ${TEST_CONFIG}
141 COMMAND ${CMAKE_COMMAND} -E echo 'HDF5_EXPORT_ACTION_PATH=\"$<TARGET_FILE:nnkit_HDF5_export_action>\"' >> ${TEST_CONFIG}
142 COMMAND ${CMAKE_COMMAND} -E echo 'HDF5_IMPORT_ACTION_PATH=\"$<TARGET_FILE:nnkit_HDF5_import_action>\"' >> ${TEST_CONFIG}
143 COMMAND ${CMAKE_COMMAND} -E echo 'MODEL2NNPKG_PATH=\"${NNAS_PROJECT_SOURCE_DIR}/tools/nnpackage_tool/model2nnpkg/model2nnpkg.sh\"' >> ${TEST_CONFIG}
144 COMMAND ${CMAKE_COMMAND} -E echo 'RUNTIME_LIBRARY_PATH=\"${NNAS_PROJECT_SOURCE_DIR}/Product/out/\"' >> ${TEST_CONFIG}
149 nnkit_randomize_action
150 nnkit_HDF5_export_action
151 nnkit_HDF5_import_action
152 COMMENT "Generate test configuration"
155 list(APPEND TEST_DEPS "${TEST_CONFIG}")
157 # This "tf2circle_value_pbtxt_remote_test_deps" target enforces CMake to generate all the dependencies during "build" phase
158 add_custom_target(tf2circle_value_pbtxt_remote_test_deps ALL DEPENDS ${TEST_DEPS})
162 NAME tf2circle_value_pbtxt_remote_test
163 COMMAND "${TEST_RUNNER}"
165 "${CMAKE_CURRENT_BINARY_DIR}"