]> wagner.pp.ru Git - openssl-gost/engine.git/commitdiff
Migrate test framework to Test2
authorAlexander Bokovoy <abokovoy@redhat.com>
Thu, 4 Oct 2018 07:23:44 +0000 (10:23 +0300)
committerAlexander Bokovoy <abokovoy@redhat.com>
Sat, 16 Feb 2019 18:56:42 +0000 (20:56 +0200)
At least Fedora 30 will have no Test::More anymore. Test::More is
deprecated, as well as Test::Stream and Test2 is a recommended
replacement.

Luckily, gost-engine's use of Test::More is limited to functions which
are compatible with implementations in Test2, so only module import and
test plan announcement need to change.

Also, on Fedora 29 perl 5.28 is very picky on undefined variables.

test/00-engine.t
test/01-digest.t
test/02-mac.t
test/03-encrypt.t
test/04-pkey.t

index b66e3ef2b12738555531d58bb13ddde2d6493ad4..e6685aac8360c551d8c806bb983a2a27a7f23cc3 100644 (file)
@@ -1,24 +1,25 @@
 #!/usr/bin/perl
-use Test::More tests => 7;
+use Test2::V0;
+plan(7);
 use Cwd 'abs_path';
 
 # prepare data for 
 
-open F,">","testdata.dat";
-print F "12345670" x 128;
-close F;
+open (my $F,">","testdata.dat");
+print $F "12345670" x 128;
+close $F;
 
 # Set OPENSSL_ENGINES environment variable to just built engine
 if(!defined $ENV{'OPENSSL_ENGINES'}){
        $ENV{'OPENSSL_ENGINES'} = abs_path("../.libs");
 }
 
-$key='0123456789abcdef' x 2;
+my $key='0123456789abcdef' x 2;
 
 #
 # You can redefine engine to use using ENGINE_NAME environment variable
 # 
-$engine=$ENV{'ENGINE_NAME'}||"gost";
+my $engine=$ENV{'ENGINE_NAME'}||"gost";
 
 # Reopen STDERR to eliminate extra output
 open STDERR, ">>","tests.err";
