diff options
Diffstat (limited to 'applications/message_handler/test/test_helpers.hpp')
-rw-r--r-- | applications/message_handler/test/test_helpers.hpp | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/applications/message_handler/test/test_helpers.hpp b/applications/message_handler/test/test_helpers.hpp new file mode 100644 index 0000000..0440b58 --- /dev/null +++ b/applications/message_handler/test/test_helpers.hpp @@ -0,0 +1,131 @@ + +/* + * Copyright (c) 2022 Arm Limited. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TEST_HELPERS_H +#define TEST_HELPERS_H + +#include <inttypes.h> +#include <stdio.h> + +#include "ethosu_core_interface.h" + +namespace MessageHandler { + +ethosu_core_network_info_req networkInfoIndexedRequest(uint64_t user_arg, uint32_t index) { + ethosu_core_network_info_req req = {user_arg, // user_arg + { // network + ETHOSU_CORE_NETWORK_INDEX, // type + {{ + index, // index + 0 // ignored padding of union + }}}}; + return req; +} + +ethosu_core_network_info_req networkInfoBufferRequest(uint64_t user_arg, unsigned char *ptr, uint32_t ptr_size) { + ethosu_core_network_info_req req = {user_arg, // user_arg + { // network + ETHOSU_CORE_NETWORK_BUFFER, // type + {{ + reinterpret_cast<uint32_t>(ptr), // ptr + ptr_size // size + }}}}; + return req; +} + +ethosu_core_network_info_rsp networkInfoResponse(uint64_t user_arg) { + ethosu_core_network_info_rsp rsp = { + user_arg, // user_arg + "Vela Optimised", // description + 1, // ifm_count + {/* not comparable */}, // ifm_sizes + 1, // ofm_count + {/* not comparable */}, // ofm_sizes + ETHOSU_CORE_STATUS_OK // status + }; + return rsp; +} + +ethosu_core_inference_req inferenceIndexedRequest(uint64_t user_arg, + uint32_t index, + unsigned char *input_data, + uint32_t input_data_size, + uint8_t *output_data, + uint32_t output_data_size) { + ethosu_core_inference_req req = { + user_arg, // user_arg + 1, // ifm_count + { // ifm + { + reinterpret_cast<uint32_t>(input_data), // ptr + input_data_size // size + }}, + 1, // ofm_count + { // ofm + { + reinterpret_cast<uint32_t>(output_data), // ptr + output_data_size // size + }}, + { // network + ETHOSU_CORE_NETWORK_INDEX, // type + {{ + index, // index + 0 // ignored padding of union + }}}, + {0, 0, 0, 0, 0, 0, 0, 0}, // pmu_event_config + 0 // pmu_cycle_counter_enable + }; + return req; +} + +ethosu_core_inference_req inferenceBufferRequest(uint64_t user_arg, + unsigned char *ptr, + uint32_t ptr_size, + unsigned char *input_data, + uint32_t input_data_size, + uint8_t *output_data, + uint32_t output_data_size) { + ethosu_core_inference_req req = { + user_arg, // user_arg + 1, // ifm_count + { // ifm + { + reinterpret_cast<uint32_t>(input_data), // ptr + input_data_size // size + }}, + 1, // ofm_count + { // ofm + { + reinterpret_cast<uint32_t>(output_data), // ptr + output_data_size // size + }}, + { // network + ETHOSU_CORE_NETWORK_BUFFER, // type + {{ + reinterpret_cast<uint32_t>(ptr), // ptr + ptr_size // size + }}}, + {0, 0, 0, 0, 0, 0, 0, 0}, // pmu_event_config + 0 // pmu_cycle_counter_enable + }; + return req; +} +} // namespace MessageHandler + +#endif |