-#! /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;
use Math::BigInt;
-use OpenSSL::Test qw/:DEFAULT top_file/;
+use OpenSSL::Test qw/:DEFAULT srctop_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;
- }
- 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");