2020-01-13 17:36:40 +01:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
|
|
|
|
# Basics: is there a synatx error where already bash hiccups on?
|
|
|
|
# --banner is equal to --version
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use Test::More;
|
|
|
|
|
|
|
|
my $tests = 0;
|
|
|
|
my $fileout="";
|
|
|
|
# Blacklists we use to trigger an error:
|
|
|
|
my $error_regexp1='(syntax|parse) (e|E)rror';
|
|
|
|
my $error_regexp2='testssl.sh: line';
|
|
|
|
my $error_regexp3='bash: warning';
|
|
|
|
my $error_regexp4='command not found';
|
|
|
|
my $error_regexp5='(syntax error|unexpected token)';
|
|
|
|
# my $good_regexp='free software.*USAGE w/o ANY WARRANTY.*OWN RISK.*Using.*ciphers.*built(.*)platform';
|
|
|
|
my $good_regexp='free software([\s\S]*)USAGE w/o ANY WARRANTY([\s\S]*)OWN RISK([\s\S]*)Using([\s\S]*)ciphers([\s\S]*)built([\s\S]*)platform';
|
|
|
|
|
2020-01-13 23:50:14 +01:00
|
|
|
printf "\n%s\n", "Testing whether just calling \"./testssl.sh --banner\" produces no error ...";
|
2020-01-13 17:36:40 +01:00
|
|
|
$fileout = `timeout 10 bash ./testssl.sh --banner 2>&1`;
|
|
|
|
my $retval=$?;
|
|
|
|
|
|
|
|
unlike($fileout, qr/$error_regexp1/, "");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
unlike($fileout, qr/$error_regexp2/, "");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
unlike($fileout, qr/$error_regexp3/, "");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
unlike($fileout, qr/$error_regexp4/, "");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
unlike($fileout, qr/$error_regexp5/, "");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
like($fileout, qr/$good_regexp/, "");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
is($retval, 0, "return value should be equal zero: \"$retval\"");
|
|
|
|
$tests++;
|
|
|
|
|
|
|
|
done_testing($tests);
|
|
|
|
|
|
|
|
|