@@ -71,7 +71,7 @@ void trace_release()
71
71
72
72
static char time_st[sizeof (" [12345678]" ) + 1 ];
73
73
74
- static char * trace_time (size_t ss)
74
+ static char * trace_time (size_t ss)
75
75
{
76
76
snprintf (time_st, sizeof (" [12345678]" ), " [%08llu]" , rtos::Kernel::get_ms_count ());
77
77
return time_st;
@@ -80,7 +80,7 @@ static char* trace_time(size_t ss)
80
80
static void trace_open ()
81
81
{
82
82
mbed_trace_init ();
83
- mbed_trace_prefix_function_set ( &trace_time );
83
+ mbed_trace_prefix_function_set (&trace_time);
84
84
mbed_trace_mutex_wait_function_set (trace_wait);
85
85
mbed_trace_mutex_release_function_set (trace_release);
86
86
@@ -104,85 +104,92 @@ static rtos::EventFlags eventFlags;
104
104
105
105
class EchoSocket : public UDPSocket {
106
106
public:
107
- EchoSocket (int size) : UDPSocket(), _data(0 ), _size(size), _async_flag(0 ), _tx_pending(false ), _rx_pending(false ) {
108
- }
109
- virtual ~EchoSocket () {
110
- delete _data;
111
- }
112
- void set_async (int async) {
113
- _async_flag = async;
107
+ EchoSocket (int size) : UDPSocket(), _data(0 ), _size(size), _async_flag(0 ), _tx_pending(false ), _rx_pending(false )
108
+ {
109
+ }
110
+ virtual ~EchoSocket ()
111
+ {
112
+ delete _data;
113
+ }
114
+ void set_async (int async)
115
+ {
116
+ _async_flag = async;
114
117
if (_async_flag) {
115
118
set_blocking (false );
116
119
sigio (callback (this , &EchoSocket::async_callback));
117
120
}
118
- }
119
-
120
- void test_sendto (const char *const hostname = NULL ) {
121
- if (!_data) {
122
- _data = new uint8_t [_size];
123
- for (int i=0 ; i<_size; i++) {
124
- _data[i] = (uint8_t )rand ();
125
- }
126
- }
127
- nsapi_size_or_error_t ret;
128
- if (hostname) {
129
- ret = sendto (hostname, ECHO_SERVER_UDP_PORT, _data, _size);
130
- } else {
131
- ret = sendto (echo_server_addr, _data, _size);
132
- }
133
- if (ret == _size) { // send successful
134
- _tx_pending = false ;
135
- } else {
136
- TEST_ASSERT (_async_flag && ret == NSAPI_ERROR_WOULD_BLOCK);
121
+ }
122
+
123
+ void test_sendto (const char *const hostname = NULL )
124
+ {
125
+ if (!_data) {
126
+ _data = new uint8_t [_size];
127
+ for (int i = 0 ; i < _size; i++) {
128
+ _data[i] = (uint8_t )rand ();
129
+ }
130
+ }
131
+ nsapi_size_or_error_t ret;
132
+ if (hostname) {
133
+ ret = sendto (hostname, ECHO_SERVER_UDP_PORT, _data, _size);
134
+ } else {
135
+ ret = sendto (echo_server_addr, _data, _size);
136
+ }
137
+ if (ret == _size) { // send successful
138
+ _tx_pending = false ;
139
+ } else {
140
+ TEST_ASSERT (_async_flag && ret == NSAPI_ERROR_WOULD_BLOCK);
137
141
_tx_pending = true ;
138
- }
139
- }
140
-
141
- void test_recvfrom () {
142
- uint8_t *buf = new uint8_t [_size];
143
- memset (buf, 0 , _size);
144
- SocketAddress recv_address;
145
- nsapi_size_or_error_t ret = recvfrom (&recv_address, buf, _size);
146
- if (ret == _size) { // recv successful
147
- _rx_pending = false ;
148
- TEST_ASSERT (recv_address == echo_server_addr);
149
- TEST_ASSERT (memcmp (_data, buf, _size) == 0 );
150
- delete _data;
151
- _data = NULL ;
152
- _rx_pending = false ;
153
- } else {
154
- TEST_ASSERT (_async_flag && ret == NSAPI_ERROR_WOULD_BLOCK);
142
+ }
143
+ }
144
+
145
+ void test_recvfrom ()
146
+ {
147
+ uint8_t *buf = new uint8_t [_size];
148
+ memset (buf, 0 , _size);
149
+ SocketAddress recv_address;
150
+ nsapi_size_or_error_t ret = recvfrom (&recv_address, buf, _size);
151
+ if (ret == _size) { // recv successful
152
+ _rx_pending = false ;
153
+ TEST_ASSERT (recv_address == echo_server_addr);
154
+ TEST_ASSERT (memcmp (_data, buf, _size) == 0 );
155
+ delete _data;
156
+ _data = NULL ;
157
+ _rx_pending = false ;
158
+ } else {
159
+ TEST_ASSERT (_async_flag && ret == NSAPI_ERROR_WOULD_BLOCK);
155
160
_rx_pending = true ;
156
- }
161
+ }
157
162
delete buf;
158
- }
163
+ }
159
164
160
- bool async_process () {
165
+ bool async_process ()
166
+ {
161
167
if (_tx_pending) {
162
168
test_sendto ();
163
169
}
164
170
if (_rx_pending) {
165
171
test_recvfrom ();
166
172
}
167
173
return _tx_pending | _rx_pending;
168
- }
174
+ }
169
175
170
176
private:
171
- void async_callback () {
172
- eventFlags.set (_async_flag);
173
- }
174
- uint8_t *_data;
175
- int _size;
176
- uint32_t _async_flag; // 0 for blocking socket, signal bit for async
177
- bool _tx_pending;
178
- bool _rx_pending;
177
+ void async_callback ()
178
+ {
179
+ eventFlags.set (_async_flag);
180
+ }
181
+ uint8_t *_data;
182
+ int _size;
183
+ uint32_t _async_flag; // 0 for blocking socket, signal bit for async
184
+ bool _tx_pending;
185
+ bool _rx_pending;
179
186
};
180
187
181
188
static void network_callback (nsapi_event_t ev, intptr_t ptr)
182
189
{
183
190
if (ev == NSAPI_EVENT_CONNECTION_STATUS_CHANGE) {
184
191
if (ptr == NSAPI_STATUS_GLOBAL_UP) {
185
- MBED_ASSERT (network_semaphore.release () == osOK);
192
+ MBED_ASSERT (network_semaphore.release () == osOK);
186
193
}
187
194
}
188
195
}
@@ -192,25 +199,25 @@ static void udp_network_stack()
192
199
cellular.set_serial (&cellular_serial);
193
200
TEST_ASSERT (cellular.init () == NSAPI_ERROR_OK);
194
201
#if defined (MDMRTS) && defined (MDMCTS)
195
- cellular_serial.set_flow_control (SerialBase::RTSCTS, MDMRTS, MDMCTS);
202
+ cellular_serial.set_flow_control (SerialBase::RTSCTS, MDMRTS, MDMCTS);
196
203
#endif
197
204
cellular.attach (&network_callback);
198
205
TEST_ASSERT (cellular.start_dispatch () == NSAPI_ERROR_OK);
199
206
cellular.set_sim_pin (MBED_CONF_APP_CELLULAR_SIM_PIN);
200
207
#ifdef MBED_CONF_APP_APN
201
- CellularNetwork * network = cellular.get_network ();
208
+ CellularNetwork *network = cellular.get_network ();
202
209
TEST_ASSERT (network->set_credentials (MBED_CONF_APP_APN) == NSAPI_ERROR_OK);
203
210
#endif
204
211
cellular_target_state = CellularConnectionFSM::STATE_CONNECTED;
205
212
TEST_ASSERT (cellular.continue_to_state (cellular_target_state) == NSAPI_ERROR_OK);
206
- TEST_ASSERT (network_semaphore.wait (NETWORK_TIMEOUT) == 1 );
213
+ TEST_ASSERT (network_semaphore.wait (NETWORK_TIMEOUT) == 1 );
207
214
}
208
215
209
216
static void udp_gethostbyname ()
210
217
{
211
218
TEST_ASSERT (cellular.get_network ()->gethostbyname (ECHO_SERVER_NAME, &echo_server_addr) == 0 );
212
219
tr_info (" Echo server IP: %s" , echo_server_addr.get_ip_address ());
213
- echo_server_addr.set_port (7 );
220
+ echo_server_addr.set_port (7 );
214
221
}
215
222
216
223
static void udp_socket_send_receive ()
@@ -250,21 +257,21 @@ static utest::v1::status_t greentea_failure_handler(const Case *const source, co
250
257
{
251
258
#if MBED_CONF_MBED_TRACE_ENABLE
252
259
trace_close ();
253
- #endif
260
+ #endif
254
261
greentea_case_failure_abort_handler (source, reason);
255
262
return STATUS_ABORT;
256
263
}
257
264
258
265
static Case cases[] = {
259
- Case (" UDP network stack" , udp_network_stack, greentea_failure_handler),
260
- Case (" UDP gethostbyname" , udp_gethostbyname, greentea_failure_handler),
261
- Case (" UDP socket send/receive" , udp_socket_send_receive, greentea_failure_handler),
262
- Case (" UDP socket send/receive async" , udp_socket_send_receive_async, greentea_failure_handler),
266
+ Case (" UDP network stack" , udp_network_stack, greentea_failure_handler),
267
+ Case (" UDP gethostbyname" , udp_gethostbyname, greentea_failure_handler),
268
+ Case (" UDP socket send/receive" , udp_socket_send_receive, greentea_failure_handler),
269
+ Case (" UDP socket send/receive async" , udp_socket_send_receive_async, greentea_failure_handler),
263
270
};
264
271
265
272
static utest::v1::status_t test_setup (const size_t number_of_cases)
266
273
{
267
- GREENTEA_SETUP (10 * 60 , " default_auto" ); // network registration may take up to 180 seconds, DNS query a couple of minutes, etc.
274
+ GREENTEA_SETUP (10 * 60 , " default_auto" ); // network registration may take up to 180 seconds, DNS query a couple of minutes, etc.
268
275
return verbose_test_setup_handler (number_of_cases);
269
276
}
270
277
@@ -278,6 +285,6 @@ int main()
278
285
int ret = Harness::run (specification);
279
286
#if MBED_CONF_MBED_TRACE_ENABLE
280
287
trace_close ();
281
- #endif
282
- return ret;
288
+ #endif
289
+ return ret;
283
290
}
0 commit comments