io-uring.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH liburing 0/2] Fix endianess issue and add srand()
@ 2021-09-27  4:37 Ammar Faizi
  2021-09-27  4:37 ` [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
  2021-09-27  4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
  0 siblings, 2 replies; 8+ messages in thread
From: Ammar Faizi @ 2021-09-27  4:37 UTC (permalink / raw)
  To: Jens Axboe; +Cc: io-uring

Hi Jens,

2 patches for liburing:
  - Fix endiness issue (from me, suggested by Louvian).
  - Add `srand()` before calling `rand()` (from me).

----------------------------------------------------------------
Ammar Faizi (2):
      test: Fix endianess issue on `bind()` and `connect()`
      test/accept-link: Add `srand()` for better randomness

 test/232c93d07b74-test.c |  9 +++++----
 test/accept-link.c       | 14 ++++++++++----
 test/accept.c            |  5 +++--
 test/poll-link.c         | 11 +++++++----
 test/shutdown.c          |  5 +++--
 test/socket-rw-eagain.c  |  5 +++--
 test/socket-rw.c         |  5 +++--
 7 files changed, 34 insertions(+), 20 deletions(-)

---
Ammar Faizi




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()`
  2021-09-27  4:37 [PATCH liburing 0/2] Fix endianess issue and add srand() Ammar Faizi
@ 2021-09-27  4:37 ` Ammar Faizi
  2021-09-27  4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
  1 sibling, 0 replies; 8+ messages in thread
From: Ammar Faizi @ 2021-09-27  4:37 UTC (permalink / raw)
  To: Jens Axboe; +Cc: io-uring, Ammar Faizi, Louvian Lyndal

When we call `bind()` or `connect()`, the `addr` and `port` should be
in big endian value representation.

Portability notes:
  - Do not hard code the address with integer like this `0x0100007fU`.
    Instead, use `inet_addr("127.0.0.1")` to ensure portability for
    the machine with different endianess. It's also cleaner and more
    readable to use `inet_addr()` from `#include <arpa/inet.h>`.

  - Use `htons(port_number)` to make sure the port_number is properly
    choosen instead directly assign it with integer (still about
    endianess problem).

This commit fixes endianess issue in these files:
  test/232c93d07b74-test.c
  test/accept-link.c
  test/accept.c
  test/poll-link.c
  test/shutdown.c
  test/socket-rw-eagain.c
  test/socket-rw.c

Fixes: 08bd815170ab4352d71019f4d3e532cd3f6f0489 ("Un-DOSify test/232c93d07b74-test.c")
Fixes: 4bce856d43ab1f9a64477aa5a8f9f02f53e64b74 ("Improve reliability of poll/accept-link tests")
Fixes: 76e3b7921fee98a5627cd270628b6a5160d3857d ("Add nonblock empty socket read test")
Fixes: 7de625356997dea66826007676224285d407a0fe ("test/accept: code reuse cleanup")
Fixes: 8a3a8d744db428a326e2f54093665411734fa3a8 ("Add IORING_OP_SHUTDOWN test case")
Fixes: e3adbfc235da96ac97a9cafac78292a22eb12036 ("Moves function calls out of assert().")
Suggested-by: Louvian Lyndal <louvianlyndal@gmail.com>
Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com>
---
 test/232c93d07b74-test.c |  9 +++++----
 test/accept-link.c       | 11 +++++++----
 test/accept.c            |  5 +++--
 test/poll-link.c         | 11 +++++++----
 test/shutdown.c          |  5 +++--
 test/socket-rw-eagain.c  |  5 +++--
 test/socket-rw.c         |  5 +++--
 7 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/test/232c93d07b74-test.c b/test/232c93d07b74-test.c
index cd194cb..4153aef 100644
--- a/test/232c93d07b74-test.c
+++ b/test/232c93d07b74-test.c
@@ -19,6 +19,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -75,8 +76,8 @@ static void *rcv(void *arg)
 		struct sockaddr_in addr;
 
 		addr.sin_family = AF_INET;
