d5eb29b6cb0ddb2f55419cf8b68e7103bdf33697
[openssl.git] / test / recipes / 25-test_req.t
1 #! /usr/bin/env perl
2 # Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
3 #
4 # Licensed under the OpenSSL license (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
9
10 use strict;
11 use warnings;
12
13 use File::Spec;
14 use OpenSSL::Test qw/:DEFAULT srctop_file/;
15
16 setup("test_req");
17
18 plan tests => 3;
19
20 require_ok(srctop_file('test','recipes','tconversion.pl'));
21
22 my @openssl_args = ("req", "-config", srctop_file("apps", "openssl.cnf"));
23
24 run_conversion('req conversions',
25                "testreq.pem");
26 run_conversion('req conversions -- testreq2',
27                "testreq2.pem");
28
29 sub run_conversion {
30     my $title = shift;
31     my $reqfile = shift;
32
33     subtest $title => sub {
34         run(app(["openssl", @openssl_args,
35                  "-in", $reqfile, "-inform", "p",
36                  "-noout", "-text"],
37                 stderr => "req-check.err", stdout => undef));
38         open DATA, "req-check.err";
39       SKIP: {
40           plan skip_all => "skipping req conversion test for $reqfile"
41               if grep /Unknown Public Key/, map { s/\R//; } <DATA>;
42
43           tconversion("req", "testreq.pem", @openssl_args);
44         }
45         close DATA;
46         unlink "req-check.err";
47
48         done_testing();
49     };
50 }