diff options
Diffstat (limited to 'security/nss/lib/freebl/mpi/multest')
-rwxr-xr-x | security/nss/lib/freebl/mpi/multest | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/security/nss/lib/freebl/mpi/multest b/security/nss/lib/freebl/mpi/multest new file mode 100755 index 000000000..08fec8388 --- /dev/null +++ b/security/nss/lib/freebl/mpi/multest @@ -0,0 +1,107 @@ +#!/bin/sh +# +# multest +# +# Run multiply and square timing tests, to compute a chart for the +# current processor and compiler combination. +# +## The contents of this file are subject to the Mozilla Public +## License Version 1.1 (the "License"); you may not use this file +## except in compliance with the License. You may obtain a copy of +## the License at http://www.mozilla.org/MPL/ +## +## Software distributed under the License is distributed on an "AS +## IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +## implied. See the License for the specific language governing +## rights and limitations under the License. +## +## The Original Code is the MPI Arbitrary Precision Integer Arithmetic +## library. +## +## The Initial Developer of the Original Code is +## Michael J. Fromberger <sting@linguist.dartmouth.edu> +## +## Portions created by Michael J. Fromberger are +## Copyright (C) 2000 Michael J. Fromberger. All Rights Reserved +## +## Contributor(s): +## +## Alternatively, the contents of this file may be used under the +## terms of the GNU General Public License Version 2 or later (the +## "GPL"), in which case the provisions of the GPL are applicable +## instead of those above. If you wish to allow use of your +## version of this file only under the terms of the GPL and not to +## allow others to use your version of this file under the MPL, +## indicate your decision by deleting the provisions above and +## replace them with the notice and other provisions required by +## the GPL. If you do not delete the provisions above, a recipient +## may use your version of this file under either the MPL or the GPL. +## +# $Id$ +# + +ECHO=/bin/echo +MAKE=gmake + +$ECHO "\n** Running multiply and square timing tests\n" + +$ECHO "Bringing 'mulsqr' up to date ... " +if $MAKE mulsqr ; then + : +else + $ECHO "\nMake failed to build mulsqr.\n" + exit 1 +fi + +if [ ! -x ./mulsqr ] ; then + $ECHO "\nCannot find 'mulsqr' program, testing cannot continue.\n" + exit 1 +fi + +sizes='64 128 192 256 320 384 448 512 640 768 896 1024 1536 2048' +ntests=500000 + +$ECHO "Running timing tests, please wait ... " + +trap 'echo "oop!";rm -f tt*.tmp;exit 0' INT HUP + +touch tt$$.tmp +$ECHO $ntests tests >> tt$$.tmp +for size in $sizes ; do + $ECHO "$size bits ... \c" + set -A res `./mulsqr $ntests $size|head -3|tr -d '%'|awk '{print $2}'` + $ECHO $size"\t"${res[0]}"\t"${res[1]}"\t"${res[2]} >> tt$$.tmp + $ECHO "(done)" +done +mv tt$$.tmp mulsqr-results.txt +rm -f tt$$.tmp + +$ECHO "\n** Running Karatsuba-Ofman multiplication tests\n" + +$ECHO "Brining 'karatsuba' up to date ... " +if $MAKE karatsuba ; then + : +else + $ECHO "\nMake failed to build karatsuba.\n" + exit 1 +fi + +if [ ! -x ./karatsuba ] ; then + $ECHO "\nCannot find 'karatsuba' program, testing cannot continue.\n" + exit 1 +fi + +ntests=100000 + +trap 'echo "oop!";rm -f tt*.tmp;exit 0' INT HUP + +touch tt$$.tmp +for size in $sizes ; do + $ECHO "$size bits ... " + ./karatsuba $ntests $size >> tt$$.tmp + tail -2 tt$$.tmp +done +mv tt$$.tmp karatsuba-results.txt +rm -f tt$$.tmp + +exit 0 |