From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- private/ntos/rtl/alpha/tfilmem.c | 79 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 private/ntos/rtl/alpha/tfilmem.c (limited to 'private/ntos/rtl/alpha/tfilmem.c') diff --git a/private/ntos/rtl/alpha/tfilmem.c b/private/ntos/rtl/alpha/tfilmem.c new file mode 100644 index 000000000..0a347599c --- /dev/null +++ b/private/ntos/rtl/alpha/tfilmem.c @@ -0,0 +1,79 @@ +/*++ + +Copyright (c) 1993 Digital Equipment Corporation + +Module Name: + + tfilmem.c + +Abstract: + + This module implements a test of the operation of the RtlFillMemory + function by running an exhaustive test of every case of string offset + and length up to and a little beyond one 32-byte cache line. This + represents several thousand test cases. It is assumed any bugs that + exist will be found within this range. If only the error count summary + is desired, type "tfilmem > nul" instead. + +Author: + + Thomas Van Baak (tvb) 13-Jan-1993 + +Environment: + + User mode. + +Revision History: + +--*/ + +#include +#include +#include +#include "localrtl.h" + +#define BUFFER_SIZE (MAX_MARGIN + MAX_OFFSET + MAX_LENGTH + MAX_MARGIN) + +UCHAR Buffer1[BUFFER_SIZE]; +UCHAR Buffer2[BUFFER_SIZE]; + +void +_CRTAPI1 +main() +{ + ULONG ErrorCount; + ULONG Length; + ULONG Offset; + ULONG Result; + ULONG TestCases; + + fprintf(stderr, "Testing RtlFillMemory\n"); + ErrorCount = 0; + TestCases = 0; + + for (Offset = 0; Offset <= MAX_OFFSET; Offset += 1) { + for (Length = 0; Length <= MAX_LENGTH; Length += 1) { + + FillPattern(Buffer1, BUFFER_SIZE); + FillPattern(Buffer2, BUFFER_SIZE); + LocalFillMemory(&Buffer1[Offset], Length, '@'); + RtlFillMemory(&Buffer2[Offset], Length, '@'); + + Result = LocalCompareMemory(Buffer1, Buffer2, BUFFER_SIZE); + + TestCases += 1; + if (Result != BUFFER_SIZE) { + ErrorCount += 1; + + printf("ERROR: Offset = %d, Length = %d\n", Offset, Length); + printf("Buffers differ starting at byte %d:\n", Result); + printf("Buffer1 = <%*s>\n", BUFFER_SIZE, Buffer1); + printf("Buffer2 = <%*s>\n", BUFFER_SIZE, Buffer2); + printf("\n"); + } + } + } + + fprintf(stderr, "Test of RtlFillMemory completed: "); + fprintf(stderr, "%d test cases, %d errors found.\n", TestCases, ErrorCount); +} -- cgit v1.2.3