1 # TODO use local test.recipe files for small networks
2 file(GLOB RECIPES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/test.recipe")
4 foreach(RECIPE IN ITEMS ${RECIPES})
5 get_filename_component(RECIPE_PREFIX ${RECIPE} DIRECTORY)
7 set(RECIPE_SOURCE_FILE "${RECIPE_PREFIX}.recipe")
8 set(RECIPE_OUTPUT_FILE "${RECIPE_PREFIX}.tflite")
9 set(CIRCLE_OUTPUT_FILE "${RECIPE_PREFIX}.circle")
12 add_custom_command(OUTPUT "${RECIPE_SOURCE_FILE}"
13 COMMAND ${CMAKE_COMMAND} -E copy_if_different
14 "${CMAKE_CURRENT_SOURCE_DIR}/${RECIPE}" "${RECIPE_SOURCE_FILE}"
15 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${RECIPE}"
16 COMMENT "Generating ${RECIPE_SOURCE_FILE}")
19 add_custom_command(OUTPUT "${RECIPE_OUTPUT_FILE}"
20 COMMAND tflchef-file "${RECIPE_SOURCE_FILE}" "${RECIPE_OUTPUT_FILE}"
21 DEPENDS tflchef-file "${RECIPE_SOURCE_FILE}"
22 COMMENT "Generating ${RECIPE_OUTPUT_FILE}")
25 add_custom_command(OUTPUT "${CIRCLE_OUTPUT_FILE}"
26 COMMAND tflite2circle "${RECIPE_OUTPUT_FILE}" "${CIRCLE_OUTPUT_FILE}"
27 DEPENDS tflite2circle "${RECIPE_OUTPUT_FILE}"
28 COMMENT "Generating ${CIRCLE_OUTPUT_FILE}")
30 list(APPEND TESTFILES "${CIRCLE_OUTPUT_FILE}")
33 # Generate from res/TensorFlowLiteRecipes
34 nncc_find_resource(TensorFlowLiteRecipes)
35 set(TENSORFLOWLITERECIPES_DIR "${TensorFlowLiteRecipes_DIR}")
37 file(GLOB RECIPES RELATIVE ${TENSORFLOWLITERECIPES_DIR} "${TENSORFLOWLITERECIPES_DIR}/*/test.recipe")
39 foreach(RECIPE IN ITEMS ${RECIPES})
40 get_filename_component(RECIPE_PREFIX ${RECIPE} DIRECTORY)
42 set(RECIPE_SOURCE_FILE "${RECIPE_PREFIX}.recipe")
43 set(RECIPE_OUTPUT_FILE "${RECIPE_PREFIX}.tflite")
44 set(CIRCLE_OUTPUT_FILE "${RECIPE_PREFIX}.circle")
47 add_custom_command(OUTPUT "${RECIPE_SOURCE_FILE}"
48 COMMAND ${CMAKE_COMMAND} -E copy_if_different
49 "${TENSORFLOWLITERECIPES_DIR}/${RECIPE}" "${RECIPE_SOURCE_FILE}"
50 DEPENDS "${TENSORFLOWLITERECIPES_DIR}/${RECIPE}"
51 COMMENT "Generating ${RECIPE_SOURCE_FILE}")
54 add_custom_command(OUTPUT "${RECIPE_OUTPUT_FILE}"
55 COMMAND tflchef-file "${RECIPE_SOURCE_FILE}" "${RECIPE_OUTPUT_FILE}"
56 DEPENDS tflchef-file "${RECIPE_SOURCE_FILE}"
57 COMMENT "Generating ${RECIPE_OUTPUT_FILE}")
60 add_custom_command(OUTPUT "${CIRCLE_OUTPUT_FILE}"
61 COMMAND tflite2circle "${RECIPE_OUTPUT_FILE}" "${CIRCLE_OUTPUT_FILE}"
62 DEPENDS tflite2circle "${RECIPE_OUTPUT_FILE}"
63 COMMENT "Generating ${CIRCLE_OUTPUT_FILE}")
65 list(APPEND TESTFILES "${CIRCLE_OUTPUT_FILE}")
68 # Generate from res/CircleRecipes
69 # NOTE duplicate names should not exist or test may be incorrect
70 nncc_find_resource(CircleRecipes)
71 set(CIRCLERECIPES_DIR "${CircleRecipes_DIR}")
73 file(GLOB RECIPES2 RELATIVE ${CIRCLERECIPES_DIR} "${CIRCLERECIPES_DIR}/*/test.recipe")
75 foreach(RECIPE IN ITEMS ${RECIPES2})
76 get_filename_component(RECIPE_PREFIX ${RECIPE} DIRECTORY)
78 set(RECIPE_SOURCE_FILE "${RECIPE_PREFIX}.recipe")
79 set(CIRCLE_OUTPUT_FILE "${RECIPE_PREFIX}.circle")
82 add_custom_command(OUTPUT "${RECIPE_SOURCE_FILE}"
83 COMMAND ${CMAKE_COMMAND} -E copy_if_different
84 "${CIRCLERECIPES_DIR}/${RECIPE}" "${RECIPE_SOURCE_FILE}"
85 DEPENDS "${CIRCLERECIPES_DIR}/${RECIPE}"
86 COMMENT "Generating ${RECIPE_SOURCE_FILE}")
89 add_custom_command(OUTPUT "${CIRCLE_OUTPUT_FILE}"
90 COMMAND circlechef-file "${RECIPE_SOURCE_FILE}" "${CIRCLE_OUTPUT_FILE}"
91 DEPENDS circlechef-file "${RECIPE_SOURCE_FILE}"
92 COMMENT "Generating ${CIRCLE_OUTPUT_FILE}")
94 list(APPEND TESTFILES "${CIRCLE_OUTPUT_FILE}")
97 # Add a dummy target to create a target-level dependency.
98 # TODO Find a way to create dependency between CTest tests (added below) and generated testfiles.
99 add_custom_target(luci_testfiles ALL DEPENDS ${TESTFILES})
102 list(APPEND DAILY_READ_TESTS ${NAME})
106 list(APPEND DAILY_WRITE_TESTS ${NAME})
111 # Read "test.local.lst" if exists
112 include("test.local.lst" OPTIONAL)
114 add_test(NAME luci_unit_readtest
115 COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/readverify.sh"
116 "${CMAKE_CURRENT_BINARY_DIR}"
117 "$<TARGET_FILE:luci_readtester>"
121 add_test(NAME luci_unit_writetest
122 COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/writeverify.sh"
123 "${CMAKE_CURRENT_BINARY_DIR}"
124 "$<TARGET_FILE:luci_writetester>"