mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Use bc's "print" feature whenever it is available,
not just on certain platforms.
This commit is contained in:
parent
902d1051b1
commit
0a52d38b31
@ -109,11 +109,9 @@ static const char rnd_seed[] = "string to make the random number generator think
|
|||||||
static void message(BIO *out, char *m)
|
static void message(BIO *out, char *m)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "test %s\n", m);
|
fprintf(stderr, "test %s\n", m);
|
||||||
#if defined(linux) || defined(__FreeBSD__) /* can we use GNU bc features? */
|
|
||||||
BIO_puts(out, "print \"test ");
|
BIO_puts(out, "print \"test ");
|
||||||
BIO_puts(out, m);
|
BIO_puts(out, m);
|
||||||
BIO_puts(out, "\\n\"\n");
|
BIO_puts(out, "\\n\"\n");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@ -195,12 +195,8 @@ 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
|
||||||
@if sh ./bctest; then \
|
@echo "running bc"
|
||||||
echo "running bc"; \
|
@<tmp.bntest sh -c "`sh ./bctest`" 2>&1 | $(PERL) -e '$$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} print STDERR "."; $$i++;} print STDERR "\n$$i tests passed\n"'
|
||||||
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)
|
||||||
|
|
||||||
|
16
test/bctest
16
test/bctest
@ -4,6 +4,11 @@
|
|||||||
# is installed.
|
# is installed.
|
||||||
# ('make test_bn' should not try to run 'bc' if it does not exist or if
|
# ('make test_bn' should not try to run 'bc' if it does not exist or if
|
||||||
# it is the broken SunOS 5.[78] bc, which fails the following test.)
|
# it is the broken SunOS 5.[78] bc, which fails the following test.)
|
||||||
|
#
|
||||||
|
# If 'bc' works, we also test if it knows the 'print' command.
|
||||||
|
#
|
||||||
|
# In any case, output an appropriate command line for running (or not
|
||||||
|
# running) bc.
|
||||||
|
|
||||||
if [ 0 != "`bc <<\EOF
|
if [ 0 != "`bc <<\EOF
|
||||||
obase=16
|
obase=16
|
||||||
@ -22,7 +27,18 @@ b=DCE91E7D120B983EA9A104B5A96D634DD644C37657B1C7860B45E6838999B3DCE5A555583C6\
|
|||||||
EOF`" ]
|
EOF`" ]
|
||||||
then
|
then
|
||||||
echo "bc does not work. Consider installing GNU bc." >&2
|
echo "bc does not work. Consider installing GNU bc." >&2
|
||||||
|
echo "cat >/dev/null"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
|
# bc works, good.
|
||||||
|
# Now check if it knows the 'print' command.
|
||||||
|
if [ "OK" = "`bc 2>/dev/null <<\EOF
|
||||||
|
print \"OK\"
|
||||||
|
EOF`" ]
|
||||||
|
then
|
||||||
|
echo "bc"
|
||||||
|
else
|
||||||
|
echo "sed 's/print.*//' | bc"
|
||||||
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user