05-test_fuzz.t 1.0 KB
Newer Older
B
Ben Laurie 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/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/;
M
Matt Caswell 已提交
14
use OpenSSL::Test::Utils;
B
Ben Laurie 已提交
15 16 17

setup("test_fuzz");

M
Matt Caswell 已提交
18 19 20 21
my @fuzzers = ('asn1', 'asn1parse', 'bignum', 'bndiv', 'conf', 'crl', 'ct', 'server', 'x509');
if (!disabled("cms")) {
    push @fuzzers, 'cms';
}
B
Ben Laurie 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
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", $_])));
        }
    }
}