-		addr.sin_port = PORT;
-		addr.sin_addr.s_addr = 0x0100007fU;
+		addr.sin_port = htons(PORT);
+		addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 		res = bind(s0, (struct sockaddr *) &addr, sizeof(addr));
 		assert(res != -1);
 	} else {
@@ -190,8 +191,8 @@ static void *snd(void *arg)
 		struct sockaddr_in addr;
 
 		addr.sin_family = AF_INET;
-		addr.sin_port = PORT;
-		addr.sin_addr.s_addr = 0x0100007fU;
+		addr.sin_port = htons(PORT);
+		addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 		ret = connect(s0, (struct sockaddr*) &addr, sizeof(addr));
 		assert(ret != -1);
 	} else {
diff --git a/test/accept-link.c b/test/accept-link.c
index 605e0ec..f111275 100644
--- a/test/accept-link.c
+++ b/test/accept-link.c
@@ -11,6 +11,7 @@
 #include <netinet/tcp.h>
 #include <netinet/in.h>
 #include <poll.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -42,7 +43,8 @@ struct data {
 	unsigned expected[2];
 	unsigned just_positive[2];
 	unsigned long timeout;
-	int port;
+	unsigned short port;
+	unsigned int addr;
 	int stop;
 };
 
@@ -63,7 +65,7 @@ static void *send_thread(void *arg)
 
 	addr.sin_family = AF_INET;
 	addr.sin_port = data->port;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = data->addr;
 
 	ret = connect(s0, (struct sockaddr*)&addr, sizeof(addr));
 	assert(ret != -1);
@@ -95,11 +97,12 @@ void *recv_thread(void *arg)
 	struct sockaddr_in addr;
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	data->addr = inet_addr("127.0.0.1");
+	addr.sin_addr.s_addr = data->addr;
 
 	i = 0;
 	do {
-		data->port = 1025 + (rand() % 64510);
+		data->port = htons(1025 + (rand() % 64510));
 		addr.sin_port = data->port;
 
 		if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1)
diff --git a/test/accept.c b/test/accept.c
index 0c69b98..a4fc677 100644
--- a/test/accept.c
+++ b/test/accept.c
@@ -17,6 +17,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "helpers.h"
 #include "liburing.h"
@@ -107,8 +108,8 @@ static int start_accept_listen(struct sockaddr_in *addr, int port_off)
 		addr = &laddr;
 
 	addr->sin_family = AF_INET;
-	addr->sin_port = 0x1235 + port_off;
-	addr->sin_addr.s_addr = 0x0100007fU;
+	addr->sin_port = htons(0x1235 + port_off);
+	addr->sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	ret = bind(fd, (struct sockaddr*)addr, sizeof(*addr));
 	assert(ret != -1);
diff --git a/test/poll-link.c b/test/poll-link.c
index 4b4f9aa..197ad77 100644
--- a/test/poll-link.c
+++ b/test/poll-link.c
@@ -11,6 +11,7 @@
 #include <netinet/tcp.h>
 #include <netinet/in.h>
 #include <poll.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -42,7 +43,8 @@ struct data {
 	unsigned expected[2];
 	unsigned is_mask[2];
 	unsigned long timeout;
-	int port;
+	unsigned short port;
+	unsigned int addr;
 	int stop;
 };
 
