diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/rtl/trandom.c | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/ntos/rtl/trandom.c')
-rw-r--r-- | private/ntos/rtl/trandom.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/private/ntos/rtl/trandom.c b/private/ntos/rtl/trandom.c new file mode 100644 index 000000000..23602375b --- /dev/null +++ b/private/ntos/rtl/trandom.c @@ -0,0 +1,86 @@ +/*++ + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + trandom.c + +Abstract: + + Test program for the random number generator + +Author: + + Gary Kimura [GaryKi] 26-May-1989 + +Revision History: + +--*/ + +#include <stdio.h> + +#include <nt.h> +#include <ntrtl.h> + +int +_CDECL +main( + int argc, + char *argv[] + ) +{ + ULONG Seed; + ULONG Temp; + ULONG i; + CHAR Str[64]; + + DbgPrint("Start IntegerToChar and CharToInteger Test\n"); + + Seed = 0x12345678; + RtlIntegerToChar(Seed, 2, sizeof(Str), Str); + DbgPrint("Seed = 0b%s\n", Str); + RtlCharToInteger(Str, 2, &Temp); + ASSERTMSG( "RtlCharToInteger(2)", (Seed == Temp) ); + + RtlIntegerToChar(Seed, 8, sizeof(Str), Str); + DbgPrint("Seed = 0o%s\n", Str); + RtlCharToInteger(Str, 8, &Temp); + ASSERTMSG( "RtlCharToInteger(8)", (Seed == Temp) ); + + RtlIntegerToChar(Seed, 10, sizeof(Str), Str); + DbgPrint("Seed = %s\n", Str); + RtlCharToInteger(Str, 10, &Temp); + ASSERTMSG( "RtlCharToInteger(10)", (Seed == Temp) ); + + RtlIntegerToChar(Seed, 16, -8, Str); + Str[ 8 ] = '\0'; + DbgPrint("Seed = 0x%s\n", Str); + RtlCharToInteger(Str, 16, &Temp); + ASSERTMSG( "RtlCharToInteger(16)", (Seed == Temp) ); + + DbgPrint("End IntegerToChar and CharToInteger Test\n"); + + DbgPrint("Start RandomTest()\n"); + + Seed = 0; + for (i=0; i<2048; i++) { + if ((i % 3) == 0) { + DbgPrint("\n"); + } + + RtlRandom(&Seed); + DbgPrint("%p ", Seed); + + RtlIntegerToChar(Seed, 16, sizeof(Str), Str); + DbgPrint("= %s ", Str); + + } + + DbgPrint("\n"); + + DbgPrint("End RandomTest()\n"); + + return TRUE; + +} |