1e1051a39Sopenharmony_ci#! /usr/bin/env perl
2e1051a39Sopenharmony_ci# Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved.
3e1051a39Sopenharmony_ci#
4e1051a39Sopenharmony_ci# Licensed under the Apache License 2.0 (the "License").  You may not use
5e1051a39Sopenharmony_ci# this file except in compliance with the License.  You can obtain a copy
6e1051a39Sopenharmony_ci# in the file LICENSE in the source distribution or at
7e1051a39Sopenharmony_ci# https://www.openssl.org/source/license.html
8e1051a39Sopenharmony_ci
9e1051a39Sopenharmony_ci
10e1051a39Sopenharmony_ciuse OpenSSL::Test::Utils;
11e1051a39Sopenharmony_ciuse OpenSSL::Test qw/:DEFAULT srctop_file srctop_dir bldtop_dir bldtop_file/;
12e1051a39Sopenharmony_ciuse File::Temp qw(tempfile);
13e1051a39Sopenharmony_ci
14e1051a39Sopenharmony_ciBEGIN {
15e1051a39Sopenharmony_cisetup("test_sslapi");
16e1051a39Sopenharmony_ci}
17e1051a39Sopenharmony_ci
18e1051a39Sopenharmony_ciuse lib srctop_dir('Configurations');
19e1051a39Sopenharmony_ciuse lib bldtop_dir('.');
20e1051a39Sopenharmony_ci
21e1051a39Sopenharmony_cimy $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0);
22e1051a39Sopenharmony_ci
23e1051a39Sopenharmony_ciplan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
24e1051a39Sopenharmony_ci    if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
25e1051a39Sopenharmony_ci
26e1051a39Sopenharmony_ciplan tests =>
27e1051a39Sopenharmony_ci    ($no_fips ? 0 : 1)          # sslapitest with fips
28e1051a39Sopenharmony_ci    + 1;                        # sslapitest with default provider
29e1051a39Sopenharmony_ci
30e1051a39Sopenharmony_ci(undef, my $tmpfilename) = tempfile();
31e1051a39Sopenharmony_ci
32e1051a39Sopenharmony_ciok(run(test(["sslapitest", srctop_dir("test", "certs"),
33e1051a39Sopenharmony_ci             srctop_file("test", "recipes", "90-test_sslapi_data",
34e1051a39Sopenharmony_ci                         "passwd.txt"), $tmpfilename, "default",
35e1051a39Sopenharmony_ci             srctop_file("test", "default.cnf"),
36e1051a39Sopenharmony_ci             srctop_file("test",
37e1051a39Sopenharmony_ci                         "recipes",
38e1051a39Sopenharmony_ci                         "90-test_sslapi_data",
39e1051a39Sopenharmony_ci                         "dhparams.pem")])),
40e1051a39Sopenharmony_ci             "running sslapitest");
41e1051a39Sopenharmony_ci
42e1051a39Sopenharmony_ciunless ($no_fips) {
43e1051a39Sopenharmony_ci    ok(run(test(["sslapitest", srctop_dir("test", "certs"),
44e1051a39Sopenharmony_ci                 srctop_file("test", "recipes", "90-test_sslapi_data",
45e1051a39Sopenharmony_ci                             "passwd.txt"), $tmpfilename, "fips",
46e1051a39Sopenharmony_ci                 srctop_file("test", "fips-and-base.cnf"),
47e1051a39Sopenharmony_ci                 srctop_file("test",
48e1051a39Sopenharmony_ci                             "recipes",
49e1051a39Sopenharmony_ci                             "90-test_sslapi_data",
50e1051a39Sopenharmony_ci                             "dhparams.pem")])),
51e1051a39Sopenharmony_ci                 "running sslapitest");
52e1051a39Sopenharmony_ci}
53e1051a39Sopenharmony_ci
54e1051a39Sopenharmony_ciunlink $tmpfilename;
55