Imported Upstream version 1.25.0
[platform/core/ml/nnfw.git] / compiler / pota-quantization-value-test / CMakeLists.txt
1 if(NOT ENABLE_TEST)
2   return()
3 endif(NOT ENABLE_TEST)
4
5 unset(QUANTIZATION_VALUE_TEST)
6 unset(QUANTIZATION_VALUE_TEST_WITH_PARAM)
7 unset(QUANTIZATION_CONFIG_VALUE_TEST)
8 unset(QUANTIZATION_CONFIG_VALUE_TEST_WITH_PARAM)
9 unset(QUANTIZATION_WO_VALUE_TEST_WITH_PARAM)
10
11 macro(addTest NAME GRANULARITY DTYPE)
12   list(APPEND QUANTIZATION_VALUE_TEST ${NAME})
13   list(APPEND QUANTIZATION_VALUE_TEST_WITH_PARAM ${NAME} ${GRANULARITY} ${DTYPE})
14 endmacro(addTest)
15
16 macro(addQConfTest NAME GRANULARITY DTYPE)
17   list(APPEND QUANTIZATION_CONFIG_VALUE_TEST ${NAME})
18   list(APPEND QUANTIZATION_CONFIG_VALUE_TEST_WITH_PARAM ${NAME} ${GRANULARITY} ${DTYPE})
19 endmacro(addQConfTest)
20
21 macro(addWeightsOnlyTest NAME GRANULARITY DTYPE)
22     list(APPEND QUANTIZATION_WO_VALUE_TEST_WITH_PARAM ${NAME} ${GRANULARITY} ${DTYPE})
23 endmacro(addWeightsOnlyTest)
24
25 # Read "test.lst"
26 include("test.lst")
27 # Read "test.local.lst" if exists
28 include("test.local.lst" OPTIONAL)
29
30 unset(TEST_DEPS)
31
32 get_target_property(ARTIFACTS_BIN_PATH testDataGenerator BINARY_DIR)
33
34 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gen_h5_explicit_inputs.py"
35                "${CMAKE_CURRENT_BINARY_DIR}/gen_h5_explicit_inputs.py" COPYONLY)
36
37 set(VIRTUALENV "${NNCC_OVERLAY_DIR}/venv_2_12_1")
38
39 ###
40 ### Generate test.config
41 ###
42 set(TEST_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/test.config")
43
44 add_custom_command(
45   OUTPUT ${TEST_CONFIG}
46   COMMAND ${CMAKE_COMMAND} -E remove -f ${TEST_CONFIG}
47   COMMAND ${CMAKE_COMMAND} -E echo 'RECORD_MINMAX_PATH=\"$<TARGET_FILE:record-minmax>\"' >> ${TEST_CONFIG}
48   COMMAND ${CMAKE_COMMAND} -E echo 'CIRCLE_QUANTIZER_PATH=\"$<TARGET_FILE:circle-quantizer>\"' >> ${TEST_CONFIG}
49   COMMAND ${CMAKE_COMMAND} -E echo 'CIRCLE_TENSORDUMP_PATH=\"$<TARGET_FILE:circle-tensordump>\"' >> ${TEST_CONFIG}
50   COMMAND ${CMAKE_COMMAND} -E echo 'VIRTUALENV=\"${VIRTUALENV}\"' >> ${TEST_CONFIG}
51   DEPENDS record-minmax
52   DEPENDS circle-quantizer
53   DEPENDS circle-tensordump
54   COMMENT "Generate test configuration"
55 )
56
57 # Import pics module
58 get_target_property(PICS_BIN_PATH pics BINARY_DIR)
59 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/circle
60                    COMMAND ${CMAKE_COMMAND} -E create_symlink
61                    ${PICS_BIN_PATH}/circle ${CMAKE_CURRENT_BINARY_DIR}/circle)
62
63 list(APPEND TEST_DEPS "${TEST_CONFIG}" "${CMAKE_CURRENT_BINARY_DIR}/circle")
64
65 # This enforces CMake to generate all the dependencies during "build" phase
66 add_custom_target(pota_quantization_value_test_deps ALL DEPENDS ${TEST_DEPS})
67
68 # Run tests
69 add_test(
70   NAME pota_fake_wquant_test
71   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_fake_wquant.sh"
72           "${TEST_CONFIG}"
73           "${ARTIFACTS_BIN_PATH}"
74           ${QUANTIZATION_VALUE_TEST_WITH_PARAM}
75 )
76
77 add_test(
78   NAME pota_record_minmax_test
79   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_record_minmax.sh"
80           "${TEST_CONFIG}"
81           "${ARTIFACTS_BIN_PATH}"
82           ${QUANTIZATION_VALUE_TEST_WITH_PARAM}
83 )
84
85 add_test(
86   NAME pota_quantization_test
87   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_quantization.sh"
88           "${TEST_CONFIG}"
89           "${ARTIFACTS_BIN_PATH}"
90           ${QUANTIZATION_VALUE_TEST_WITH_PARAM}
91 )
92
93 add_test(
94   NAME pota_fake_wquant_test_with_config
95   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_fake_wquant_with_config.sh"
96           "${TEST_CONFIG}"
97           "${ARTIFACTS_BIN_PATH}"
98           ${QUANTIZATION_CONFIG_VALUE_TEST_WITH_PARAM}
99 )
100
101 add_test(
102   NAME pota_parallel_record_minmax_test
103   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_parallel_record_minmax.sh"
104           "${TEST_CONFIG}"
105           "${ARTIFACTS_BIN_PATH}"
106           ${QUANTIZATION_VALUE_TEST_WITH_PARAM}
107 )
108
109 add_test(
110   NAME pota_quantization_test_with_config
111   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_quantization_with_config.sh"
112           "${TEST_CONFIG}"
113           "${ARTIFACTS_BIN_PATH}"
114           ${QUANTIZATION_CONFIG_VALUE_TEST_WITH_PARAM}
115 )
116
117 add_test(
118   NAME pota_wo_quantization_test
119   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test_wo_quantization.sh"
120           "${TEST_CONFIG}"
121           "${ARTIFACTS_BIN_PATH}"
122           ${QUANTIZATION_WO_VALUE_TEST_WITH_PARAM}
123 )
124
125 set_tests_properties(pota_record_minmax_test PROPERTIES DEPENDS pota_fake_wquant_test)
126 set_tests_properties(pota_quantization_test PROPERTIES DEPENDS pota_record_minmax_test)
127 set_tests_properties(pota_parallel_record_minmax_test PROPERTIES DEPENDS pota_record_minmax_test)
128 set_tests_properties(pota_quantization_test_with_config PROPERTIES DEPENDS pota_fake_wquant_test_with_config)