wget/tests/WgetFeature.pm

42 lines
928 B
Perl
Raw Normal View History

2022-05-14 03:18:11 +08:00
package WgetFeature;
use strict;
use warnings;
our $VERSION = 0.01;
use English qw(-no_match_vars);
use WgetTests;
sub import
{
my ($class, @required_feature) = @_;
# create a list of available features from 'wget --version' output
my $output = `$WgetTest::WGETPATH --version`;
my ($list) = $output =~ m/^([+-]\S+(?:\s+[+-]\S+)+)/msx;
my %have_features;
for my $f (split m/\s+/msx, $list)
{
my $feat = $f;
$feat =~ s/^.//msx;
$have_features{$feat} = $f =~ m/^[+]/msx ? 1 : 0;
}
foreach (@required_feature)
{
if (!$have_features{$_})
{
print "Skipped test: Wget misses feature '$_'\n";
print "Features available from 'wget --version' output:\n";
foreach (keys %have_features)
{
print " $_=$have_features{$_}\n";
}
exit 77; # skip
}
}
}
1;