From b11accc51ba6ac16c91eddd346cfec067e7a2663 Mon Sep 17 00:00:00 2001 From: Bhabu Bindu Date: Mon, 6 Apr 2026 12:15:13 +0530 Subject: [PATCH] neon: Backport redirect test debug improvements The redirect test in neon 0.30.2 intermittently fails with "did not get NE_REDIRECT", making it hard to debug. Backport relevant upstream changes from updated neon version to: - log actual return value when NE_REDIRECT is not received - use double_serve_sstring for improved test reliability Upstream-Status: Backport [https://github.com/notroj/neon/commit/f7a3d8f1366c7df6578d79af3b5d28a316011be0] [https://github.com/notroj/neon/commit/0f8dec6c8e7d672f74bb5f81fc7c6bd0d5c56619] [https://github.com/notroj/neon/commit/1e562888d85efc492c434474c8d90cef3aaa8b18] [https://github.com/notroj/neon/commit/9e836bb63bf41fd78e12175cd7b35bfb07a031e3] Signed-off-by: Bhabu Bindu Signed-off-by: Gyorgy Sarvari --- ...0001-Temporarily-disable-no_redirect.patch | 45 +++++++++++++++++ ...ling-no_redirect-with-more-debugging.patch | 50 +++++++++++++++++++ ...Switch-to-using-double_serve_sstring.patch | 48 ++++++++++++++++++ .../neon/0004-test-redirect.c-Cleanup.patch | 49 ++++++++++++++++++ meta-oe/recipes-support/neon/neon_0.30.2.bb | 4 ++ 5 files changed, 196 insertions(+) create mode 100644 meta-oe/recipes-support/neon/neon/0001-Temporarily-disable-no_redirect.patch create mode 100644 meta-oe/recipes-support/neon/neon/0002-Re-enabling-no_redirect-with-more-debugging.patch create mode 100644 meta-oe/recipes-support/neon/neon/0003-no_redirect-Switch-to-using-double_serve_sstring.patch create mode 100644 meta-oe/recipes-support/neon/neon/0004-test-redirect.c-Cleanup.patch diff --git a/meta-oe/recipes-support/neon/neon/0001-Temporarily-disable-no_redirect.patch b/meta-oe/recipes-support/neon/neon/0001-Temporarily-disable-no_redirect.patch new file mode 100644 index 0000000000..e0c373d416 --- /dev/null +++ b/meta-oe/recipes-support/neon/neon/0001-Temporarily-disable-no_redirect.patch @@ -0,0 +1,45 @@ +From f7a3d8f1366c7df6578d79af3b5d28a316011be0 Mon Sep 17 00:00:00 2001 +From: Joe Orton +Date: Thu, 7 Mar 2019 09:56:57 +0000 +Subject: [PATCH 1/4] Temporarily disable redirect.c:no_redirect + +Upstream-Status: Backport +[https://github.com/notroj/neon/commit/f7a3d8f1366c7df6578d79af3b5d28a316011be0] +Signed-off-by: Bindu Bhabu +--- + test/redirect.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/test/redirect.c b/test/redirect.c +index c93b388..920c481 100644 +--- a/test/redirect.c ++++ b/test/redirect.c +@@ -162,6 +162,7 @@ static int fail_loop(void) + } + #endif + ++#if 0 + /* ensure that ne_redirect_location returns NULL when no redirect has + * been encountered, or redirect hooks aren't registered. */ + static int no_redirect(void) +@@ -187,6 +188,7 @@ static int no_redirect(void) + ne_session_destroy(sess); + return OK; + } ++#endif + + ne_test tests[] = { + T(lookup_localhost), +@@ -194,7 +196,9 @@ ne_test tests[] = { + T(non_absolute), + T(relative_1), + T(relative_2), ++#if 0 + T(no_redirect), ++#endif + T(NULL) + }; + +-- +2.34.1 + diff --git a/meta-oe/recipes-support/neon/neon/0002-Re-enabling-no_redirect-with-more-debugging.patch b/meta-oe/recipes-support/neon/neon/0002-Re-enabling-no_redirect-with-more-debugging.patch new file mode 100644 index 0000000000..e21a43f0b6 --- /dev/null +++ b/meta-oe/recipes-support/neon/neon/0002-Re-enabling-no_redirect-with-more-debugging.patch @@ -0,0 +1,50 @@ +From 0f8dec6c8e7d672f74bb5f81fc7c6bd0d5c56619 Mon Sep 17 00:00:00 2001 +From: Joe Orton +Date: Mon, 8 Apr 2019 10:22:52 +0100 +Subject: [PATCH 2/4] * test/redirect: Try re-enabling no_redirect with more + debugging. + +Upstream-Status: Backport +[https://github.com/notroj/neon/commit/0f8dec6c8e7d672f74bb5f81fc7c6bd0d5c56619] +Signed-off-by: Bindu Bhabu +--- + test/redirect.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/test/redirect.c b/test/redirect.c +index 920c481..e7ecc19 100644 +--- a/test/redirect.c ++++ b/test/redirect.c +@@ -64,7 +64,10 @@ static int serve_redir(ne_socket *sock, void *ud) + static int process_redir(ne_session *sess, const char *path, + const ne_uri **redir) + { +- ONN("did not get NE_REDIRECT", any_request(sess, path) != NE_REDIRECT); ++ int ret = any_request(sess, path); ++ ONV(ret != NE_REDIRECT, ++ ("request got %d (%s) rather than NE_REDIRECT", ++ ret, ne_get_error(sess))); + *redir = ne_redirect_location(sess); + return OK; + } +@@ -162,7 +165,7 @@ static int fail_loop(void) + } + #endif + +-#if 0 ++#if 01 + /* ensure that ne_redirect_location returns NULL when no redirect has + * been encountered, or redirect hooks aren't registered. */ + static int no_redirect(void) +@@ -196,7 +199,7 @@ ne_test tests[] = { + T(non_absolute), + T(relative_1), + T(relative_2), +-#if 0 ++#if 1 + T(no_redirect), + #endif + T(NULL) +-- +2.34.1 + diff --git a/meta-oe/recipes-support/neon/neon/0003-no_redirect-Switch-to-using-double_serve_sstring.patch b/meta-oe/recipes-support/neon/neon/0003-no_redirect-Switch-to-using-double_serve_sstring.patch new file mode 100644 index 0000000000..21c011f8e5 --- /dev/null +++ b/meta-oe/recipes-support/neon/neon/0003-no_redirect-Switch-to-using-double_serve_sstring.patch @@ -0,0 +1,48 @@ +From 1e562888d85efc492c434474c8d90cef3aaa8b18 Mon Sep 17 00:00:00 2001 +From: Joe Orton +Date: Mon, 8 Apr 2019 10:32:27 +0100 +Subject: [PATCH 3/4] * test/redirect.c (no_redirect): Switch to using + double_serve_sstring. + +Upstream-Status: Backport +[https://github.com/notroj/neon/commit/1e562888d85efc492c434474c8d90cef3aaa8b18] +Signed-off-by: Bindu Bhabu +--- + test/redirect.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/test/redirect.c b/test/redirect.c +index e7ecc19..42deadb 100644 +--- a/test/redirect.c ++++ b/test/redirect.c +@@ -166,17 +166,23 @@ static int fail_loop(void) + #endif + + #if 01 ++ ++#define RESP1 "HTTP/1.1 200 OK\r\n" "Content-Length: 0\r\n\r\n" ++#define RESP2 "HTTP/1.0 302 Get Ye Away\r\n" "Location: /blah\r\n" "\r\n" + /* ensure that ne_redirect_location returns NULL when no redirect has + * been encountered, or redirect hooks aren't registered. */ + static int no_redirect(void) + { + ne_session *sess; + const ne_uri *loc; ++ struct double_serve_args resp; ++ ++ resp.first.data = RESP1; ++ resp.first.len = strlen(RESP1); ++ resp.second.data = RESP2; ++ resp.second.len = strlen(RESP2); + +- CALL(session_server(&sess, single_serve_string, +- "HTTP/1.1 200 OK\r\n" "Content-Length: 0\r\n\r\n" +- "HTTP/1.0 302 Get Ye Away\r\n" +- "Location: /blah\r\n" "\r\n")); ++ CALL(session_server(&sess, double_serve_sstring, &resp)); + ONN("redirect non-NULL before register", ne_redirect_location(sess)); + ne_redirect_register(sess); + ONN("initial redirect non-NULL", ne_redirect_location(sess)); +-- +2.34.1 + diff --git a/meta-oe/recipes-support/neon/neon/0004-test-redirect.c-Cleanup.patch b/meta-oe/recipes-support/neon/neon/0004-test-redirect.c-Cleanup.patch new file mode 100644 index 0000000000..602dd4286e --- /dev/null +++ b/meta-oe/recipes-support/neon/neon/0004-test-redirect.c-Cleanup.patch @@ -0,0 +1,49 @@ +From 9e836bb63bf41fd78e12175cd7b35bfb07a031e3 Mon Sep 17 00:00:00 2001 +From: Joe Orton +Date: Mon, 8 Apr 2019 10:35:42 +0100 +Subject: [PATCH 4/4] * test/redirect.c: Cleanup. + +Upstream-Status: Backport +[https://github.com/notroj/neon/commit/9e836bb63bf41fd78e12175cd7b35bfb07a031e3] +Signed-off-by: Bindu Bhabu +--- + test/redirect.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/test/redirect.c b/test/redirect.c +index 42deadb..682097d 100644 +--- a/test/redirect.c ++++ b/test/redirect.c +@@ -165,10 +165,9 @@ static int fail_loop(void) + } + #endif + +-#if 01 +- + #define RESP1 "HTTP/1.1 200 OK\r\n" "Content-Length: 0\r\n\r\n" + #define RESP2 "HTTP/1.0 302 Get Ye Away\r\n" "Location: /blah\r\n" "\r\n" ++ + /* ensure that ne_redirect_location returns NULL when no redirect has + * been encountered, or redirect hooks aren't registered. */ + static int no_redirect(void) +@@ -197,7 +196,6 @@ static int no_redirect(void) + ne_session_destroy(sess); + return OK; + } +-#endif + + ne_test tests[] = { + T(lookup_localhost), +@@ -205,9 +203,7 @@ ne_test tests[] = { + T(non_absolute), + T(relative_1), + T(relative_2), +-#if 1 + T(no_redirect), +-#endif + T(NULL) + }; + +-- +2.34.1 + diff --git a/meta-oe/recipes-support/neon/neon_0.30.2.bb b/meta-oe/recipes-support/neon/neon_0.30.2.bb index 646a9eca13..f620d547a9 100644 --- a/meta-oe/recipes-support/neon/neon_0.30.2.bb +++ b/meta-oe/recipes-support/neon/neon_0.30.2.bb @@ -9,6 +9,10 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/neon27/neon27_${PV}.orig.tar.gz \ file://pkgconfig.patch \ file://fix-package-check-for-libxml2.patch \ file://run-ptest \ + file://0001-Temporarily-disable-no_redirect.patch \ + file://0002-Re-enabling-no_redirect-with-more-debugging.patch \ + file://0003-no_redirect-Switch-to-using-double_serve_sstring.patch \ + file://0004-test-redirect.c-Cleanup.patch \ " SRC_URI[md5sum] = "e28d77bf14032d7f5046b3930704ef41"