@@ -59,7 +61,7 @@ static void *send_thread(void *arg)
 
 	addr.sin_family = AF_INET;
 	addr.sin_port = data->port;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = data->addr;
 
 	if (connect(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1)
 		wait_for_var(&recv_thread_done);
@@ -90,11 +92,12 @@ void *recv_thread(void *arg)
 	struct sockaddr_in addr;
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	data->addr = inet_addr("127.0.0.1");
+	addr.sin_addr.s_addr = data->addr;
 
 	i = 0;
 	do {
-		data->port = 1025 + (rand() % 64510);
+		data->port = htons(1025 + (rand() % 64510));
 		addr.sin_port = data->port;
 
 		if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1)
diff --git a/test/shutdown.c b/test/shutdown.c
index 5aa1371..20bcc77 100644
--- a/test/shutdown.c
+++ b/test/shutdown.c
@@ -15,6 +15,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -42,8 +43,8 @@ int main(int argc, char *argv[])
 	assert(ret != -1);
 
 	addr.sin_family = AF_INET;
-	addr.sin_port = (rand() % 61440) + 4096;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_port = htons((rand() % 61440) + 4096);
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
 	assert(ret != -1);
diff --git a/test/socket-rw-eagain.c b/test/socket-rw-eagain.c
index cc87aca..9854e00 100644
--- a/test/socket-rw-eagain.c
+++ b/test/socket-rw-eagain.c
@@ -15,6 +15,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -38,10 +39,10 @@ int main(int argc, char *argv[])
 	assert(ret != -1);
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	do {
-		addr.sin_port = (rand() % 61440) + 4096;
+		addr.sin_port = htons((rand() % 61440) + 4096);
 		ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
 		if (!ret)
 			break;
diff --git a/test/socket-rw.c b/test/socket-rw.c
index 1b731b2..5afd14d 100644
--- a/test/socket-rw.c
+++ b/test/socket-rw.c
@@ -17,6 +17,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -40,10 +41,10 @@ int main(int argc, char *argv[])
 	assert(ret != -1);
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	do {
-		addr.sin_port = (rand() % 61440) + 4096;
+		addr.sin_port = htons((rand() % 61440) + 4096);
 		ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
 		if (!ret)
 			break;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness
  2021-09-27  4:37 [PATCH liburing 0/2] Fix endianess issue and add srand() Ammar Faizi
  2021-09-27  4:37 ` [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
@ 2021-09-27  4:37 ` Ammar Faizi
  2021-09-27 13:28   ` Jens Axboe
  1 sibling, 1 reply; 8+ messages in thread
From: Ammar Faizi @ 2021-09-27  4:37 UTC (permalink / raw)
  To: Jens Axboe; +Cc: io-uring, Ammar Faizi

The use of `rand()` should be accompanied by `srand()`.

Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com>
---
 test/accept-link.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/test/accept-link.c b/test/accept-link.c
index f111275..843f345 100644
--- a/test/accept-link.c
+++ b/test/accept-link.c
@@ -240,6 +240,9 @@ int main(int argc, char *argv[])
 {
 	if (argc > 1)
 		return 0;
+
+	srand((unsigned)time(NULL));
+
 	if (test_accept_timeout(0, 200000000)) {
 		fprintf(stderr, "accept timeout 0 failed\n");
 		return 1;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness
  2021-09-27  4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
@ 2021-09-27 13:28   ` Jens Axboe
  2021-09-27 13:40     ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi
  0 siblings, 1 reply; 8+ messages in thread
From: Jens Axboe @ 2021-09-27 13:28 UTC (permalink / raw)
  To: Ammar Faizi; +Cc: io-uring

On 9/26/21 10:37 PM, Ammar Faizi wrote:
> The use of `rand()` should be accompanied by `srand()`.

The idiomatic way that I usually do it for these tests is:

srand(getpid());

Shouldn't really matter, but we may as well keep it consistent.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH liburing v2 0/2] Fix endianess issue and add srand()
  2021-09-27 13:28   ` Jens Axboe
@ 2021-09-27 13:40     ` Ammar Faizi
  2021-09-27 13:40       ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
                         ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Ammar Faizi @ 2021-09-27 13:40 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Ammar Faizi, io_uring Mailing List

On Mon, Sep 27, 2021 at 8:28 PM Jens Axboe <axboe@kernel.dk> wrote:
>
> On 9/26/21 10:37 PM, Ammar Faizi wrote:
> > The use of `rand()` should be accompanied by `srand()`.
>
> The idiomatic way that I usually do it for these tests is:
>
> srand(getpid());
>
> Shouldn't really matter, but we may as well keep it consistent.

v2: Use getpid() for the random seed.

----------------------------------------------------------------
Ammar Faizi (2):
      test: Fix endianess issue on `bind()` and `connect()`
      test/accept-link: Add `srand()` for better randomness

 test/232c93d07b74-test.c |  9 +++++----
 test/accept-link.c       | 14 ++++++++++----
 test/accept.c            |  5 +++--
 test/poll-link.c         | 11 +++++++----
 test/shutdown.c          |  5 +++--
 test/socket-rw-eagain.c  |  5 +++--
 test/socket-rw.c         |  5 +++--
 7 files changed, 34 insertions(+), 20 deletions(-)

---
Ammar Faizi




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()`
  2021-09-27 13:40     ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi
@ 2021-09-27 13:40       ` Ammar Faizi
  2021-09-27 13:40       ` [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
  2021-09-27 13:45       ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Jens Axboe
  2 siblings, 0 replies; 8+ messages in thread
From: Ammar Faizi @ 2021-09-27 13:40 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Ammar Faizi, io_uring Mailing List, Louvian Lyndal

When we call `bind()` or `connect()`, the `addr` and `port` should be
in big endian value representation.

Portability notes:
  - Do not hard code the address with integer like this `0x0100007fU`.
    Instead, use `inet_addr("127.0.0.1")` to ensure portability for
    the machine with different endianess. It's also cleaner and more
    readable to use `inet_addr()` from `#include <arpa/inet.h>`.

  - Use `htons(port_number)` to make sure the port_number is properly
    choosen instead directly assign it with integer (still about
    endianess problem).

This commit fixes endianess issue in these files:
  test/232c93d07b74-test.c
  test/accept-link.c
  test/accept.c
  test/poll-link.c
  test/shutdown.c
  test/socket-rw-eagain.c
  test/socket-rw.c

Fixes: 08bd815170ab4352d71019f4d3e532cd3f6f0489 ("Un-DOSify test/232c93d07b74-test.c")
Fixes: 4bce856d43ab1f9a64477aa5a8f9f02f53e64b74 ("Improve reliability of poll/accept-link tests")
Fixes: 76e3b7921fee98a5627cd270628b6a5160d3857d ("Add nonblock empty socket read test")
Fixes: 7de625356997dea66826007676224285d407a0fe ("test/accept: code reuse cleanup")
Fixes: 8a3a8d744db428a326e2f54093665411734fa3a8 ("Add IORING_OP_SHUTDOWN test case")
Fixes: e3adbfc235da96ac97a9cafac78292a22eb12036 ("Moves function calls out of assert().")
Suggested-by: Louvian Lyndal <louvianlyndal@gmail.com>
Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com>
---
 test/232c93d07b74-test.c |  9 +++++----
 test/accept-link.c       | 11 +++++++----
 test/accept.c            |  5 +++--
 test/poll-link.c         | 11 +++++++----
 test/shutdown.c          |  5 +++--
 test/socket-rw-eagain.c  |  5 +++--
 test/socket-rw.c         |  5 +++--
 7 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/test/232c93d07b74-test.c b/test/232c93d07b74-test.c
index cd194cb..4153aef 100644
--- a/test/232c93d07b74-test.c
+++ b/test/232c93d07b74-test.c
@@ -19,6 +19,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -75,8 +76,8 @@ static void *rcv(void *arg)
 		struct sockaddr_in addr;
 
 		addr.sin_family = AF_INET;
-		addr.sin_port = PORT;
-		addr.sin_addr.s_addr = 0x0100007fU;
+		addr.sin_port = htons(PORT);
+		addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 		res = bind(s0, (struct sockaddr *) &addr, sizeof(addr));
 		assert(res != -1);
 	} else {
@@ -190,8 +191,8 @@ static void *snd(void *arg)
 		struct sockaddr_in addr;
 
 		addr.sin_family = AF_INET;
-		addr.sin_port = PORT;
-		addr.sin_addr.s_addr = 0x0100007fU;
+		addr.sin_port = htons(PORT);
+		addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 		ret = connect(s0, (struct sockaddr*) &addr, sizeof(addr));
 		assert(ret != -1);
 	} else {
diff --git a/test/accept-link.c b/test/accept-link.c
index 605e0ec..f111275 100644
--- a/test/accept-link.c
+++ b/test/accept-link.c
@@ -11,6 +11,7 @@
 #include <netinet/tcp.h>
 #include <netinet/in.h>
 #include <poll.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -42,7 +43,8 @@ struct data {
 	unsigned expected[2];
 	unsigned just_positive[2];
 	unsigned long timeout;
-	int port;
+	unsigned short port;
+	unsigned int addr;
 	int stop;
 };
 
@@ -63,7 +65,7 @@ static void *send_thread(void *arg)
 
 	addr.sin_family = AF_INET;
 	addr.sin_port = data->port;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = data->addr;
 
 	ret = connect(s0, (struct sockaddr*)&addr, sizeof(addr));
 	assert(ret != -1);
@@ -95,11 +97,12 @@ void *recv_thread(void *arg)
 	struct sockaddr_in addr;
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	data->addr = inet_addr("127.0.0.1");
+	addr.sin_addr.s_addr = data->addr;
 
 	i = 0;
 	do {
-		data->port = 1025 + (rand() % 64510);
+		data->port = htons(1025 + (rand() % 64510));
 		addr.sin_port = data->port;
 
 		if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1)
diff --git a/test/accept.c b/test/accept.c
index 0c69b98..a4fc677 100644
--- a/test/accept.c
+++ b/test/accept.c
@@ -17,6 +17,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "helpers.h"
 #include "liburing.h"
@@ -107,8 +108,8 @@ static int start_accept_listen(struct sockaddr_in *addr, int port_off)
 		addr = &laddr;
 
 	addr->sin_family = AF_INET;
-	addr->sin_port = 0x1235 + port_off;
-	addr->sin_addr.s_addr = 0x0100007fU;
+	addr->sin_port = htons(0x1235 + port_off);
+	addr->sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	ret = bind(fd, (struct sockaddr*)addr, sizeof(*addr));
 	assert(ret != -1);
diff --git a/test/poll-link.c b/test/poll-link.c
index 4b4f9aa..197ad77 100644
--- a/test/poll-link.c
+++ b/test/poll-link.c
@@ -11,6 +11,7 @@
 #include <netinet/tcp.h>
 #include <netinet/in.h>
 #include <poll.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -42,7 +43,8 @@ struct data {
 	unsigned expected[2];
 	unsigned is_mask[2];
 	unsigned long timeout;
-	int port;
+	unsigned short port;
+	unsigned int addr;
 	int stop;
 };
 
@@ -59,7 +61,7 @@ static void *send_thread(void *arg)
 
 	addr.sin_family = AF_INET;
 	addr.sin_port = data->port;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = data->addr;
 
 	if (connect(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1)
 		wait_for_var(&recv_thread_done);
@@ -90,11 +92,12 @@ void *recv_thread(void *arg)
 	struct sockaddr_in addr;
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	data->addr = inet_addr("127.0.0.1");
+	addr.sin_addr.s_addr = data->addr;
 
 	i = 0;
 	do {
-		data->port = 1025 + (rand() % 64510);
+		data->port = htons(1025 + (rand() % 64510));
 		addr.sin_port = data->port;
 
 		if (bind(s0, (struct sockaddr*)&addr, sizeof(addr)) != -1)
diff --git a/test/shutdown.c b/test/shutdown.c
index 5aa1371..20bcc77 100644
--- a/test/shutdown.c
+++ b/test/shutdown.c
@@ -15,6 +15,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -42,8 +43,8 @@ int main(int argc, char *argv[])
 	assert(ret != -1);
 
 	addr.sin_family = AF_INET;
-	addr.sin_port = (rand() % 61440) + 4096;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_port = htons((rand() % 61440) + 4096);
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
 	assert(ret != -1);
diff --git a/test/socket-rw-eagain.c b/test/socket-rw-eagain.c
index cc87aca..9854e00 100644
--- a/test/socket-rw-eagain.c
+++ b/test/socket-rw-eagain.c
@@ -15,6 +15,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -38,10 +39,10 @@ int main(int argc, char *argv[])
 	assert(ret != -1);
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	do {
-		addr.sin_port = (rand() % 61440) + 4096;
+		addr.sin_port = htons((rand() % 61440) + 4096);
 		ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
 		if (!ret)
 			break;
diff --git a/test/socket-rw.c b/test/socket-rw.c
index 1b731b2..5afd14d 100644
--- a/test/socket-rw.c
+++ b/test/socket-rw.c
@@ -17,6 +17,7 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "liburing.h"
 
@@ -40,10 +41,10 @@ int main(int argc, char *argv[])
 	assert(ret != -1);
 
 	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = 0x0100007fU;
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	do {
-		addr.sin_port = (rand() % 61440) + 4096;
+		addr.sin_port = htons((rand() % 61440) + 4096);
 		ret = bind(recv_s0, (struct sockaddr*)&addr, sizeof(addr));
 		if (!ret)
 			break;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness
  2021-09-27 13:40     ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi
  2021-09-27 13:40       ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
@ 2021-09-27 13:40       ` Ammar Faizi
  2021-09-27 13:45       ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Jens Axboe
  2 siblings, 0 replies; 8+ messages in thread
From: Ammar Faizi @ 2021-09-27 13:40 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Ammar Faizi, io_uring Mailing List

The use of `rand()` should be accompanied by `srand()`.

Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com>
---
 test/accept-link.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/test/accept-link.c b/test/accept-link.c
index f111275..68db5be 100644
--- a/test/accept-link.c
+++ b/test/accept-link.c
@@ -240,6 +240,9 @@ int main(int argc, char *argv[])
 {
 	if (argc > 1)
 		return 0;
+
+	srand(getpid());
+
 	if (test_accept_timeout(0, 200000000)) {
 		fprintf(stderr, "accept timeout 0 failed\n");
 		return 1;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH liburing v2 0/2] Fix endianess issue and add srand()
  2021-09-27 13:40     ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi
  2021-09-27 13:40       ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
  2021-09-27 13:40       ` [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
@ 2021-09-27 13:45       ` Jens Axboe
  2 siblings, 0 replies; 8+ messages in thread
From: Jens Axboe @ 2021-09-27 13:45 UTC (permalink / raw)
  To: Ammar Faizi; +Cc: io_uring Mailing List

On 9/27/21 7:40 AM, Ammar Faizi wrote:
> On Mon, Sep 27, 2021 at 8:28 PM Jens Axboe <axboe@kernel.dk> wrote:
>>
>> On 9/26/21 10:37 PM, Ammar Faizi wrote:
>>> The use of `rand()` should be accompanied by `srand()`.
>>
>> The idiomatic way that I usually do it for these tests is:
>>
>> srand(getpid());
>>
>> Shouldn't really matter, but we may as well keep it consistent.
> 
> v2: Use getpid() for the random seed.

Applied, thanks.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-09-27 13:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-27  4:37 [PATCH liburing 0/2] Fix endianess issue and add srand() Ammar Faizi
2021-09-27  4:37 ` [PATCH liburing 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
2021-09-27  4:37 ` [PATCH liburing 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
2021-09-27 13:28   ` Jens Axboe
2021-09-27 13:40     ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Ammar Faizi
2021-09-27 13:40       ` [PATCH liburing v2 1/2] test: Fix endianess issue on `bind()` and `connect()` Ammar Faizi
2021-09-27 13:40       ` [PATCH liburing v2 2/2] test/accept-link: Add `srand()` for better randomness Ammar Faizi
2021-09-27 13:45       ` [PATCH liburing v2 0/2] Fix endianess issue and add srand() Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).