am cd195eba
: Merge "Upgrade to the current NetBSD rand implementation."
* commit 'cd195eba1f9235b9b9d4dda70142d927b1b9802d': Upgrade to the current NetBSD rand implementation.
This commit is contained in:
commit
b650111a11
@ -140,7 +140,6 @@ libc_common_src_files := \
|
|||||||
stdio/__sprintf_chk.c \
|
stdio/__sprintf_chk.c \
|
||||||
stdio/__vsnprintf_chk.c \
|
stdio/__vsnprintf_chk.c \
|
||||||
stdio/__vsprintf_chk.c \
|
stdio/__vsprintf_chk.c \
|
||||||
stdlib/_rand48.c \
|
|
||||||
stdlib/assert.c \
|
stdlib/assert.c \
|
||||||
stdlib/atexit.c \
|
stdlib/atexit.c \
|
||||||
stdlib/atoi.c \
|
stdlib/atoi.c \
|
||||||
@ -151,19 +150,14 @@ libc_common_src_files := \
|
|||||||
stdlib/div.c \
|
stdlib/div.c \
|
||||||
stdlib/exit.c \
|
stdlib/exit.c \
|
||||||
stdlib/getenv.c \
|
stdlib/getenv.c \
|
||||||
stdlib/jrand48.c \
|
|
||||||
stdlib/ldiv.c \
|
stdlib/ldiv.c \
|
||||||
stdlib/lldiv.c \
|
stdlib/lldiv.c \
|
||||||
stdlib/locale.c \
|
stdlib/locale.c \
|
||||||
stdlib/lrand48.c \
|
|
||||||
stdlib/mrand48.c \
|
|
||||||
stdlib/nrand48.c \
|
|
||||||
stdlib/putenv.c \
|
stdlib/putenv.c \
|
||||||
stdlib/qsort.c \
|
stdlib/qsort.c \
|
||||||
stdlib/seed48.c \
|
stdlib/seed48.c \
|
||||||
stdlib/setenv.c \
|
stdlib/setenv.c \
|
||||||
stdlib/setjmperr.c \
|
stdlib/setjmperr.c \
|
||||||
stdlib/srand48.c \
|
|
||||||
stdlib/strntoimax.c \
|
stdlib/strntoimax.c \
|
||||||
stdlib/strntoumax.c \
|
stdlib/strntoumax.c \
|
||||||
stdlib/strtod.c \
|
stdlib/strtod.c \
|
||||||
@ -265,8 +259,6 @@ libc_common_src_files := \
|
|||||||
bionic/clearenv.c \
|
bionic/clearenv.c \
|
||||||
bionic/dirname.c \
|
bionic/dirname.c \
|
||||||
bionic/dirname_r.c \
|
bionic/dirname_r.c \
|
||||||
bionic/drand48.c \
|
|
||||||
bionic/erand48.c \
|
|
||||||
bionic/err.c \
|
bionic/err.c \
|
||||||
bionic/fdprintf.c \
|
bionic/fdprintf.c \
|
||||||
bionic/fork.c \
|
bionic/fork.c \
|
||||||
@ -342,6 +334,14 @@ libc_upstream_netbsd_src_files := \
|
|||||||
upstream-netbsd/libc/regex/regfree.c \
|
upstream-netbsd/libc/regex/regfree.c \
|
||||||
upstream-netbsd/libc/stdio/getdelim.c \
|
upstream-netbsd/libc/stdio/getdelim.c \
|
||||||
upstream-netbsd/libc/stdio/getline.c \
|
upstream-netbsd/libc/stdio/getline.c \
|
||||||
|
upstream-netbsd/libc/stdlib/drand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/erand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/jrand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/lrand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/mrand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/nrand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/_rand48.c \
|
||||||
|
upstream-netbsd/libc/stdlib/srand48.c \
|
||||||
upstream-netbsd/libc/stdlib/tdelete.c \
|
upstream-netbsd/libc/stdlib/tdelete.c \
|
||||||
upstream-netbsd/libc/stdlib/tfind.c \
|
upstream-netbsd/libc/stdlib/tfind.c \
|
||||||
upstream-netbsd/libc/stdlib/tsearch.c \
|
upstream-netbsd/libc/stdlib/tsearch.c \
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* $NetBSD: rand48.h,v 1.6 2011/05/18 19:36:36 dsl Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -9,17 +11,17 @@
|
|||||||
* This software is provided ``as is'', and comes with no warranties
|
* This software is provided ``as is'', and comes with no warranties
|
||||||
* of any kind. I shall in no event be liable for anything that happens
|
* of any kind. I shall in no event be liable for anything that happens
|
||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*
|
|
||||||
* $OpenBSD: rand48.h,v 1.3 2002/02/16 21:27:24 millert Exp $
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _RAND48_H_
|
#ifndef _RAND48_H_
|
||||||
#define _RAND48_H_
|
#define _RAND48_H_
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
void __dorand48(unsigned short[3]);
|
extern void __dorand48(unsigned short[3]);
|
||||||
|
extern unsigned short __rand48_seed[3];
|
||||||
|
extern unsigned short __rand48_mult[3];
|
||||||
|
extern unsigned short __rand48_add;
|
||||||
|
|
||||||
#define RAND48_SEED_0 (0x330e)
|
#define RAND48_SEED_0 (0x330e)
|
||||||
#define RAND48_SEED_1 (0xabcd)
|
#define RAND48_SEED_1 (0xabcd)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* $OpenBSD: _rand48.c,v 1.3 2005/08/08 08:05:36 espie Exp $ */
|
/* $NetBSD: _rand48.c,v 1.7 2005/06/12 05:21:27 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,6 +13,13 @@
|
|||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: _rand48.c,v 1.7 2005/06/12 05:21:27 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
unsigned short __rand48_seed[3] = {
|
unsigned short __rand48_seed[3] = {
|
||||||
@ -32,6 +40,8 @@ __dorand48(unsigned short xseed[3])
|
|||||||
unsigned long accu;
|
unsigned long accu;
|
||||||
unsigned short temp[2];
|
unsigned short temp[2];
|
||||||
|
|
||||||
|
_DIAGASSERT(xseed != NULL);
|
||||||
|
|
||||||
accu = (unsigned long) __rand48_mult[0] * (unsigned long) xseed[0] +
|
accu = (unsigned long) __rand48_mult[0] * (unsigned long) xseed[0] +
|
||||||
(unsigned long) __rand48_add;
|
(unsigned long) __rand48_add;
|
||||||
temp[0] = (unsigned short) accu; /* lower 16 bits */
|
temp[0] = (unsigned short) accu; /* lower 16 bits */
|
@ -1,3 +1,5 @@
|
|||||||
|
/* $NetBSD: drand48.c,v 1.6 2005/06/12 05:21:28 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,10 +14,16 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: drand48.c,v 1.6 2005/06/12 05:21:28 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
extern unsigned short __rand48_seed[3];
|
#ifdef __weak_alias
|
||||||
|
__weak_alias(drand48,_drand48)
|
||||||
|
#endif
|
||||||
|
|
||||||
double
|
double
|
||||||
drand48(void)
|
drand48(void)
|
@ -1,3 +1,5 @@
|
|||||||
|
/* $NetBSD: erand48.c,v 1.9 2006/03/22 20:52:16 drochner Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,12 +14,27 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: erand48.c,v 1.9 2006/03/22 20:52:16 drochner Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
|
#ifdef __weak_alias
|
||||||
|
__weak_alias(erand48,_erand48)
|
||||||
|
#endif
|
||||||
|
|
||||||
double
|
double
|
||||||
erand48(unsigned short xseed[3])
|
erand48(unsigned short xseed[3])
|
||||||
{
|
{
|
||||||
|
|
||||||
|
_DIAGASSERT(xseed != NULL);
|
||||||
|
|
||||||
__dorand48(xseed);
|
__dorand48(xseed);
|
||||||
return ldexp((double) xseed[0], -48) +
|
return ldexp((double) xseed[0], -48) +
|
||||||
ldexp((double) xseed[1], -32) +
|
ldexp((double) xseed[1], -32) +
|
@ -1,4 +1,5 @@
|
|||||||
/* $OpenBSD: jrand48.c,v 1.3 2005/08/08 08:05:36 espie Exp $ */
|
/* $NetBSD: jrand48.c,v 1.8 2005/06/12 05:21:28 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,11 +13,27 @@
|
|||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: jrand48.c,v 1.8 2005/06/12 05:21:28 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
|
#ifdef __weak_alias
|
||||||
|
__weak_alias(jrand48,_jrand48)
|
||||||
|
#endif
|
||||||
|
|
||||||
long
|
long
|
||||||
jrand48(unsigned short xseed[3])
|
jrand48(unsigned short xseed[3])
|
||||||
{
|
{
|
||||||
|
|
||||||
|
_DIAGASSERT(xseed != NULL);
|
||||||
|
|
||||||
__dorand48(xseed);
|
__dorand48(xseed);
|
||||||
return ((long) xseed[2] << 16) + (long) xseed[1];
|
return ((long) xseed[2] << 16) + (long) xseed[1];
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
/* $OpenBSD: lrand48.c,v 1.3 2005/08/08 08:05:36 espie Exp $ */
|
/* $NetBSD: lrand48.c,v 1.8 2005/06/12 05:21:28 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,13 +13,22 @@
|
|||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: lrand48.c,v 1.8 2005/06/12 05:21:28 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
extern unsigned short __rand48_seed[3];
|
#ifdef __weak_alias
|
||||||
|
__weak_alias(lrand48,_lrand48)
|
||||||
|
#endif
|
||||||
|
|
||||||
long
|
long
|
||||||
lrand48(void)
|
lrand48(void)
|
||||||
{
|
{
|
||||||
__dorand48(__rand48_seed);
|
__dorand48(__rand48_seed);
|
||||||
return ((long) __rand48_seed[2] << 15) + ((long) __rand48_seed[1] >> 1);
|
return (long)((unsigned long) __rand48_seed[2] << 15) +
|
||||||
|
((unsigned long) __rand48_seed[1] >> 1);
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
/* $OpenBSD: mrand48.c,v 1.3 2005/08/08 08:05:37 espie Exp $ */
|
/* $NetBSD: mrand48.c,v 1.7 2005/06/12 05:21:28 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,9 +13,17 @@
|
|||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: mrand48.c,v 1.7 2005/06/12 05:21:28 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
extern unsigned short __rand48_seed[3];
|
#ifdef __weak_alias
|
||||||
|
__weak_alias(mrand48,_mrand48)
|
||||||
|
#endif
|
||||||
|
|
||||||
long
|
long
|
||||||
mrand48(void)
|
mrand48(void)
|
@ -1,4 +1,5 @@
|
|||||||
/* $OpenBSD: nrand48.c,v 1.3 2005/08/08 08:05:37 espie Exp $ */
|
/* $NetBSD: nrand48.c,v 1.9 2005/06/12 05:21:28 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,11 +13,27 @@
|
|||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: nrand48.c,v 1.9 2005/06/12 05:21:28 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
|
#ifdef __weak_alias
|
||||||
|
__weak_alias(nrand48,_nrand48)
|
||||||
|
#endif
|
||||||
|
|
||||||
long
|
long
|
||||||
nrand48(unsigned short xseed[3])
|
nrand48(unsigned short xseed[3])
|
||||||
{
|
{
|
||||||
|
_DIAGASSERT(xseed != NULL);
|
||||||
|
|
||||||
__dorand48(xseed);
|
__dorand48(xseed);
|
||||||
return ((long) xseed[2] << 15) + ((long) xseed[1] >> 1);
|
return (long)((unsigned long) xseed[2] << 15) +
|
||||||
|
((unsigned long) xseed[1] >> 1);
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
/* $OpenBSD: srand48.c,v 1.3 2005/08/08 08:05:37 espie Exp $ */
|
/* $NetBSD: srand48.c,v 1.7 2005/06/12 05:21:28 lukem Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1993 Martin Birgmeier
|
* Copyright (c) 1993 Martin Birgmeier
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -12,18 +13,24 @@
|
|||||||
* to anyone/anything when using this software.
|
* to anyone/anything when using this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
|
__RCSID("$NetBSD: srand48.c,v 1.7 2005/06/12 05:21:28 lukem Exp $");
|
||||||
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
|
#include "namespace.h"
|
||||||
#include "rand48.h"
|
#include "rand48.h"
|
||||||
|
|
||||||
extern unsigned short __rand48_seed[3];
|
#ifdef __weak_alias
|
||||||
extern unsigned short __rand48_mult[3];
|
__weak_alias(srand48,_srand48)
|
||||||
extern unsigned short __rand48_add;
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
srand48(long seed)
|
srand48(long seed)
|
||||||
{
|
{
|
||||||
__rand48_seed[0] = RAND48_SEED_0;
|
__rand48_seed[0] = RAND48_SEED_0;
|
||||||
__rand48_seed[1] = (unsigned short) seed;
|
__rand48_seed[1] = (unsigned short) seed;
|
||||||
__rand48_seed[2] = (unsigned short) (seed >> 16);
|
__rand48_seed[2] = (unsigned short) ((unsigned long)seed >> 16);
|
||||||
__rand48_mult[0] = RAND48_MULT_0;
|
__rand48_mult[0] = RAND48_MULT_0;
|
||||||
__rand48_mult[1] = RAND48_MULT_1;
|
__rand48_mult[1] = RAND48_MULT_1;
|
||||||
__rand48_mult[2] = RAND48_MULT_2;
|
__rand48_mult[2] = RAND48_MULT_2;
|
@ -23,6 +23,7 @@ test_src_files = \
|
|||||||
pthread_test.cpp \
|
pthread_test.cpp \
|
||||||
regex_test.cpp \
|
regex_test.cpp \
|
||||||
stdio_test.cpp \
|
stdio_test.cpp \
|
||||||
|
stdlib_test.cpp \
|
||||||
string_test.cpp \
|
string_test.cpp \
|
||||||
stubs_test.cpp \
|
stubs_test.cpp \
|
||||||
|
|
||||||
|
59
tests/stdlib_test.cpp
Normal file
59
tests/stdlib_test.cpp
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2012 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
TEST(stdlib, drand48) {
|
||||||
|
srand48(0x01020304);
|
||||||
|
EXPECT_DOUBLE_EQ(0.65619299195623526, drand48());
|
||||||
|
EXPECT_DOUBLE_EQ(0.18522597229772941, drand48());
|
||||||
|
EXPECT_DOUBLE_EQ(0.42015087072844537, drand48());
|
||||||
|
EXPECT_DOUBLE_EQ(0.061637783047395089, drand48());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(stdlib, lrand48_random_rand) {
|
||||||
|
srand48(0x01020304);
|
||||||
|
EXPECT_EQ(1409163720, lrand48());
|
||||||
|
EXPECT_EQ(397769746, lrand48());
|
||||||
|
EXPECT_EQ(902267124, lrand48());
|
||||||
|
EXPECT_EQ(132366131, lrand48());
|
||||||
|
|
||||||
|
#if __BIONIC__
|
||||||
|
// On bionic, random(3) is equivalent to lrand48...
|
||||||
|
srandom(0x01020304);
|
||||||
|
EXPECT_EQ(1409163720, random());
|
||||||
|
EXPECT_EQ(397769746, random());
|
||||||
|
EXPECT_EQ(902267124, random());
|
||||||
|
EXPECT_EQ(132366131, random());
|
||||||
|
|
||||||
|
// ...and rand(3) is the bottom 32 bits.
|
||||||
|
srand(0x01020304);
|
||||||
|
EXPECT_EQ(static_cast<int>(1409163720), rand());
|
||||||
|
EXPECT_EQ(static_cast<int>(397769746), rand());
|
||||||
|
EXPECT_EQ(static_cast<int>(902267124), rand());
|
||||||
|
EXPECT_EQ(static_cast<int>(132366131), rand());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(stdlib, mrand48) {
|
||||||
|
srand48(0x01020304);
|
||||||
|
EXPECT_EQ(-1476639856, mrand48());
|
||||||
|
EXPECT_EQ(795539493, mrand48());
|
||||||
|
EXPECT_EQ(1804534249, mrand48());
|
||||||
|
EXPECT_EQ(264732262, mrand48());
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user