Skip to content

Commit 45b4062

Browse files
authored
Merge pull request #6093 from jeromecoutant/PR_IP_PRESSURE
NETSOCKET MBED_EXTENDED_TESTS json configuration
2 parents cd7595e + d25d457 commit 45b4062

File tree

7 files changed

+428
-244
lines changed

7 files changed

+428
-244
lines changed

TESTS/netsocket/tcp_echo/main.cpp

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717

1818
#ifndef MBED_CONF_APP_CONNECT_STATEMENT
19-
#error [NOT_SUPPORTED] No network configuration found for this target.
19+
#error [NOT_SUPPORTED] No network configuration found for this target.
2020
#endif
2121

2222
#include "mbed.h"
@@ -32,18 +32,21 @@ using namespace utest::v1;
3232
#define MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE 256
3333
#endif
3434

35-
namespace {
36-
char tx_buffer[MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE] = {0};
37-
char rx_buffer[MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE] = {0};
35+
namespace
36+
{
37+
char tx_buffer[MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE] = {0};
38+
char rx_buffer[MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE] = {0};
3839
}
3940

40-
void prep_buffer(char *tx_buffer, size_t tx_size) {
41-
for (size_t i=0; i<tx_size; ++i) {
41+
void prep_buffer(char *tx_buffer, size_t tx_size)
42+
{
43+
for (size_t i = 0; i < tx_size; ++i) {
4244
tx_buffer[i] = (rand() % 10) + '0';
4345
}
4446
}
4547

46-
void test_tcp_echo() {
48+
void test_tcp_echo()
49+
{
4750
int n = 0;
4851
NetworkInterface* net = MBED_CONF_APP_OBJECT_CONSTRUCTION;
4952
int err = MBED_CONF_APP_CONNECT_STATEMENT;
@@ -119,7 +122,8 @@ void test_tcp_echo() {
119122

120123

121124
// Test setup
122-
utest::v1::status_t test_setup(const size_t number_of_cases) {
125+
utest::v1::status_t test_setup(const size_t number_of_cases)
126+
{
123127
GREENTEA_SETUP(240, "tcp_echo");
124128
return verbose_test_setup_handler(number_of_cases);
125129
}
@@ -130,6 +134,7 @@ Case cases[] = {
130134

131135
Specification specification(test_setup, cases);
132136

133-
int main() {
137+
int main()
138+
{
134139
return !Harness::run(specification);
135140
}

TESTS/netsocket/tcp_echo_parallel/main.cpp

Lines changed: 53 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
* limitations under the License.
1616
*/
1717

18-
#ifndef MBED_CONF_APP_CONNECT_STATEMENT
19-
#error [NOT_SUPPORTED] No network configuration found for this target.
20-
#endif
18+
#ifndef MBED_CONF_APP_CONNECT_STATEMENT
19+
#error [NOT_SUPPORTED] No network configuration found for this target.
20+
#endif
2121

2222
#ifndef MBED_EXTENDED_TESTS
23-
#error [NOT_SUPPORTED] Parallel tests are not supported by default
23+
#error [NOT_SUPPORTED] Parallel tests are not supported by default
2424
#endif
2525

2626
#include "mbed.h"
@@ -33,12 +33,12 @@
3333
using namespace utest::v1;
3434

3535

36-
#ifndef MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE
37-
#define MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE 64
36+
#ifndef MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE
37+
#define MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE 64
3838
#endif
3939

40-
#ifndef MBED_CFG_TCP_CLIENT_ECHO_THREADS
41-
#define MBED_CFG_TCP_CLIENT_ECHO_THREADS 3
40+
#ifndef MBED_CONF_APP_TCP_CLIENT_ECHO_THREADS
41+
#define MBED_CONF_APP_TCP_CLIENT_ECHO_THREADS 3
4242
#endif
4343

4444
#define STRINGIZE(x) STRINGIZE2(x)
@@ -49,51 +49,59 @@ NetworkInterface* net;
4949
SocketAddress tcp_addr;
5050
Mutex iomutex;
5151

52-
void prep_buffer(char *tx_buffer, size_t tx_size) {
53-
for (size_t i=0; i<tx_size; ++i) {
52+
void prep_buffer(char *tx_buffer, size_t tx_size)
53+
{
54+
for (size_t i = 0; i < tx_size; ++i) {
5455
tx_buffer[i] = (rand() % 10) + '0';
5556
}
5657
}
5758

5859

5960
// Each echo class is in charge of one parallel transaction
60-
class Echo {
61+
class Echo
62+
{
6163
private:
62-
char tx_buffer[MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE];
63-
char rx_buffer[MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE];
64+
char tx_buffer[MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE];
65+
char rx_buffer[MBED_CONF_APP_TCP_CLIENT_ECHO_BUFFER_SIZE];
6466

6567
TCPSocket sock;
6668
Thread thread;
6769

6870
public:
6971
// Limiting stack size to 1k
70-
Echo(): thread(osPriorityNormal, 1024) {
72+
Echo(): thread(osPriorityNormal, 1024)
73+
{
7174
}
7275

73-
void start() {
76+
void start()
77+
{
7478
osStatus status = thread.start(callback(this, &Echo::echo));
7579
TEST_ASSERT_EQUAL(osOK, status);
7680
}
7781

78-
void join() {
82+
void join()
83+
{
7984
osStatus status = thread.join();
8085
TEST_ASSERT_EQUAL(osOK, status);
8186
}
8287

83-
void echo() {
88+
void echo()
89+
{
8490
int err = sock.open(net);
8591
TEST_ASSERT_EQUAL(0, err);
8692

8793
err = sock.connect(tcp_addr);
8894
TEST_ASSERT_EQUAL(0, err);
8995

96+
#if defined(MBED_CONF_APP_TCP_ECHO_PREFIX)
9097
//recv connection prefix message
9198
sock.recv(rx_buffer, sizeof(MBED_CONF_APP_TCP_ECHO_PREFIX));
99+
#endif /* MBED_CONF_APP_TCP_ECHO_PREFIX */
92100
memset(rx_buffer, 0, sizeof(rx_buffer));
93101

94102
iomutex.lock();
95103
printf("HTTP: Connected to %s:%d\r\n",
96-
tcp_addr.get_ip_address(), tcp_addr.get_port());
104+
tcp_addr.get_ip_address(), tcp_addr.get_port());
97105
printf("tx_buffer buffer size: %u\r\n", sizeof(tx_buffer));
98106
printf("rx_buffer buffer size: %u\r\n", sizeof(rx_buffer));
99107
iomutex.unlock();
@@ -112,26 +120,45 @@ class Echo {
112120
}
113121
};
114122

115-
Echo *echoers[MBED_CFG_TCP_CLIENT_ECHO_THREADS];
123+
Echo *echoers[MBED_CONF_APP_TCP_CLIENT_ECHO_THREADS];
116124

117125

118-
void test_tcp_echo_parallel() {
126+
void test_tcp_echo_parallel()
127+
{
119128
net = MBED_CONF_APP_OBJECT_CONSTRUCTION;
120129
int err = MBED_CONF_APP_CONNECT_STATEMENT;
121130
TEST_ASSERT_EQUAL(0, err);
122131

123132
printf("MBED: TCPClient IP address is '%s'\n", net->get_ip_address());
124133

134+
#if defined(MBED_CONF_APP_ECHO_SERVER_ADDR) && defined(MBED_CONF_APP_ECHO_SERVER_PORT)
125135
tcp_addr.set_ip_address(MBED_CONF_APP_ECHO_SERVER_ADDR);
126136
tcp_addr.set_port(MBED_CONF_APP_ECHO_SERVER_PORT);
137+
#else /* MBED_CONF_APP_ECHO_SERVER_ADDR && MBED_CONF_APP_ECHO_SERVER_PORT */
138+
char recv_key[] = "host_port";
139+
char ipbuf[60] = {0};
140+
char portbuf[16] = {0};
141+
unsigned int port = 0;
142+
143+
greentea_send_kv("target_ip", net->get_ip_address());
144+
greentea_send_kv("host_ip", " ");
145+
greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf));
146+
147+
greentea_send_kv("host_port", " ");
148+
greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf));
149+
sscanf(portbuf, "%u", &port);
150+
151+
tcp_addr.set_ip_address(ipbuf);
152+
tcp_addr.set_port(port);
153+
#endif /* MBED_CONF_APP_ECHO_SERVER_ADDR && MBED_CONF_APP_ECHO_SERVER_PORT */
127154

128155
// Startup echo threads in parallel
129-
for (int i = 0; i < MBED_CFG_TCP_CLIENT_ECHO_THREADS; i++) {
156+
for (int i = 0; i < MBED_CONF_APP_TCP_CLIENT_ECHO_THREADS; i++) {
130157
echoers[i] = new Echo;
131158
echoers[i]->start();
132159
}
133160

134-
for (int i = 0; i < MBED_CFG_TCP_CLIENT_ECHO_THREADS; i++) {
161+
for (int i = 0; i < MBED_CONF_APP_TCP_CLIENT_ECHO_THREADS; i++) {
135162
echoers[i]->join();
136163
delete echoers[i];
137164
}
@@ -140,7 +167,8 @@ void test_tcp_echo_parallel() {
140167
}
141168

142169
// Test setup
143-
utest::v1::status_t test_setup(const size_t number_of_cases) {
170+
utest::v1::status_t test_setup(const size_t number_of_cases)
171+
{
144172
GREENTEA_SETUP(120, "tcp_echo");
145173
return verbose_test_setup_handler(number_of_cases);
146174
}
@@ -151,6 +179,7 @@ Case cases[] = {
151179

152180
Specification specification(test_setup, cases);
153181

154-
int main() {
182+
int main()
183+
{
155184
return !Harness::run(specification);
156185
}

0 commit comments

Comments
 (0)