eb40eaed72
These tests take a very long time on some platforms, and arent't always strictly necessary. This makes it possible to turn them off. The necessary binaries are still built, though, in case someone still wants to do a manual run. Reviewed-by: Andy Polyakov <appro@openssl.org>
43 lines
1.2 KiB
Perl
Executable file
43 lines
1.2 KiB
Perl
Executable file
#!/usr/bin/env perl
|
|
# Copyright 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;
|
|
|
|
use if $^O ne "VMS", 'File::Glob' => qw/glob/;
|
|
use OpenSSL::Test qw/:DEFAULT srctop_file/;
|
|
use OpenSSL::Test::Utils;
|
|
|
|
setup("test_fuzz");
|
|
|
|
plan skip_all => "Fuzz testing is disabled by this OpenSSL build"
|
|
if disabled("fuzz-test");
|
|
|
|
my @fuzzers = ('asn1', 'asn1parse', 'bignum', 'bndiv', 'conf', 'crl', 'server', 'x509');
|
|
if (!disabled("cms")) {
|
|
push @fuzzers, 'cms';
|
|
}
|
|
if (!disabled("ct")) {
|
|
push @fuzzers, 'ct';
|
|
}
|
|
plan tests => scalar @fuzzers;
|
|
|
|
foreach my $f (@fuzzers) {
|
|
subtest "Fuzzing $f" => sub {
|
|
my @files = glob(srctop_file('fuzz', 'corpora', $f, '*'));
|
|
push @files, glob(srctop_file('fuzz', 'corpora', "$f-*", '*'));
|
|
|
|
plan skip_all => "No corpora for $f-test" unless @files;
|
|
|
|
plan tests => scalar @files;
|
|
|
|
foreach (@files) {
|
|
ok(run(fuzz(["$f-test", $_])));
|
|
}
|
|
}
|
|
}
|