50c18a9c1bbab05163e46a5826f3bf7ed8ce0262
[openssl.git] / test / recipes / 25-test_req.t
1 #! /usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use File::Spec;
7 use Test::More;
8 use OpenSSL::Test qw/:DEFAULT top_file/;
9
10 setup("test_req");
11
12 plan tests => 3;
13
14 require_ok(top_file('test','recipes','tconversion.pl'));
15
16 my @openssl_args = ("req", "-config", "../apps/openssl.cnf");
17
18 run_conversion('req conversions',
19                "testreq.pem");
20 run_conversion('req conversions -- testreq2',
21                "testreq2.pem");
22
23 sub run_conversion {
24     my $title = shift;
25     my $reqfile = shift;
26
27     subtest $title => sub {
28         run(app(["openssl", @openssl_args,
29                  "-in", $reqfile, "-inform", "p",
30                  "-noout", "-text"],
31                 stderr => "req-check.err", stdout => undef));
32         open DATA, "req-check.err";
33       SKIP: {
34           plan skip_all => "skipping req conversion test for $reqfile"
35               if grep /Unknown Public Key/, map { chomp } <DATA>;
36
37           tconversion("req", "testreq.pem", @openssl_args);
38         }
39         close DATA;
40         unlink "req-check.err";
41
42         done_testing();
43     };
44 }