summaryrefslogtreecommitdiffstats
path: root/private/ntos/rtl/trandom.c
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/rtl/trandom.c
downloadNT4.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.c86
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;
+
+}