1*10465441SEvalZero /* 2*10465441SEvalZero * rand.c 3*10465441SEvalZero * 4*10465441SEvalZero * Created on: 2010-11-17 5*10465441SEvalZero * Author: bernard 6*10465441SEvalZero */ 7*10465441SEvalZero #include <stdio.h> 8*10465441SEvalZero #include <stdlib.h> 9*10465441SEvalZero #include <finsh.h> 10*10465441SEvalZero libc_rand(void)11*10465441SEvalZeroint libc_rand(void) 12*10465441SEvalZero { 13*10465441SEvalZero int i1, i2; 14*10465441SEvalZero int j1, j2; 15*10465441SEvalZero 16*10465441SEvalZero /* The C standard says that "If rand is called before any calls to 17*10465441SEvalZero srand have been made, the same sequence shall be generated as 18*10465441SEvalZero when srand is first called with a seed value of 1." */ 19*10465441SEvalZero i1 = rand(); 20*10465441SEvalZero i2 = rand(); 21*10465441SEvalZero srand(1); 22*10465441SEvalZero j1 = rand(); 23*10465441SEvalZero j2 = rand(); 24*10465441SEvalZero if (i1 < 0 || i2 < 0 || j1 < 0 || j2 < 0) 25*10465441SEvalZero { 26*10465441SEvalZero puts("Test FAILED!"); 27*10465441SEvalZero } 28*10465441SEvalZero if (j1 == i1 && j2 == i2) 29*10465441SEvalZero { 30*10465441SEvalZero puts("Test succeeded."); 31*10465441SEvalZero return 0; 32*10465441SEvalZero } 33*10465441SEvalZero else 34*10465441SEvalZero { 35*10465441SEvalZero if (j1 != i1) 36*10465441SEvalZero printf("%d != %d\n", j1, i1); 37*10465441SEvalZero if (j2 != i2) 38*10465441SEvalZero printf("%d != %d\n", j2, i2); 39*10465441SEvalZero puts("Test FAILED!"); 40*10465441SEvalZero return 1; 41*10465441SEvalZero } 42*10465441SEvalZero } 43*10465441SEvalZero FINSH_FUNCTION_EXPORT(libc_rand, rand test for libc); 44