summaryrefslogtreecommitdiff
path: root/compiler/luci/tests/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/luci/tests/CMakeLists.txt')
-rw-r--r--compiler/luci/tests/CMakeLists.txt97
1 files changed, 97 insertions, 0 deletions
diff --git a/compiler/luci/tests/CMakeLists.txt b/compiler/luci/tests/CMakeLists.txt
new file mode 100644
index 000000000..4e5639047
--- /dev/null
+++ b/compiler/luci/tests/CMakeLists.txt
@@ -0,0 +1,97 @@
+# TODO use local test.recipe files for small networks
+file(GLOB RECIPES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/test.recipe")
+
+foreach(RECIPE IN ITEMS ${RECIPES})
+ get_filename_component(RECIPE_PREFIX ${RECIPE} DIRECTORY)
+
+ set(RECIPE_SOURCE_FILE "${RECIPE_PREFIX}.recipe")
+ set(RECIPE_OUTPUT_FILE "${RECIPE_PREFIX}.tflite")
+ set(CIRCLE_OUTPUT_FILE "${RECIPE_PREFIX}.circle")
+
+ # Copy .recipe
+ add_custom_command(OUTPUT "${RECIPE_SOURCE_FILE}"
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${CMAKE_CURRENT_SOURCE_DIR}/${RECIPE}" "${RECIPE_SOURCE_FILE}"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${RECIPE}"
+ COMMENT "Generating ${RECIPE_SOURCE_FILE}")
+
+ # Generate .tflite
+ add_custom_command(OUTPUT "${RECIPE_OUTPUT_FILE}"
+ COMMAND tflchef-file "${RECIPE_SOURCE_FILE}" "${RECIPE_OUTPUT_FILE}"
+ DEPENDS tflchef-file "${RECIPE_SOURCE_FILE}"
+ COMMENT "Generating ${RECIPE_OUTPUT_FILE}")
+
+ # Generate .circle
+ add_custom_command(OUTPUT "${CIRCLE_OUTPUT_FILE}"
+ COMMAND tflite2circle "${RECIPE_OUTPUT_FILE}" "${CIRCLE_OUTPUT_FILE}"
+ DEPENDS tflite2circle "${RECIPE_OUTPUT_FILE}"
+ COMMENT "Generating ${CIRCLE_OUTPUT_FILE}")
+
+ list(APPEND TESTFILES "${CIRCLE_OUTPUT_FILE}")
+endforeach(RECIPE)
+
+# Generate from res/TensorFlowLiteRecipes
+nncc_find_resource(TensorFlowLiteRecipes)
+set(TENSORFLOWLITERECIPES_DIR "${TensorFlowLiteRecipes_DIR}")
+
+file(GLOB RECIPES RELATIVE ${TENSORFLOWLITERECIPES_DIR} "${TENSORFLOWLITERECIPES_DIR}/*/test.recipe")
+
+foreach(RECIPE IN ITEMS ${RECIPES})
+ get_filename_component(RECIPE_PREFIX ${RECIPE} DIRECTORY)
+
+ set(RECIPE_SOURCE_FILE "${RECIPE_PREFIX}.recipe")
+ set(RECIPE_OUTPUT_FILE "${RECIPE_PREFIX}.tflite")
+ set(CIRCLE_OUTPUT_FILE "${RECIPE_PREFIX}.circle")
+
+ # Copy .recipe
+ add_custom_command(OUTPUT "${RECIPE_SOURCE_FILE}"
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${TENSORFLOWLITERECIPES_DIR}/${RECIPE}" "${RECIPE_SOURCE_FILE}"
+ DEPENDS "${TENSORFLOWLITERECIPES_DIR}/${RECIPE}"
+ COMMENT "Generating ${RECIPE_SOURCE_FILE}")
+
+ # Generate .tflite
+ add_custom_command(OUTPUT "${RECIPE_OUTPUT_FILE}"
+ COMMAND tflchef-file "${RECIPE_SOURCE_FILE}" "${RECIPE_OUTPUT_FILE}"
+ DEPENDS tflchef-file "${RECIPE_SOURCE_FILE}"
+ COMMENT "Generating ${RECIPE_OUTPUT_FILE}")
+
+ # Generate .circle
+ add_custom_command(OUTPUT "${CIRCLE_OUTPUT_FILE}"
+ COMMAND tflite2circle "${RECIPE_OUTPUT_FILE}" "${CIRCLE_OUTPUT_FILE}"
+ DEPENDS tflite2circle "${RECIPE_OUTPUT_FILE}"
+ COMMENT "Generating ${CIRCLE_OUTPUT_FILE}")
+
+ list(APPEND TESTFILES "${CIRCLE_OUTPUT_FILE}")
+endforeach(RECIPE)
+
+# Add a dummy target to create a target-level dependency.
+# TODO Find a way to create dependency between CTest tests (added below) and generated testfiles.
+add_custom_target(luci_testfiles ALL DEPENDS ${TESTFILES})
+
+macro(addread NAME)
+ list(APPEND DAILY_READ_TESTS ${NAME})
+endmacro(addread)
+
+macro(addwrite NAME)
+ list(APPEND DAILY_WRITE_TESTS ${NAME})
+endmacro(addwrite)
+
+# Read "test.lst"
+include("test.lst")
+# Read "test.local.lst" if exists
+include("test.local.lst" OPTIONAL)
+
+add_test(NAME luci_unit_readtest
+ COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/readverify.sh"
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "$<TARGET_FILE:luci_readtester>"
+ ${DAILY_READ_TESTS}
+)
+
+add_test(NAME luci_unit_writetest
+ COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/writeverify.sh"
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "$<TARGET_FILE:luci_writetester>"
+ ${DAILY_WRITE_TESTS}
+)