From: Andy Polyakov Date: Sat, 28 May 2016 14:11:01 +0000 (+0200) Subject: Configure,test/recipes: "pin" glob to File::Glob::glob. X-Git-Tag: OpenSSL_1_1_0-pre6~660 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=97855556161155d87635787aca341a6a86b2f9e4 Configure,test/recipes: "pin" glob to File::Glob::glob. As it turns out default glob's behaviour for quoted argument varies from version to version, making it impossible to Configure or run tests in some cases. The reason for quoting globs was to accommodate source path with spaces in its name, which was treated by default glob as multiple paths. File::Glob::glob on the other hand doesn't consider spaces as delimiters and therefore works with unquoted patterns. [Unfortunaltely File::Glob::glob, being too csh-ly, doesn't work on VMS, hence the "pinning" is conditional.] Reviewed-by: Richard Levitte --- diff --git a/Configure b/Configure index 0c87cd1a69..9e58fc133a 100755 --- a/Configure +++ b/Configure @@ -14,6 +14,9 @@ use strict; use File::Basename; use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/; use File::Path qw/mkpath/; +if ($^O ne "VMS") { + use File::Glob qw/glob/; +} # see INSTALL for instructions. @@ -210,7 +213,7 @@ die "erroneous version information in opensslv.h: ", # Collect target configurations my $pattern = catfile(dirname($0), "Configurations", "*.conf"); -foreach (sort glob("\"$pattern\"") ) { +foreach (sort glob($pattern)) { &read_config($_); } @@ -223,7 +226,7 @@ if (defined $ENV{$local_config_envname}) { $pattern = catfile($ENV{$local_config_envname}, '*.conf'); } - foreach (sort glob($pattern) ) { + foreach (sort glob($pattern)) { &read_config($_); } } diff --git a/test/recipes/40-test_rehash.t b/test/recipes/40-test_rehash.t index c5c90e0bd6..201d1add13 100644 --- a/test/recipes/40-test_rehash.t +++ b/test/recipes/40-test_rehash.t @@ -13,6 +13,9 @@ use warnings; use File::Spec::Functions; use File::Copy; use File::Basename; +if ($^O ne "VMS") { + use File::Glob qw/glob/; +} use OpenSSL::Test qw/:DEFAULT bldtop_file/; setup("test_rehash"); @@ -59,9 +62,9 @@ indir "rehash.$$" => sub { sub prepare { my @sourcefiles = sort map { glob(bldtop_file('certs', 'demo', "*.$_")) } ('pem', - 'crt', - 'cer', - 'crl'); + 'crt', + 'cer', + 'crl'); my @destfiles = (); foreach (@sourcefiles) { copy($_, curdir()); diff --git a/test/recipes/80-test_ssl_new.t b/test/recipes/80-test_ssl_new.t index 07f1291f69..b9f3fa8e8d 100644 --- a/test/recipes/80-test_ssl_new.t +++ b/test/recipes/80-test_ssl_new.t @@ -12,6 +12,9 @@ use warnings; use File::Basename; use File::Compare qw/compare_text/; +if ($^O ne "VMS") { + use File::Glob qw/glob/; +} use OpenSSL::Test qw/:DEFAULT srctop_dir srctop_file/; use OpenSSL::Test::Utils qw/disabled alldisabled available_protocols/; @@ -20,7 +23,7 @@ setup("test_ssl_new"); $ENV{TEST_CERTS_DIR} = srctop_dir("test", "certs"); -my @conf_srcs = glob('"'.srctop_file("test", "ssl-tests", "*.conf.in").'"'); +my @conf_srcs = glob(srctop_file("test", "ssl-tests", "*.conf.in")); map { s/;.*// } @conf_srcs if $^O eq "VMS"; my @conf_files = map { basename($_) } @conf_srcs; map { s/\.in// } @conf_files; diff --git a/test/run_tests.pl b/test/run_tests.pl index 6ce1521a75..b1084138dd 100644 --- a/test/run_tests.pl +++ b/test/run_tests.pl @@ -16,6 +16,9 @@ BEGIN { use File::Spec::Functions qw/catdir catfile curdir abs2rel rel2abs/; use File::Basename; +if ($^O ne "VMS") { + use File::Glob qw/glob/; +} use Test::Harness qw/runtests $switches/; my $srctop = $ENV{SRCTOP} || $ENV{TOP}; @@ -42,13 +45,13 @@ my $list_mode = scalar(grep /^list$/, @tests) != 0; if (grep /^(alltests|list)$/, @tests) { @tests = grep { basename($_) =~ /^[0-9][0-9]-[^\.]*\.t$/ - } glob('"'.catfile($recipesdir,"*.t").'"'); + } glob(catfile($recipesdir,"*.t")); } else { my @t = (); foreach (@tests) { push @t, grep { basename($_) =~ /^[0-9][0-9]-[^\.]*\.t$/ - } glob('"'.catfile($recipesdir,"*-$_.t").'"'); + } glob(catfile($recipesdir,"*-$_.t")); } @tests = @t; } diff --git a/util/process_docs.pl b/util/process_docs.pl index efc4ef5361..cf1d326065 100644 --- a/util/process_docs.pl +++ b/util/process_docs.pl @@ -13,6 +13,9 @@ use File::Spec::Functions; use File::Basename; use File::Copy; use File::Path; +if ($^O ne "VMS") { + use File::Glob qw/glob/; +} use Getopt::Long; use Pod::Usage; @@ -72,7 +75,7 @@ my $symlink_exists = eval { symlink("",""); 1 }; foreach my $subdir (keys %{$options{subdir}}) { my $section = $options{subdir}->{$subdir}; my $podsourcedir = catfile($options{sourcedir}, $subdir); - my $podglob = '"'.catfile($podsourcedir, "*.pod").'"'; + my $podglob = catfile($podsourcedir, "*.pod"); foreach my $podfile (glob $podglob) { my $podname = basename($podfile, ".pod");