Make bntest be (mostly) file-based.
[openssl.git] / test / recipes / 10-test_bn.t
index 7e728f4e16847b4eb487ab937dadbb0b2880d68c..628512afd3f47fef215b1389631563ba238c3da7 100644 (file)
@@ -1,4 +1,11 @@
-#! /usr/bin/perl
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (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;
@@ -9,67 +16,7 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/;
 
 setup("test_bn");
 
-plan tests => 3;
-
-require_ok(srctop_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;
-        }
-        map { s/\R//; } @lines;        # 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);
-
-       if ($result ne "0" && $result ne "0x0") {
-           $failcount++;
-           print STDERR "Failed! $line => $result\n";
-       }
-    }
+plan tests => 1;
 
-    return $failcount == 0;
-}
+ok(run(test(["bntest", srctop_file("test", "bntests.txt")])),
+   "running bntest bntests.txt");