aboutsummaryrefslogtreecommitdiff
path: root/src/sp
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2025-11-09 08:04:43 -0800
committerGarrett D'Amore <garrett@damore.org>2025-11-09 08:04:43 -0800
commit98e6bbd1ae4e7c34feb2c7ad70aa377112a9a13f (patch)
tree52b75947af42d620f960310063d197d5f9b470d1 /src/sp
parent8396f1df0420bb0156655532b5e6244dc1b3b646 (diff)
downloadnng-98e6bbd1ae4e7c34feb2c7ad70aa377112a9a13f.tar.gz
nng-98e6bbd1ae4e7c34feb2c7ad70aa377112a9a13f.tar.bz2
nng-98e6bbd1ae4e7c34feb2c7ad70aa377112a9a13f.zip
test: make DTLS test parallelism tunable (compile-time)
Diffstat (limited to 'src/sp')
-rw-r--r--src/sp/transport/dtls/dtls_tran_test.c61
1 files changed, 24 insertions, 37 deletions
diff --git a/src/sp/transport/dtls/dtls_tran_test.c b/src/sp/transport/dtls/dtls_tran_test.c
index c6dc551c..500481c2 100644
--- a/src/sp/transport/dtls/dtls_tran_test.c
+++ b/src/sp/transport/dtls/dtls_tran_test.c
@@ -449,21 +449,20 @@ test_dtls_reqrep_multi(void)
nng_tls_config_free(c1);
}
+#define NCLIENT 3
void
test_dtls_pub_multi(void)
{
char msg[1024];
char buf[1024];
nng_socket s0;
- nng_socket s1;
- nng_socket s2;
nng_tls_config *c0, *c1;
nng_listener l;
- nng_dialer d1;
- nng_dialer d2;
size_t sz;
char *addr;
const nng_url *url;
+ nng_socket cs[NCLIENT];
+ nng_dialer cd[NCLIENT];
NUTS_ENABLE_LOG(NNG_LOG_DEBUG);
@@ -474,6 +473,7 @@ test_dtls_pub_multi(void)
NUTS_PASS(nng_pub0_open(&s0));
NUTS_PASS(nng_socket_set_ms(s0, NNG_OPT_RECVTIMEO, 100));
NUTS_PASS(nng_socket_set_size(s0, NNG_OPT_RECVMAXSZ, 200));
+ NUTS_PASS(nng_socket_set_ms(s0, NNG_OPT_SENDTIMEO, 100));
NUTS_PASS(nng_listener_create(&l, s0, addr));
NUTS_PASS(nng_listener_set_tls(l, c0));
NUTS_PASS(nng_socket_get_size(s0, NNG_OPT_RECVMAXSZ, &sz));
@@ -482,48 +482,35 @@ test_dtls_pub_multi(void)
NUTS_PASS(nng_listener_start(l, 0));
NUTS_PASS(nng_listener_get_url(l, &url));
- NUTS_PASS(nng_sub0_open(&s1));
- NUTS_PASS(nng_dialer_create_url(&d1, s1, url));
- NUTS_PASS(nng_dialer_set_tls(d1, c1));
- NUTS_PASS(nng_dialer_start(d1, 0));
-
- NUTS_PASS(nng_sub0_open(&s2));
- NUTS_PASS(nng_dialer_create_url(&d2, s2, url));
- NUTS_PASS(nng_dialer_set_tls(d2, c1));
- NUTS_PASS(nng_dialer_start(d2, 0));
-
- NUTS_PASS(nng_socket_set_ms(s0, NNG_OPT_SENDTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s0, NNG_OPT_RECVTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, 100));
- NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, 100));
- NUTS_PASS(nng_sub0_socket_subscribe(s1, "", 0));
- NUTS_PASS(nng_sub0_socket_subscribe(s2, "", 0));
+ for (int i = 0; i < NCLIENT; i++) {
+ NUTS_PASS(nng_sub0_open(&cs[i]));
+ NUTS_PASS(nng_socket_set_ms(cs[i], NNG_OPT_RECVTIMEO, 100));
+ NUTS_PASS(nng_sub0_socket_subscribe(cs[i], "", 0));
+ NUTS_PASS(nng_dialer_create_url(&cd[i], cs[i], url));
+ NUTS_PASS(nng_dialer_set_tls(cd[i], c1));
+ NUTS_PASS(nng_dialer_start(cd[i], 0));
+ }
// send a bunch of messages - we're hoping that by serializing we won't
// overwhelm the network.
for (int i = 0; i < 100; i++) {
- size_t len = nng_random() % 1000;
+ size_t len = nng_random() % (sizeof(msg) - 1);
memset(msg, 'a' + i % 26, sizeof(buf));
msg[len] = 0;
- memset(buf, 0, sizeof(buf));
- sz = sizeof(msg);
NUTS_PASS(nng_send(s0, msg, len + 1, 0));
- NUTS_PASS(nng_recv(s1, buf, &sz, 0));
- NUTS_TRUE(sz == len + 1);
- NUTS_MATCH(msg, buf);
- memset(buf, 0, sizeof(buf));
- sz = sizeof(msg);
- NUTS_PASS(nng_recv(s2, buf, &sz, 0));
- NUTS_TRUE(sz == len + 1);
- NUTS_MATCH(msg, buf);
+ for (int j = 0; j < NCLIENT; j++) {
+ sz = sizeof(msg);
+ memset(buf, 0, sizeof(buf));
+ NUTS_PASS(nng_recv(cs[j], buf, &sz, 0));
+ NUTS_TRUE(sz == len + 1);
+ NUTS_MATCH(msg, buf);
+ memset(buf, 0, sizeof(buf));
+ }
}
NUTS_CLOSE(s0);
- NUTS_CLOSE(s1);
- NUTS_CLOSE(s2);
+ for (int i = 0; i < NCLIENT; i++) {
+ NUTS_CLOSE(cs[i]);
+ }
nng_tls_config_free(c0);
nng_tls_config_free(c1);
}