test/recipes/02-test_ordinals.t: Take '?' and '?+' into account
[openssl.git] / test / recipes / 10-test_bn.t
index 29b449fec94cc37777ea74d0bdfe93c51c099aee..bdccce14d31578338bc35ec3f0a1baf0bbf204e8 100644 (file)
@@ -1,75 +1,27 @@
-#! /usr/bin/perl
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
 
 use strict;
 use warnings;
 
 use Math::BigInt;
 
-use OpenSSL::Test qw/:DEFAULT top_file/;
+use OpenSSL::Test qw/:DEFAULT data_file/;
 
 setup("test_bn");
 
-plan tests => 3;
-
-require_ok(top_file("test","recipes","bc.pl"));
-
-my $testresults = "tmp.bntest";
-my $init = ok(run(test(["bntest"], stdout => $testresults)), 'initialize');
-
- SKIP: {
-     skip "Initializing failed, skipping", 1 if !$init;
-
-     subtest 'Checking the bn results' => sub {
-        my @lines = ();
-        if (open DATA, $testresults) {
-            @lines = <DATA>;
-            close DATA;
-        }
-        chomp(@lines);
-
-        plan tests => scalar grep(/^print /, @lines);
-
-        my $l = "";
-
-        while (scalar @lines) {
-            $l = shift @lines;
-
-            last if $l =~ /^print /;
-        }
-
-        while (1) {
-            $l =~ s/^print "//;
-            $l =~ s/\\n"//;
-            my $t = $l;
-            my @operations = ();
-
-            $l = undef;
-            while (scalar @lines) {
-                $l = shift @lines;
-
-                last if $l =~ /^print /;
-                push @operations, $l;
-                $l = undef;
-            }
-
-            ok(check_operations(@operations), "verify $t");
-
-            last unless $l;
-        }
-     };
-}
-
-sub check_operations {
-    my $failcount = 0;
-
-    foreach my $line (@_) {
-       my $result = calc(split /\s+/, $line);
+my @files = qw( bnexp.txt bnmod.txt bnmul.txt bnshift.txt bnsum.txt bngcd.txt );
 
-       if ($result ne "0" && $result ne "0x0") {
-           $failcount++;
-           print STDERR "Failed! $line => $result\n";
-       }
-    }
+plan tests => 1 + scalar(@files);
 
-    return $failcount == 0;
+foreach my $f ( @files ) {
+    ok(run(test(["bntest", data_file($f)])),
+        "running bntest $f");
 }
+ok(run(test(["bntest"])), "running bntest");