-
Notifications
You must be signed in to change notification settings - Fork 222
/
Copy pathunit_test_zephyr_uart_server.cpp
101 lines (77 loc) · 2.7 KB
/
unit_test_zephyr_uart_server.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
* Copyright 2024 NXP
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "erpc_mbf_setup.h"
#include "erpc_server_setup.h"
#include "erpc_simple_server.hpp"
#include "erpc_transport_setup.h"
#include "erpc_uart_zephyr_transport.hpp"
#include "c_test_unit_test_common_server.h"
#include "myAlloc.hpp"
#include "unit_test_wrapped.h"
////////////////////////////////////////////////////////////////////////////////
// Variables
////////////////////////////////////////////////////////////////////////////////
#define UART_DEVICE_NODE DT_CHOSEN(zephyr_console)
static const struct device *const uart_dev = DEVICE_DT_GET(UART_DEVICE_NODE);
int ::MyAlloc::allocated_ = 0;
erpc_service_t service_common = NULL;
erpc_server_t server;
////////////////////////////////////////////////////////////////////////////////
// Code
////////////////////////////////////////////////////////////////////////////////
int main(void)
{
if (!device_is_ready(uart_dev))
{
printk("UART device not found!");
return -1;
}
erpc_transport_t transport;
erpc_mbf_t message_buffer_factory;
transport = erpc_transport_zephyr_uart_init((void *)uart_dev);
message_buffer_factory = erpc_mbf_dynamic_init();
/* Init server */
server = erpc_server_init(transport, message_buffer_factory);
/* Add test services. This function call erpc_add_service_to_server for all necessary services. */
add_services_to_server(server);
/* Add common service */
add_common_service(server);
/* Add run server */
erpc_server_run(server);
/* Deinit server */
erpc_server_deinit(server);
return 0;
}
////////////////////////////////////////////////////////////////////////////////
// Server helper functions
////////////////////////////////////////////////////////////////////////////////
void add_common_service(erpc_server_t server)
{
service_common = create_Common_service();
erpc_add_service_to_server(server, service_common);
}
void remove_common_services_from_server(erpc_server_t server, erpc_service_t service)
{
erpc_remove_service_from_server(server, service);
destroy_Common_service(service);
}
////////////////////////////////////////////////////////////////////////////////
// Common service implementations here
////////////////////////////////////////////////////////////////////////////////
void quit()
{
/* removing common services from the server */
remove_common_services_from_server(server, service_common);
/* removing individual test services from the server */
remove_services_from_server(server);
erpc_server_stop(server);
}
int32_t getServerAllocated()
{
int result = ::MyAlloc::allocated();
::MyAlloc::allocated(0);
return result;
}