From: Bob Beck Date: Fri, 29 Aug 2025 17:37:36 +0000 (-0600) Subject: fix errtest to be less sensitive to line wrapping changes X-Git-Tag: 4.0-PRE-CLANG-FORMAT-WEBKIT~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8a010899801ce94c0424efd8d405feeda007877;p=thirdparty%2Fopenssl.git fix errtest to be less sensitive to line wrapping changes (in it's final form it will work with either compiler because it's currently one line, but was tripped up before by the #ifdef, so redid it to be consistent with the other changes previously in this stack) While I am here correct the test to test for all possible return values of ERR_get_error_all, without the #ifdefs Reviewed-by: Saša Nedvědický Reviewed-by: Nikola Pajkovsky Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/29241) --- diff --git a/test/errtest.c b/test/errtest.c index 2a66b483fec..423a877185d 100644 --- a/test/errtest.c +++ b/test/errtest.c @@ -141,30 +141,21 @@ static int vdata_appends(void) static int raised_error(void) { - const char *f, *data; - int l; + int l, start_line = -1, end_line = -1; + const char *f, *data, *file = NULL; unsigned long e; - /* - * When OPENSSL_NO_ERR or OPENSSL_NO_FILENAMES, no file name or line - * number is saved, so no point checking them. - */ -#if !defined(OPENSSL_NO_FILENAMES) && !defined(OPENSSL_NO_ERR) - const char *file; - int line; - file = __FILE__; - line = __LINE__ + 2; /* The error is generated on the ERR_raise_data line */ -#endif + + start_line = __LINE__ + 1; ERR_raise_data(ERR_LIB_NONE, ERR_R_INTERNAL_ERROR, "calling exit()"); + end_line = __LINE__ - 1; if (!TEST_ulong_ne(e = ERR_get_error_all(&f, &l, NULL, &data, NULL), 0) - || !TEST_int_eq(ERR_GET_REASON(e), ERR_R_INTERNAL_ERROR) -#if !defined(OPENSSL_NO_FILENAMES) && !defined(OPENSSL_NO_ERR) - || !TEST_int_eq(l, line) - || !TEST_str_eq(f, file) -#endif - || !TEST_str_eq(data, "calling exit()")) + || !TEST_int_eq(ERR_GET_REASON(e), ERR_R_INTERNAL_ERROR) + || (l > 0 && !(TEST_int_eq(l, start_line) || TEST_int_eq(l, end_line))) + || (strlen(f) != 0 && !TEST_str_eq(f, file)) + || !TEST_str_eq(data, "calling exit()")) return 0; return 1; }