All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.