From 0d297b42b5902ab207eb066caa1f5d39714959e8 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Sat, 19 Sep 2015 17:10:34 +0100 Subject: [PATCH] Add Utils.pm Add Utils.pm for test utilities. This currently just contains one function: disabled which checks if a feature is disabled based on the output of openssl list -disabled Reviewed-by: Richard Levitte --- test/testlib/OpenSSL/Test/Utils.pm | 84 ++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 test/testlib/OpenSSL/Test/Utils.pm diff --git a/test/testlib/OpenSSL/Test/Utils.pm b/test/testlib/OpenSSL/Test/Utils.pm new file mode 100644 index 0000000000..fc9b533613 --- /dev/null +++ b/test/testlib/OpenSSL/Test/Utils.pm @@ -0,0 +1,84 @@ +package OpenSSL::Test::Utils; + +use strict; +use warnings; + +use Exporter; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +$VERSION = "0.1"; +@ISA = qw(Exporter); +@EXPORT = qw(disabled); + +=head1 NAME + +OpenSSL::Test::Utils - test utility functions + +=head1 SYNOPSIS + + use OpenSSL::Test::Utils; + + disabled("dh"); + +=head1 DESCRIPTION + +This module provides utility functions for the testing framework. + +=cut + +use OpenSSL::Test; + +=over 4 + +=item B + +In a scalar context returns 1 if any of the features in ARRAY is disabled. + +In an array context returns an array with each element set to 1 if the +corresponding feature is disabled and 0 otherwise. + +=back + +=cut + +our %disabled; +my $disabled_set = 0; + +sub check_disabled { +#print STDERR "Running check_disabled\n"; + foreach (run(app(["openssl", "list", "-disabled"]), capture => 1)) { + chomp; + next if /:/; # skip header + $disabled{lc $_} = 1; + } + $disabled_set = 1; +} + +# args: +# list of features to check +sub disabled { + check_disabled() unless $disabled_set; + if (wantarray) { + my @ret; + foreach (@_) { + push @ret, exists $disabled{lc $_} ? 1 : 0; + } + return @ret; + } + foreach (@_) { + return 1 if exists $disabled{lc $_}; + } + return 0; +} + +=head1 SEE ALSO + +L + +=head1 AUTHORS + +Stephen Henson Esteve@openssl.orgE with inspiration +from Richard Levitte Elevitte@openssl.orgE + +=cut + +1; -- 2.25.1