[openssl] master update

Richard Levitte levitte at openssl.org
Thu Jul 4 10:07:26 UTC 2019


The branch master has been updated
       via  7e47db5b5645cf6728d8fe13f930bad026c64689 (commit)
      from  7a2027240e1d01f7f5b209998d1de36af221b34b (commit)


- Log -----------------------------------------------------------------
commit 7e47db5b5645cf6728d8fe13f930bad026c64689
Author: Richard Levitte <levitte at openssl.org>
Date:   Wed Jul 3 19:11:36 2019 +0200

    test/recipes/02_test_errstr.t: Make it less fragile
    
    Change it to split the error string returned by `openssl errstr` in a
    more robust manner, and ensure it's the reason code we look at.
    
    Reviewed-by: Tomas Mraz <tmraz at fedoraproject.org>
    (Merged from https://github.com/openssl/openssl/pull/9304)

-----------------------------------------------------------------------

Summary of changes:
 test/recipes/02-test_errstr.t | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/test/recipes/02-test_errstr.t b/test/recipes/02-test_errstr.t
index 3498b81..76e0bba 100644
--- a/test/recipes/02-test_errstr.t
+++ b/test/recipes/02-test_errstr.t
@@ -104,18 +104,31 @@ foreach my $errname (@posix_errors) {
         my @oerr = run(app([ qw(openssl errstr), sprintf("2%06x", $errnum) ]),
                        capture => 1);
         $oerr[0] =~ s|\R$||;
-        $oerr[0] =~ s|.*system library:||g; # The actual message is last
-
-        ok($oerr[0] eq $perr, "($errnum) '$oerr[0]' == '$perr'");
+        @oerr = split_error($oerr[0]);
+        ok($oerr[3] eq $perr, "($errnum) '$oerr[3]' == '$perr'");
     }
 }
 
 my @after = run(app([ qw(openssl errstr 2000080) ]), capture => 1);
 $after[0] =~ s|\R$||;
-$after[0] =~ s|.*system library:||g;
-ok($after[0] eq "reason(128)", "(128) '$after[0]' == 'reason(128)'");
+ at after = split_error($after[0]);
+ok($after[3] eq "reason(128)", "(128) '$after[3]' == 'reason(128)'");
 
 my @zero = run(app([ qw(openssl errstr 2000000) ]), capture => 1);
 $zero[0] =~ s|\R$||;
-$zero[0] =~ s|.*system library:||g;
-ok($zero[0] eq "system library", "(0) '$zero[0]' == 'system library'");
+ at zero = split_error($zero[0]);
+ok($zero[3] eq "system library", "(0) '$zero[3]' == 'system library'");
+
+# For an error string "error:xxxxxxxx:lib:func:reason", this returns
+# the following array:
+#
+# ( "xxxxxxxx", "lib", "func", "reason" )
+sub split_error {
+    # Limit to 5 items, in case the reason contains a colon
+    my @erritems = split /:/, $_[0], 5;
+
+    # Remove the first item, which is always "error"
+    shift @erritems;
+
+    return @erritems;
+}


More information about the openssl-commits mailing list