Workaround for broken (or missing) bc.
authorBodo Möller <bodo@openssl.org>
Wed, 6 Dec 2000 09:48:57 +0000 (09:48 +0000)
committerBodo Möller <bodo@openssl.org>
Wed, 6 Dec 2000 09:48:57 +0000 (09:48 +0000)
test/Makefile.ssl
test/bctest [new file with mode: 0755]

index 1a4ccb5f8bf51887d802f50de7592dbb2cf424d5..867789847ca01f82ec3a7c59f848c32717a15bf4 100644 (file)
@@ -195,8 +195,12 @@ test_bn:
        @echo starting big number library test, could take a while...
        @./$(BNTEST) >tmp.bntest
        @echo quit >>tmp.bntest
        @echo starting big number library test, could take a while...
        @./$(BNTEST) >tmp.bntest
        @echo quit >>tmp.bntest
-       @echo "running bc"
-       @bc tmp.bntest 2>&1 | $(PERL) -e 'while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} print STDERR "."; $$i++;} print STDERR "\n$$i tests passed\n"'
+       @if sh ./bctest; then \
+           echo "running bc"; \
+           bc tmp.bntest 2>&1 | $(PERL) -e 'while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} print STDERR "."; $$i++;} print STDERR "\n$$i tests passed\n"'; \
+       else \
+           echo "skipping bc-based verification"; \
+       fi
        @echo 'test a^b%c implementations'
        ./$(EXPTEST)
 
        @echo 'test a^b%c implementations'
        ./$(EXPTEST)
 
diff --git a/test/bctest b/test/bctest
new file mode 100755 (executable)
index 0000000..2365152
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+if [ 0 != "`bc <<\EOF
+obase=16
+ibase=16
+a=AD88C418F31B3FC712D0425001D522B3AE9134FF3A98C13C1FCC1682211195406C1A6C66C6A\
+CEEC1A0EC16950233F77F1C2F2363D56DD71A36C57E0B2511FC4BA8F22D261FE2E9356D99AF57\
+10F3817C0E05BF79C423C3F66FDF321BE8D3F18F625D91B670931C1EF25F28E489BDA1C5422D1\
+C3F6F7A1AD21585746ECC4F10A14A778AF56F08898E965E9909E965E0CB6F85B514150C644759\
+3BE731877B16EA07B552088FF2EA728AC5E0FF3A23EB939304519AB8B60F2C33D6BA0945B66F0\
+4FC3CADF855448B24A9D7640BCF473E
+b=DCE91E7D120B983EA9A104B5A96D634DD644C37657B1C7860B45E6838999B3DCE5A555583C6\
+9209E41F413422954175A06E67FFEF6746DD652F0F48AEFECC3D8CAC13523BDAAD3F5AF4212BD\
+8B3CD64126E1A82E190228020C05B91C8B141F1110086FC2A4C6ED631EBA129D04BB9A19FC53D\
+3ED0E2017D60A68775B75481449
+(a/b)*b + (a%b) - a
+EOF`" ]
+then
+  echo "bc does not work.  Consider installing GNU bc." >&2
+  exit 1
+else
+  exit 0
+fi