Workaround for broken (or missing) bc.

This commit is contained in:
Bodo Möller 2000-12-06 09:48:57 +00:00
parent a6576c56dd
commit f67868ff4c
2 changed files with 29 additions and 2 deletions

View File

@ -195,8 +195,12 @@ test_bn:
@echo starting big number library test, could take a while... @echo starting big number library test, could take a while...
@./$(BNTEST) >tmp.bntest @./$(BNTEST) >tmp.bntest
@echo quit >>tmp.bntest @echo quit >>tmp.bntest
@echo "running bc" @if sh ./bctest; then \
@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"' 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' @echo 'test a^b%c implementations'
./$(EXPTEST) ./$(EXPTEST)

23
test/bctest Executable file
View File

@ -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