Output adjustments closer to a more common format

This commit is contained in:
Dirk Wetter 2020-01-14 18:44:11 +01:00
parent 13aa6aa433
commit 8d864aba2e
7 changed files with 42 additions and 30 deletions

View File

@ -18,24 +18,25 @@ printf "\n%s\n", "Testing whether just calling \"./testssl.sh\" produces no erro
$fileout = `timeout 10 bash ./testssl.sh 2>&1`; $fileout = `timeout 10 bash ./testssl.sh 2>&1`;
my $retval=$?; my $retval=$?;
unlike($fileout, qr/$error_regexp1/, ""); unlike($fileout, qr/$error_regexp1/, "regex 1");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp2/, ""); unlike($fileout, qr/$error_regexp2/, "regex 2");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp3/, ""); unlike($fileout, qr/$error_regexp3/, "regex 3");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp4/, ""); unlike($fileout, qr/$error_regexp4/, "regex 4");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp5/, ""); unlike($fileout, qr/$error_regexp5/, "regex 5");
$tests++; $tests++;
is($retval, 0, "return value should be equal zero: \"$retval\""); is($retval, 0, "return value should be equal zero: \"$retval\"");
$tests++; $tests++;
printf "\n";
done_testing($tests); done_testing($tests);

View File

@ -21,27 +21,28 @@ printf "\n%s\n", "Testing whether just calling \"./testssl.sh --banner\" produce
$fileout = `timeout 10 bash ./testssl.sh --banner 2>&1`; $fileout = `timeout 10 bash ./testssl.sh --banner 2>&1`;
my $retval=$?; my $retval=$?;
unlike($fileout, qr/$error_regexp1/, ""); unlike($fileout, qr/$error_regexp1/, "regex 1");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp2/, ""); unlike($fileout, qr/$error_regexp2/, "regex 2");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp3/, ""); unlike($fileout, qr/$error_regexp3/, "regex 3");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp4/, ""); unlike($fileout, qr/$error_regexp4/, "regex 4");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp5/, ""); unlike($fileout, qr/$error_regexp5/, "regex 5");
$tests++; $tests++;
like($fileout, qr/$good_regexp/, ""); like($fileout, qr/$good_regexp/, "regex positive");
$tests++; $tests++;
is($retval, 0, "return value should be equal zero: \"$retval\""); is($retval, 0, "return value should be equal zero: \"$retval\"");
$tests++; $tests++;
printf "\n";
done_testing($tests); done_testing($tests);

View File

@ -14,12 +14,13 @@ my $error_regexp2='client-simulation.txt:';
printf "\n%s\n", "Testing whether \"~/etc/client-simulation.txt\" isn't broken ..."; printf "\n%s\n", "Testing whether \"~/etc/client-simulation.txt\" isn't broken ...";
$fileout = `bash ./etc/client-simulation.txt 2>&1`; $fileout = `bash ./etc/client-simulation.txt 2>&1`;
unlike($fileout, qr/$error_regexp1/, ""); unlike($fileout, qr/$error_regexp1/, "regex 1");
$tests++; $tests++;
unlike($fileout, qr/$error_regexp2/, ""); unlike($fileout, qr/$error_regexp2/, "regex 2");
$tests++; $tests++;
printf "\n";
done_testing($tests); done_testing($tests);

View File

@ -1,9 +1,12 @@
#!/usr/bin/env perl #!/usr/bin/env perl
use strict; use strict;
use Test::More tests => 1; use Test::More;
printf "\n%s\n", "Testing whether CA certificates are newer their SPKI hashes \"~/etc/ca_hashes.txt\" ...";
printf "\n%s\n", "Testing whether CA certificates are newer than \"~/etc/ca_hashes.txt\" ...";
my $newer_bundles=`find etc/*.pem -newer etc/ca_hashes.txt`; my $newer_bundles=`find etc/*.pem -newer etc/ca_hashes.txt`;
is($newer_bundles,"","List of CA bundles newer then etc/ca_hashes.txt should be empty. If not run utils/create_ca_hashes.sh"); is($newer_bundles,"","If there's an output with a *.pem file run \"~/utils/create_ca_hashes.sh\"");
printf "\n";
done_testing; done_testing;

View File

