From 17d092784d73b7f6ca7da755022b8d41de54ed8e23b8f6f032ac2adf2e8b93c0 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sat, 21 Jan 2023 09:20:15 +0000 Subject: [PATCH] - add 0001-test-helpers-fix-socket-length-type.patch fixes tests on big endian OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/liburing?expand=0&rev=25 --- ...-test-helpers-fix-socket-length-type.patch | 41 +++++++++++++++++++ liburing.changes | 6 +++ liburing.spec | 4 +- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 0001-test-helpers-fix-socket-length-type.patch diff --git a/0001-test-helpers-fix-socket-length-type.patch b/0001-test-helpers-fix-socket-length-type.patch new file mode 100644 index 0000000..84b45d4 --- /dev/null +++ b/0001-test-helpers-fix-socket-length-type.patch @@ -0,0 +1,41 @@ +From b5caa618565c0c6d0053f7b1bae2423cd317660c Mon Sep 17 00:00:00 2001 +From: Gabriel Krisman Bertazi +Date: Wed, 18 Jan 2023 11:48:06 -0300 +Subject: [PATCH] test/helpers: fix socket length type + +t_create_socket_pair uses size_t for paddrlen, which is uint64 on 64-bit +architecture, while the network syscalls expect uint32. The implicit +cast is always safe for little-endian here due to the structure format, +its small size and the fact it was previously zeroed - so the test +succeeds. + +Still, on BE machines, our CI caught a few tests crashing on +connect(). For instance: + +localhost:~/liburing/test # ./send_recv.t +connect failed +test_invalid failed + +Signed-off-by: Gabriel Krisman Bertazi +Link: https://lore.kernel.org/r/20230118144806.18352-1-krisman@suse.de +Signed-off-by: Jens Axboe +--- + test/helpers.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/helpers.c b/test/helpers.c +index 869e903..37ba67c 100644 +--- a/test/helpers.c ++++ b/test/helpers.c +@@ -173,7 +173,7 @@ int t_create_socket_pair(int fd[2], bool stream) + int val; + struct sockaddr_in serv_addr; + struct sockaddr *paddr; +- size_t paddrlen; ++ socklen_t paddrlen; + + type |= SOCK_CLOEXEC; + fd[0] = socket(AF_INET, type, 0); +-- +2.39.0 + diff --git a/liburing.changes b/liburing.changes index e49e998..0cef41b 100644 --- a/liburing.changes +++ b/liburing.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Jan 21 09:19:57 UTC 2023 - Dirk Müller + +- add 0001-test-helpers-fix-socket-length-type.patch + fixes tests on big endian + ------------------------------------------------------------------- Fri Nov 18 21:26:17 UTC 2022 - Dirk Müller diff --git a/liburing.spec b/liburing.spec index 917aad8..29b5d1e 100644 --- a/liburing.spec +++ b/liburing.spec @@ -1,7 +1,7 @@ # # spec file for package liburing # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,6 +25,8 @@ License: (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT Group: Development/Libraries/C and C++ URL: https://git.kernel.dk/cgit/liburing Source: https://git.kernel.dk/cgit/liburing/snapshot/%{name}-%{version}.tar.bz2 +# PATCH-FIX-UPSTREAM: fix tests on big endian +Patch1: 0001-test-helpers-fix-socket-length-type.patch BuildRequires: gcc-c++ BuildRequires: pkgconfig BuildRequires: procps