90-test_sslapi.t 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #! /usr/bin/env perl
  2. # Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
  3. #
  4. # Licensed under the Apache License 2.0 (the "License"). You may not use
  5. # this file except in compliance with the License. You can obtain a copy
  6. # in the file LICENSE in the source distribution or at
  7. # https://www.openssl.org/source/license.html
  8. use OpenSSL::Test::Utils;
  9. use OpenSSL::Test qw/:DEFAULT srctop_file srctop_dir bldtop_dir bldtop_file/;
  10. use File::Temp qw(tempfile);
  11. BEGIN {
  12. setup("test_sslapi");
  13. }
  14. use lib srctop_dir('Configurations');
  15. use lib bldtop_dir('.');
  16. use platform;
  17. my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0);
  18. plan skip_all => "No TLS/SSL protocols are supported by this OpenSSL build"
  19. if alldisabled(grep { $_ ne "ssl3" } available_protocols("tls"));
  20. plan tests =>
  21. ($no_fips ? 0 : 2) # FIPS install test + sslapitest with fips
  22. + 1; # sslapitest with default provider
  23. (undef, my $tmpfilename) = tempfile();
  24. ok(run(test(["sslapitest", srctop_dir("test", "certs"),
  25. srctop_file("test", "recipes", "90-test_sslapi_data",
  26. "passwd.txt"), $tmpfilename, "default",
  27. srctop_file("test", "default.cnf")])),
  28. "running sslapitest");
  29. unless ($no_fips) {
  30. ok(run(app(['openssl', 'fipsinstall',
  31. '-out', bldtop_file('providers', 'fipsmodule.cnf'),
  32. '-module', bldtop_file('providers', platform->dso('fips'))])),
  33. "fipsinstall");
  34. ok(run(test(["sslapitest", srctop_dir("test", "certs"),
  35. srctop_file("test", "recipes", "90-test_sslapi_data",
  36. "passwd.txt"), $tmpfilename, "fips",
  37. srctop_file("test", "fips-and-base.cnf")])),
  38. "running sslapitest");
  39. }
  40. unlink $tmpfilename;