@ -21,10 +21,10 @@ die "Unable to open $prg" unless -f $prg;
my $uri="cloudflare.com"; my $uri="cloudflare.com";
printf "\n%s", "Unit testing JSON output ..."; printf "\n%s\n", "Unit testing JSON output ...";
#1 #1
printf "%s\n", ".. plain JSON output --> $uri "; printf "%s\n", ".. plain JSON --> $uri ";
$out = `./testssl.sh $check2run --jsonfile tmp.json $uri`; $out = `./testssl.sh $check2run --jsonfile tmp.json $uri`;
$json = json('tmp.json'); $json = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -33,7 +33,7 @@ is(@errors,0,"no errors");
$tests++; $tests++;
#2 #2
printf "%s\n", ".. pretty JSON output --> $uri "; printf "%s\n", ".. pretty JSON --> $uri ";
$out = `./testssl.sh $check2run --jsonfile-pretty tmp.json $uri`; $out = `./testssl.sh $check2run --jsonfile-pretty tmp.json $uri`;
$json = json('tmp.json'); $json = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -45,7 +45,7 @@ $tests++;
#3 #3
# This testss.sh run deliberately does NOT work as travis-ci.org blocks port 25 egress. # This testss.sh run deliberately does NOT work as travis-ci.org blocks port 25 egress.
# but the output should be fine. The idea is to have a unit test for a failed connection. # but the output should be fine. The idea is to have a unit test for a failed connection.
printf "%s\n", ".. plain JSON output for a failed run '--mx $uri' ..."; printf "%s\n", ".. plain JSON for a failed run: '--mx $uri' ...";
$out = `./testssl.sh --ssl-native --openssl-timeout=10 $check2run --jsonfile tmp.json --mx $uri`; $out = `./testssl.sh --ssl-native --openssl-timeout=10 $check2run --jsonfile tmp.json --mx $uri`;
$json = json('tmp.json'); $json = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -55,7 +55,7 @@ $tests++;
#4 #4
# Same as above but with pretty JSON # Same as above but with pretty JSON
printf "%s\n", ".. pretty JSON output for a failed run '--mx $uri' ..."; printf "%s\n", ".. pretty JSON for a failed run '--mx $uri' ...";
$out = `./testssl.sh --ssl-native --openssl-timeout=10 $check2run --jsonfile-pretty tmp.json --mx $uri`; $out = `./testssl.sh --ssl-native --openssl-timeout=10 $check2run --jsonfile-pretty tmp.json --mx $uri`;
$json = json('tmp.json'); $json = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -65,7 +65,7 @@ $tests++;
#5 #5
my $uri = "smtp-relay.gmail.com:587"; my $uri = "smtp-relay.gmail.com:587";
printf "%s\n", " .. plain JSON output --> $uri ..."; printf "%s\n", " .. plain JSON and STARTTLS --> $uri ...";
$out = `./testssl.sh --jsonfile tmp.json $check2run -t smtp $uri`; $out = `./testssl.sh --jsonfile tmp.json $check2run -t smtp $uri`;
$json = json('tmp.json'); $json = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -73,7 +73,7 @@ unlink 'tmp.json';
is(@errors,0,"no errors"); is(@errors,0,"no errors");
$tests++; $tests++;
printf "\n";
done_testing($tests); done_testing($tests);
sub json($) { sub json($) {

View File

@ -18,8 +18,10 @@ my $check2run="--color 0 --htmlfile tmp.html";
die "Unable to open $prg" unless -f $prg; die "Unable to open $prg" unless -f $prg;
printf "\n%s\n", "Doing HTML output checks";
#1 #1
printf "\n%s\n", "Running $prg against $uri to create HTML and terminal outputs (may take 2~3 minutes) ..."; printf "%s\n", " .. running $prg against $uri to create HTML and terminal outputs (may take 2~3 minutes)";
# specify a TERM_WIDTH so that the two calls to testssl.sh don't create HTML files with different values of TERM_WIDTH # specify a TERM_WIDTH so that the two calls to testssl.sh don't create HTML files with different values of TERM_WIDTH
$out = `TERM_WIDTH=120 $prg $check2run $uri`; $out = `TERM_WIDTH=120 $prg $check2run $uri`;
$html = `cat tmp.html`; $html = `cat tmp.html`;
@ -41,12 +43,12 @@ $edited_html =~ s/>/>/g;
$edited_html =~ s/"/"/g; $edited_html =~ s/"/"/g;
$edited_html =~ s/'/'/g; $edited_html =~ s/'/'/g;
printf "\n%s\n", "Comparing HTML and terminal outputs"; printf "\n%s\n", " .. comparing HTML and terminal outputs";
cmp_ok($edited_html, "eq", $out, "HTML file matches terminal output"); cmp_ok($edited_html, "eq", $out, "HTML file matches terminal output");
$tests++; $tests++;
#2 #2
printf "\n%s\n", "Running $prg against $uri with --debug 4 to create HTML output (may take 2~3 minutes)"; printf "\n%s\n", " .. running $prg against $uri with --debug 4 to create HTML output (may take another 2~3 minutes)";
# Redirect stderr to /dev/null in order to avoid some unexplained "date: invalid date" error messages # Redirect stderr to /dev/null in order to avoid some unexplained "date: invalid date" error messages
$out = `TERM_WIDTH=120 $prg $check2run --debug 4 $uri 2> /dev/null`; $out = `TERM_WIDTH=120 $prg $check2run --debug 4 $uri 2> /dev/null`;
$debughtml = `cat tmp.html`; $debughtml = `cat tmp.html`;
@ -66,9 +68,9 @@ $debughtml =~ s/HTTP clock skew \+?-?[0-9]* /HTTP clock skew
$debughtml =~ s/ Pre-test: .*\n//g; $debughtml =~ s/ Pre-test: .*\n//g;
$debughtml =~ s/.*OK: below 825 days.*\n//g; $debughtml =~ s/.*OK: below 825 days.*\n//g;
printf "\n%s\n", "Checking that using the --debug option doesn't affect the HTML file"; printf "\n%s\n", " .. checking that using the --debug option doesn't affect the HTML file";
cmp_ok($debughtml, "eq", $html, "HTML file created with --debug 4 matches HTML file created without --debug"); cmp_ok($debughtml, "eq", $html, "HTML file created with --debug 4 matches HTML file created without --debug");
$tests++; $tests++;
printf "\n%s\n";
printf "\n";
done_testing($tests); done_testing($tests);

View File

@ -15,8 +15,11 @@ my (
$tests = 0; $tests = 0;
printf "\n%s\n", "Doing severity level checks";
#1 #1
pass("Running testssl.sh against badssl.com to create a JSON report with severity level equal greater than LOW (may take 2~3 minutes)"); $tests++; pass(" .. running testssl.sh against badssl.com to create a JSON report with severity level equal greater than LOW (may take 2~3 minutes)"); $tests++;
$out = `./testssl.sh -S -e -U --jsonfile tmp.json --severity LOW --color 0 badssl.com`; $out = `./testssl.sh -S -e -U --jsonfile tmp.json --severity LOW --color 0 badssl.com`;
$json = json('tmp.json'); $json = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -31,7 +34,7 @@ foreach my $f ( @$json ) {
is($found,0,"We should not have any finding with INFO level"); $tests++; is($found,0,"We should not have any finding with INFO level"); $tests++;
#2 #2
pass("Running testssl.sh against badssl.com to create a JSON-PRETTY report with severity level equal greater than LOW (may take 2~3 minutes)"); $tests++; pass(" .. running testssl.sh against badssl.com to create a JSON-PRETTY report with severity level equal greater than LOW (may take 2~3 minutes)"); $tests++;
$out = `./testssl.sh -S -e -U --jsonfile-pretty tmp.json --severity LOW --color 0 badssl.com`; $out = `./testssl.sh -S -e -U --jsonfile-pretty tmp.json --severity LOW --color 0 badssl.com`;
$json_pretty = json('tmp.json'); $json_pretty = json('tmp.json');
unlink 'tmp.json'; unlink 'tmp.json';
@ -45,6 +48,7 @@ foreach my $f ( @$vulnerabilities ) {
} }
is($found,0,"We should not have any finding with INFO level"); $tests++; is($found,0,"We should not have any finding with INFO level"); $tests++;
printf "\n";
done_testing($tests); done_testing($tests);
sub json($) { sub json($) {