@@ -32,6 +33,8 @@ if (exists $ENV{'OPENSSL_CONF'}) {
 # ${ENGINE_NAME}.info into this directory if you use this test suite
 # to test other engine implementing GOST cryptography.
 #
+my $engine_info;
+
 if ( -f $engine . ".info") {
        diag("Reading $engine.info");
        open F, "<", $engine . ".info";
@@ -54,8 +57,8 @@ is(`openssl dgst -engine $engine -md_gost94 testdata.dat`,
 "compute digest without config");
 
 
-open F,">","test.cnf";
-print F <<EOCFG;
+open $F,">","test.cnf";
+print $F <<EOCFG;
 openssl_conf = openssl_def
 [openssl_def]
 engines = engines
@@ -65,7 +68,7 @@ ${engine}=gost_conf
 default_algorithms = ALL
 
 EOCFG
-close F;
+close $F;
 $ENV{'OPENSSL_CONF'}=abs_path('test.cnf');
 
 is(`openssl engine -c $engine`,
index 3838fd203763065a22cb4643c45b9c1fda9da2c5..63cd97306fbb3f93760bb6bc98baeb8609794e37 100644 (file)
@@ -1,5 +1,6 @@
 #!/usr/bin/perl 
-use Test::More tests => 16;
+use Test2::V0;
+plan(16);
 use Cwd 'abs_path';
 
 # Set OPENSSL_ENGINES environment variable to just built engine
@@ -7,15 +8,16 @@ if(!defined $ENV{'OPENSSL_ENGINES'}){
         $ENV{'OPENSSL_ENGINES'} = abs_path("../.libs");
 }
 # Set engine name from environment to allow testing of different engines
-$engine=$ENV{'ENGINE_NAME'}||"gost";
+my $engine=$ENV{'ENGINE_NAME'}||"gost";
 # Reopen STDERR to eliminate extra output
 open STDERR, ">>","tests.err";
 
 # prepare data for 
+my $F;
 
-open F,">","testm1.dat";
-print F "012345678901234567890123456789012345678901234567890123456789012";
-close F;
+open $F,">","testm1.dat";
+print $F "012345678901234567890123456789012345678901234567890123456789012";
+close $F;
 is(`openssl dgst -engine ${engine} -md_gost12_256 testm1.dat`,
 "md_gost12_256(testm1.dat)= 9d151eefd8590b89daa6ba6cb74af9275dd051026bb149a452fd84e5e57b5500\n",
 "GOST R 34.11-2012 256bit example 1 from standard");
@@ -26,9 +28,9 @@ is(`openssl dgst -engine ${engine} -md_gost12_512 testm1.dat`,
 
 unlink("testm1.dat");
 
-open F,">","testm2.dat";
-print F pack("H*","d1e520e2e5f2f0e82c20d1f2f0e8e1eee6e820e2edf3f6e82c20e2e5fef2fa20f120eceef0ff20f1f2f0e5ebe0ece820ede020f5f0e0e1f0fbff20efebfaeafb20c8e3eef0e5e2fb");
-close F;
+open $F,">","testm2.dat";
+print $F pack("H*","d1e520e2e5f2f0e82c20d1f2f0e8e1eee6e820e2edf3f6e82c20e2e5fef2fa20f120eceef0ff20f1f2f0e5ebe0ece820ede020f5f0e0e1f0fbff20efebfaeafb20c8e3eef0e5e2fb");
+close $F;
 is(`openssl dgst -engine ${engine} -md_gost12_256 testm2.dat`,
 "md_gost12_256(testm2.dat)= 9dd2fe4e90409e5da87f53976d7405b0c0cac628fc669a741d50063c557e8f50\n",
 "GOST R 34.11-2012 256bit example 2 from standard");
@@ -40,10 +42,10 @@ is(`openssl dgst -engine ${engine} -md_gost12_512 testm2.dat`,
 unlink("testm2.dat");
 
 
-open F,">","testdata.dat";
-binmode F;
-print F "12345670" x 128;
-close F;
+open $F,">","testdata.dat";
+binmode $F;
+print $F "12345670" x 128;
+close $F;
 is(`openssl dgst -engine ${engine} -md_gost94 testdata.dat`,
 "md_gost94(testdata.dat)= f7fc6d16a6a5c12ac4f7d320e0fd0d8354908699125e09727a4ef929122b1cae\n",
 "GOST R 34.11-94 1K ascii");
@@ -58,10 +60,10 @@ is(`openssl dgst -engine ${engine} -md_gost12_512 testdata.dat`,
 
 unlink("testdata.dat");
 
-open F,">","testdata2.dat";
-binmode F;
-print F "\x00\x01\x02\x15\x84\x67\x45\x31" x 128;
-close F;
+open $F,">","testdata2.dat";
+binmode $F;
+print $F "\x00\x01\x02\x15\x84\x67\x45\x31" x 128;
+close $F;
 
 is(`openssl dgst -engine ${engine} -md_gost94 testdata2.dat`,
 "md_gost94(testdata2.dat)= 69f529aa82d9344ab0fa550cdf4a70ecfd92a38b5520b1906329763e09105196\n",
@@ -77,10 +79,10 @@ is(`openssl dgst -engine ${engine} -md_gost12_512 testdata2.dat`,
 
 unlink("testdata2.dat");
 
-open F, ">","testdata3.dat";
-binmode F;
-print F substr("12345670" x 128,0,539);
-close F;
+open $F, ">","testdata3.dat";
+binmode $F;
+print $F substr("12345670" x 128,0,539);
+close $F;
 
 is(`openssl dgst -engine ${engine} -md_gost94 testdata3.dat`,
 "md_gost94(testdata3.dat)= bd5f1e4b539c7b00f0866afdbc8ed452503a18436061747a343f43efe888aac9\n",
@@ -95,10 +97,10 @@ is(`openssl dgst -engine ${engine} -md_gost12_512 testdata3.dat`,
 "GOST R 34.11-2012 512bit 539 bytes");
 
 unlink "testdata3.dat";
-open F , ">","bigdata.dat";
-binmode F;
-print F  ("121345678" x 7 . "1234567\n") x 4096,"12345\n";
-close F;
+open $F , ">","bigdata.dat";
+binmode $F;
+print $F  ("121345678" x 7 . "1234567\n") x 4096,"12345\n";
+close $F;
 
 is(`openssl dgst -engine ${engine} -md_gost94 bigdata.dat`,
 "md_gost94(bigdata.dat)= e5d3ac4ea3f67896c51ff919cedb9405ad771e39f0f2eab103624f9a758e506f\n",
index 5713dca51635c3a3825a99f1c26c1e0cca00d709..f3bbe99f4702e4a0249643ceffc8ff56a478758a 100644 (file)
@@ -1,24 +1,25 @@
 #!/usr/bin/perl 
-use Test::More tests => 19;
+use Test2::V0;
+plan(19);
 use Cwd 'abs_path';
 
 # prepare data for 
-
-open F,">","testdata.dat";
-print F "12345670" x 128;
-close F;
-
-open F,">","testbig.dat";
-print F ("12345670" x 8 . "\n") x  4096;
-close F;
+my $F;
+open $F,">","testdata.dat";
+print $F "12345670" x 128;
+close $F;
+
+open $F,">","testbig.dat";
+print $F ("12345670" x 8 . "\n") x  4096;
+close $F;
 # Set OPENSSL_ENGINES environment variable to just built engine
 if(!defined $ENV{'OPENSSL_ENGINES'}){
         $ENV{'OPENSSL_ENGINES'} = abs_path("../.libs");
 }
 
-$key='0123456789abcdef' x 2;
+my $key='0123456789abcdef' x 2;
 
-$engine=$ENV{'ENGINE_NAME'}||"gost";
+my $engine=$ENV{'ENGINE_NAME'}||"gost";
 
 # Reopen STDERR to eliminate extra output
 open STDERR, ">>","tests.err";
@@ -27,6 +28,7 @@ is(`openssl dgst -engine ${engine} -mac gost-mac -macopt key:${key} testdata.dat
 "GOST-MAC-gost-mac(testdata.dat)= 2ee8d13d\n",
 "GOST MAC - default size");
 
+my $i;
 for ($i=1;$i<=8; $i++) {
        is(`openssl dgst -engine ${engine} -mac gost-mac -macopt key:${key} -sigopt size:$i testdata.dat`,
 "GOST-MAC-gost-mac(testdata.dat)= ".substr("2ee8d13dff7f037d",0,$i*2)."\n",
index d5b56c463595a0aa97eb02fc1d0e93cce11c03b1..6b1d593f33455207f2afcce2b19ab836b81e38a7 100644 (file)
@@ -1,12 +1,13 @@
 #!/usr/bin/perl
-use Test::More tests => 48;
+use Test2::V0;
+plan(48);
 use Cwd 'abs_path';
 
 #
 # If this variable is set, engine would be loaded via configuration
 # file. Otherwise - via command line
 # 
-$use_config = 1;
+my $use_config = 1;
 
 # prepare data for 
 
@@ -16,12 +17,12 @@ if(!defined $ENV{'OPENSSL_ENGINES'}){
         $ENV{'OPENSSL_ENGINES'} = abs_path("../.libs");
 }
 
-$key='0123456789abcdef' x 2;
+my $key='0123456789abcdef' x 2;
 
 #
 # You can redefine engine to use using ENGINE_NAME environment variable
 # 
-$engine=$ENV{'ENGINE_NAME'}||"gost";
+my $engine=$ENV{'ENGINE_NAME'}||"gost";
 
 # Reopen STDERR to eliminate extra output
 open STDERR, ">>","tests.err";
@@ -35,12 +36,14 @@ our $count=0;
 # -key - key (hex-encoded)
 # -iv  - IV (hex-encoded)
 # 
+my $F;
+my $eng_param;
 
-open F,">","test.cnf";
+open $F,">","test.cnf";
 if (defined($use_config) && $use_config) {
        $eng_param = "";
-       open F,">","test.cnf";
-       print F <<EOCFG;
+       open $F,">","test.cnf";
+       print $F <<EOCFG
 openssl_conf = openssl_def
 [openssl_def]
 engines = engines
@@ -53,7 +56,7 @@ EOCFG
 } else {
        $eng_param = "-engine $engine"
 }
-close F;
+close $F;
 $ENV{'OPENSSL_CONF'}=abs_path('test.cnf');
        
 sub crypt_test {
@@ -67,7 +70,7 @@ sub crypt_test {
        my $ctext = `openssl enc ${eng_param} -e -$p{-alg} -K $p{-key} -iv $p{-iv} -in test$count.clear`;
        is($?,0,"$p{-name} - encrypt successful");
        is(unpack("H*",$ctext),$p{-ciphertext},"$p{-name} - ciphertext expected");
-       open my $f, ">", "test$count.enc";
+       open $f, ">", "test$count.enc";
        print $f $ctext;
        close $f;
        my $otext = `openssl enc ${eng_param} -d -$p{-alg} -K $p{-key} -iv $p{-iv} -in test$count.enc`;
@@ -79,8 +82,8 @@ sub crypt_test {
 }
 
 $key = '0123456789ABCDEF' x 4;
-$iv =  '0000000000000000';
-$clear1 = "The quick brown fox jumps over the lazy dog\n";
+my $iv =  '0000000000000000';
+my $clear1 = "The quick brown fox jumps over the lazy dog\n";
 
 crypt_test(-paramset=> "1.2.643.2.2.31.1", -key => $key, -iv => $iv,
                   -cleartext => $clear1,
index 84ae81e0b51c516a6f97fe55fc39252a006c004e..c202b2e8561e57e036aeccd92a8d004447d0c225 100644 (file)
@@ -1,12 +1,13 @@
 #!/usr/bin/perl
-use Test::More tests => 15;
+use Test2::V0;
+plan(15);
 use Cwd 'abs_path';
 
 #
 # If this variable is set, engine would be loaded via configuration
 # file. Otherwise - via command line
 # 
-$use_config = 1;
+my $use_config = 1;
 
 # prepare data for 
 
@@ -16,17 +17,19 @@ if(!defined $ENV{'OPENSSL_ENGINES'}){
         $ENV{'OPENSSL_ENGINES'} = abs_path("../.libs");
 }
 
-$engine=$ENV{'ENGINE_NAME'}||"gost";
+my $engine=$ENV{'ENGINE_NAME'}||"gost";
 
 # Reopen STDERR to eliminate extra output
 open STDERR, ">>","tests.err";
 
+my $F;
+my $eng_param;
 
-open F,">","test.cnf";
+open $F,">","test.cnf";
 if (defined($use_config) && $use_config) {
        $eng_param = "";
-       open F,">","test.cnf";
-       print F <<EOCFG;
+       open $F,">","test.cnf";
+       print $F <<EOCFG;
 openssl_conf = openssl_def
 [openssl_def]
 engines = engines
@@ -39,11 +42,11 @@ EOCFG
 } else {
        $eng_param = "-engine $engine"
 }
-close F;
+close $F;
 $ENV{'OPENSSL_CONF'}=abs_path('test.cnf');
 
 
-@keys=(['gost2001','A',"-----BEGIN PRIVATE KEY-----
+my @keys=(['gost2001','A',"-----BEGIN PRIVATE KEY-----
 MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgIgRhUDJ1WQASIf
 nx+aUM2eagzV9dCt6mQ5wdtenr2ZS/Y=
 -----END PRIVATE KEY-----
@@ -119,20 +122,20 @@ ENjS+gA=
 -----END PUBLIC KEY-----
 ']
 );
-for $keyinfo (@keys) {
+for my $keyinfo (@keys) {
        my ($alg,$paramset,$seckey,$sectext,$pubtext,$pubkey) = @$keyinfo;
-       open F,">",'tmp.pem';
-       print F $seckey;
-       close F;
+       open $F,">",'tmp.pem';
+       print $F $seckey;
+       close $F;
        #1.  Прочитать секретный ключ и напечатать публичный и секретный ключи
        is(`openssl pkey -noout -text -in tmp.pem`,$sectext . $pubtext,
                "Print key pair $alg:$paramset");
        #2. Прочитать секретный ключ и вывести публичный (все алгоритмы)
     is(`openssl pkey -pubout -in tmp.pem`,$pubkey,
                "Compute public key $alg:$paramset");
-       open F,">","tmp.pem";
-       print F $pubkey;
-       close F;
+       open $F,">","tmp.pem";
+       print $F $pubkey;
+       close $F;
        #3. Прочитать публичный и напечать его в виде текста
        is(`openssl pkey -pubin -noout -in tmp.pem -text`,$pubtext,
                "Read and print public key $alg:paramset");