xref: /freebsd/crypto/openssl/test/recipes/fuzz.pl (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1*e0c4386eSCy Schubert# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
2*e0c4386eSCy Schubert#
3*e0c4386eSCy Schubert# Licensed under the Apache License 2.0 (the "License").  You may not use
4*e0c4386eSCy Schubert# this file except in compliance with the License.  You can obtain a copy
5*e0c4386eSCy Schubert# in the file LICENSE in the source distribution or at
6*e0c4386eSCy Schubert# https://www.openssl.org/source/license.html
7*e0c4386eSCy Schubert
8*e0c4386eSCy Schubertuse strict;
9*e0c4386eSCy Schubertuse warnings;
10*e0c4386eSCy Schubert
11*e0c4386eSCy Schubertuse OpenSSL::Glob;
12*e0c4386eSCy Schubertuse OpenSSL::Test qw/:DEFAULT srctop_dir/;
13*e0c4386eSCy Schubert
14*e0c4386eSCy Schubertsub fuzz_ok {
15*e0c4386eSCy Schubert    die "Only one argument accepted" if scalar @_ != 1;
16*e0c4386eSCy Schubert
17*e0c4386eSCy Schubert    my $f = $_[0];
18*e0c4386eSCy Schubert    my $d = srctop_dir('fuzz', 'corpora', $f);
19*e0c4386eSCy Schubert
20*e0c4386eSCy Schubert    SKIP: {
21*e0c4386eSCy Schubert        skip "No directory $d", 1 unless -d $d;
22*e0c4386eSCy Schubert        ok(run(fuzz(["$f-test", $d])), "Fuzzing $f");
23*e0c4386eSCy Schubert    }
24*e0c4386eSCy Schubert}
25*e0c4386eSCy Schubert
26*e0c4386eSCy Schubert1;
27