1 /* Test initstate saving the old state. 2 Copyright (C) 2005-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #include <stdio.h> 20 #include <stdlib.h> 21 22 static int do_test(void)23do_test (void) 24 { 25 int pass; 26 int ret = 0; 27 long int r[2]; 28 29 for (pass = 0; pass < 2; pass++) 30 { 31 srandom (0x12344321); 32 33 int j; 34 for (j = 0; j < 3; ++j) 35 random (); 36 if (pass == 1) 37 { 38 char state[128]; 39 char *ostate = initstate (0x34562101, state, 128); 40 if (setstate (ostate) != state) 41 { 42 puts ("setstate (ostate) != state"); 43 ret = 1; 44 } 45 } 46 47 random (); 48 r[pass] = random (); 49 } 50 51 if (r[0] != r[1]) 52 { 53 printf ("%ld != %ld\n", r[0], r[1]); 54 ret = 1; 55 } 56 return ret; 57 } 58 59 #define TEST_FUNCTION do_test () 60 #include "../test-skeleton.c" 61