(root)/
glibc-2.38/
stdlib/
testrand.c
       1  /* Copyright (C) 1992-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #include <stdlib.h>
      19  #include <stdio.h>
      20  
      21  int
      22  main (void)
      23  {
      24    int i1, i2;
      25    int j1, j2;
      26  
      27    /* The C standard says that "If rand is called before any calls to
      28       srand have been made, the same sequence shall be generated as
      29       when srand is first called with a seed value of 1." */
      30    i1 = rand();
      31    i2 = rand();
      32    srand (1);
      33    j1 = rand();
      34    j2 = rand();
      35    if (i1 < 0 || i2 < 0 || j1 < 0 || j2 < 0) {
      36        puts ("Test FAILED!");
      37    }
      38    if (j1 == i1 && j2 == i2)
      39      {
      40        puts ("Test succeeded.");
      41        return 0;
      42      }
      43    else
      44      {
      45        if (j1 != i1)
      46  	printf ("%d != %d\n", j1, i1);
      47        if (j2 != i2)
      48  	printf ("%d != %d\n", j2, i2);
      49        puts ("Test FAILED!");
      50        return 1;
      51      }
      52  }