Commit b8a0108998 for openssl.org
commit b8a010899801ce94c0424efd8d405feeda007877
Author: Bob Beck <beck@openssl.org>
Date: Fri Aug 29 11:37:36 2025 -0600
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ý <sashan@openssl.org>
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29241)
diff --git a/test/errtest.c b/test/errtest.c
index 2a66b483fe..423a877185 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;
}