Add error regress coverage for ERR_LIB_SYS.
authorjsing <jsing@openbsd.org>
Fri, 11 Oct 2024 07:54:22 +0000 (07:54 +0000)
committerjsing <jsing@openbsd.org>
Fri, 11 Oct 2024 07:54:22 +0000 (07:54 +0000)
These are dynamically populated based on strerror() values.

regress/lib/libcrypto/err/err_test.c

index 16fd675..d31c61f 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: err_test.c,v 1.1 2024/10/02 14:41:46 jsing Exp $ */
+/* $OpenBSD: err_test.c,v 1.2 2024/10/11 07:54:22 jsing Exp $ */
 /*
  * Copyright (c) 2024 Joel Sing <jsing@openbsd.org>
  *
@@ -130,6 +130,24 @@ err_test(void)
 
        ERR_clear_error();
 
+       /*
+        * Check SYSerror() reasons, which are dynamically populated from
+        * strerror().
+        */
+       ERR_put_error(ERR_LIB_SYS, 0xfff, 1, "err.c", 300);
+
+       if ((err = ERR_get_error()) != 0x2fff001UL) {
+               fprintf(stderr, "FAIL: ERR_get_error() = %lx, want "
+                   "0x2fff001UL\n", err);
+               goto failure;
+       }
+       s = ERR_reason_error_string(err);
+       if (strcmp(s, strerror(ERR_GET_REASON(err))) != 0) {
+               fprintf(stderr, "FAIL: ERR_reason_error_string() = '%s', "
+                   "want '%s'\n", s, strerror(ERR_GET_REASON(err)));
+               goto failure;
+       }
+
        s = ERR_lib_error_string(0x3fff067UL);
        if (strcmp(s, "bignum routines") != 0) {
                fprintf(stderr, "FAIL: ERR_lib_error_string() = '%s', "