mirror of
https://github.com/openssl/openssl.git
synced 2025-01-27 04:14:10 +08:00
9785555616
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 <levitte@openssl.org>
68 lines
2.0 KiB
Perl
68 lines
2.0 KiB
Perl
#! /usr/bin/env perl
|
|
# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the OpenSSL license (the "License"). You may not use
|
|
# this file except in compliance with the License. You can obtain a copy
|
|
# in the file LICENSE in the source distribution or at
|
|
# https://www.openssl.org/source/license.html
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
# Recognise VERBOSE and V which is common on other projects.
|
|
BEGIN {
|
|
$ENV{HARNESS_VERBOSE} = "yes" if $ENV{VERBOSE} || $ENV{V};
|
|
}
|
|
|
|
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};
|
|
my $bldtop = $ENV{BLDTOP} || $ENV{TOP};
|
|
my $recipesdir = catdir($srctop, "test", "recipes");
|
|
my $testlib = catdir($srctop, "test", "testlib");
|
|
my $utillib = catdir($srctop, "util");
|
|
|
|
# It seems that $switches is getting interpreted with 'eval' or something
|
|
# like that, and that we need to take care of backslashes or they will
|
|
# disappear along the way.
|
|
$testlib =~ s|\\|\\\\|g if $^O eq "MSWin32";
|
|
$utillib =~ s|\\|\\\\|g if $^O eq "MSWin32";
|
|
|
|
# Test::Harness provides the variable $switches to give it
|
|
# switches to be used when it calls our recipes.
|
|
$switches = "-w \"-I$testlib\" \"-I$utillib\"";
|
|
|
|
my @tests = ( "alltests" );
|
|
if (@ARGV) {
|
|
@tests = @ARGV;
|
|
}
|
|
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"));
|
|
} else {
|
|
my @t = ();
|
|
foreach (@tests) {
|
|
push @t, grep {
|
|
basename($_) =~ /^[0-9][0-9]-[^\.]*\.t$/
|
|
} glob(catfile($recipesdir,"*-$_.t"));
|
|
}
|
|
@tests = @t;
|
|
}
|
|
|
|
if ($list_mode) {
|
|
@tests = map { $_ = basename($_); $_ =~ s/^[0-9][0-9]-//; $_ =~ s/\.t$//;
|
|
$_ } @tests;
|
|
print join("\n", @tests), "\n";
|
|
} else {
|
|
@tests = map { abs2rel($_, rel2abs(curdir())); } @tests;
|
|
|
|
runtests(sort @tests);
|
|
}
|