* setkey-test.c, configure.in: add rules to test for correct
authorBarry Jaspan <bjaspan@mit.edu>
Mon, 5 May 1997 21:12:33 +0000 (21:12 +0000)
committerBarry Jaspan <bjaspan@mit.edu>
Mon, 5 May 1997 21:12:33 +0000 (21:12 +0000)
  random()-equivlant function

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10085 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/kadm5/unit-test/ChangeLog
src/lib/kadm5/unit-test/configure.in
src/lib/kadm5/unit-test/setkey-test.c

index 4401065c92cd3fc9aee581b74ffb415f4d3b4618..23c750015328167dfe88c3313083c15ad35a55c6 100644 (file)
@@ -1,3 +1,8 @@
+Mon May  5 17:11:44 1997  Barry Jaspan  <bjaspan@mit.edu>
+
+       * setkey-test.c, configure.in: add rules to test for correct
+       random()-equivlant function
+
 Mon Mar 31 17:39:52 1997  Barry Jaspan  <bjaspan@mit.edu>
 
        * Makefile.in, setkey-test.c: add support for setkey
index fb32f917e632f3884902724479fdb675531c01aa..d49a2bba7ebede488e29cb17cc4f49b02ed3b60b 100644 (file)
@@ -4,6 +4,7 @@ AC_CANONICAL_HOST
 dnl The following are tests for the presence of programs required for testing 
 AC_CHECK_PROG(RUNTEST,runtest,runtest)
 AC_CHECK_PROG(PERL,perl,perl)
+AC_CHECK_FUNCS(srand48 srand srandom)
 AC_KRB5_TCL    
 if test "$PERL" = perl -a "$RUNTEST" = runtest -a "$TCL_LIBS" != ""; then
        DO_TEST=ok
index e329fce25e912e844f8ee8ced7feb2de6be50b18..fed4e0e74e5adeafb66931b0379cea5c4b6e5dd6 100644 (file)
@@ -2,6 +2,22 @@
 #include <krb5.h>
 #include <kadm5/admin.h>
 
+#if    HAVE_SRAND48
+#define        RAND()          lrand48()
+#define        SRAND(a)        srand48(a)
+#define        RAND_TYPE       long
+#elif  HAVE_SRAND
+#define        RAND()          rand()
+#define        SRAND(a)        srand(a)
+#define        RAND_TYPE       int
+#elif  HAVE_SRANDOM
+#define        RAND()          random()
+#define        SRAND(a)        srandom(a)
+#define        RAND_TYPE       long
+#else  /* no random */
+need a random number generator
+#endif /* no random */
+
 krb5_keyblock test1[] = {
      0, ENCTYPE_DES_CBC_CRC, 0, 0,
      -1,
@@ -107,7 +123,7 @@ main(int argc, char **argv)
   }
 
   /* these pw's don't need to be secure, just different every time */
-  srandom(getpid() ^ time(0));
+  SRAND((RAND_TYPE)time((void *) NULL));
   pwdata.data = pw;
   pwdata.length = sizeof(pw);
   
@@ -127,7 +143,7 @@ main(int argc, char **argv)
 
        for (encnum = 0; testp[encnum].magic != -1; encnum++) {
            for (i = 0; i < sizeof(pw); i++)
-                pw[i] = (random() % 26) + '0'; /* XXX */
+                pw[i] = (RAND() % 26) + '0'; /* XXX */
 
            krb5_use_enctype(context, &eblock, testp[encnum].enctype);
            if (ret = krb5_string_to_key(context, &eblock, &testp[encnum],