Include banner in check
* Changed calls to testssl.sh to not include `--quiet` or `--append` flags. Modified perl script to remove HTML header and footer before comparing to terminal output. * Changed `TERM_WIDTH` to 120 (doesn't affect test, but 80 created too much line wrapping). * Replace date and time information with X's rather than removing entirely. This should not affect the comparison, but will make the output created displayed in an error message look closer to the actual output of testssl.sh
This commit is contained in:
parent
1249157afd
commit
6d55b2e6f3
21
t/02_http.t
21
t/02_http.t
|
@ -8,12 +8,15 @@ my $tests = 0;
|
|||
|
||||
pass("Running testssl.sh against badssl.com to create HTML and terminal outputs (may take 2~3 minutes)"); $tests++;
|
||||
# specify a TERM_WIDTH so that the two calls to testssl.sh don't create HTML files with different values of TERM_WIDTH
|
||||
my $okout = `TERM_WIDTH=80 ./testssl.sh --color 0 --quiet --append --htmlfile tmp.html badssl.com`;
|
||||
my $okout = `TERM_WIDTH=120 ./testssl.sh --color 0 --htmlfile tmp.html badssl.com`;
|
||||
my $okhtml = `cat tmp.html`;
|
||||
# $modedhtml will contain the HTML with formatting information removed in order to compare against terminal output
|
||||
my $modedhtml = `cat tmp.html`;
|
||||
# Start by removing the HTML header.
|
||||
my $modedhtml = `tail -n +11 tmp.html`;
|
||||
unlink 'tmp.html';
|
||||
|
||||
# Remove the HTML footer
|
||||
$modedhtml =~ s/\n\<\/pre\>\n\<\/body\>\n\<\/html\>//;
|
||||
# Remove any hypertext links for URLs
|
||||
$modedhtml =~ s/<a href=[0-9A-Za-z ";:=\/\.\?\-]*>//g;
|
||||
$modedhtml =~ s/<\/a>//g;
|
||||
|
@ -30,20 +33,20 @@ cmp_ok($modedhtml, "eq", $okout, "HTML file matches terminal output"); $tests++;
|
|||
|
||||
pass("Running testssl.sh against badssl.com with --debug 4 to create HTML output (may take 2~3 minutes)"); $tests++;
|
||||
# Redirect stderr to /dev/null in order to avoid some unexplained "date: invalid date" error messages
|
||||
my $debugout = `TERM_WIDTH=80 ./testssl.sh --color 0 --quiet --append --debug 4 --htmlfile tmp.html badssl.com 2> /dev/null`;
|
||||
my $debugout = `TERM_WIDTH=120 .testssl.sh --color 0 --debug 4 --htmlfile tmp.html badssl.com 2> /dev/null`;
|
||||
my $debughtml = `cat tmp.html`;
|
||||
unlink 'tmp.html';
|
||||
|
||||
# Remove date information from the Start and Done banners in the two HTML files, since they were created at different times
|
||||
$okhtml =~ s/Start 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]//;
|
||||
$debughtml =~ s/Start 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]//;
|
||||
$okhtml =~ s/Start 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]/Start XXXX-XX-XX XX:XX:XX/;
|
||||
$debughtml =~ s/Start 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]/Start XXXX-XX-XX XX:XX:XX/;
|
||||
|
||||
$okhtml =~ s/Done 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] \[ [0-9]*s\]//;
|
||||
$debughtml =~ s/Done 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] \[ [0-9]*s\]//;
|
||||
$okhtml =~ s/Done 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] \[ *[0-9]*s\]/Done XXXX-XX-XX XX:XX:XX [ Xs]/;
|
||||
$debughtml =~ s/Done 2[0-9][0-9][0-9]-[0-3][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] \[ *[0-9]*s\]/Done XXXX-XX-XX XX:XX:XX [ Xs]/;
|
||||
|
||||
# Remove time difference from "HTTP clock skew" line
|
||||
$okhtml =~ s/HTTP clock skew +?-?[0-9]* //;
|
||||
$debughtml =~ s/HTTP clock skew +?-?[0-9]* //;
|
||||
$okhtml =~ s/HTTP clock skew +?-?[0-9]* /HTTP clock skew X /;
|
||||
$debughtml =~ s/HTTP clock skew +?-?[0-9]* /HTTP clock skew X /;
|
||||
|
||||
pass("Checking that using the --debug option doesn't affect the HTML file"); $tests++;
|
||||
cmp_ok($debughtml, "eq", $okhtml, "HTML file created with --debug 4 matches HTML file created without --debug"); $tests++;
|
||||
|
|
Loading…
Reference in New Issue