From da3e12b4502931b11e8bb5e97392717b8e490af3 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 25 Aug 2010 10:15:34 +0000 Subject: [PATCH] delete old Zwcontinue test svn path=/trunk/; revision=48622 --- rostests/tests/directory.rbuild | 1 - rostests/tests/zwcontinue/i386/zwcontinue.asm | 48 ----- rostests/tests/zwcontinue/zwcontinue.c | 185 ------------------ rostests/tests/zwcontinue/zwcontinue.rbuild | 4 - 4 files changed, 238 deletions(-) delete mode 100644 rostests/tests/zwcontinue/i386/zwcontinue.asm delete mode 100644 rostests/tests/zwcontinue/zwcontinue.c delete mode 100644 rostests/tests/zwcontinue/zwcontinue.rbuild diff --git a/rostests/tests/directory.rbuild b/rostests/tests/directory.rbuild index 1659a6cafeb..d3b7849f510 100644 --- a/rostests/tests/directory.rbuild +++ b/rostests/tests/directory.rbuild @@ -268,5 +268,4 @@ - diff --git a/rostests/tests/zwcontinue/i386/zwcontinue.asm b/rostests/tests/zwcontinue/i386/zwcontinue.asm deleted file mode 100644 index 829fd24285b..00000000000 --- a/rostests/tests/zwcontinue/i386/zwcontinue.asm +++ /dev/null @@ -1,48 +0,0 @@ -; cpu 486 -segment .text use32 - -extern _check - -global _continuePoint -_continuePoint: - push ss - push dword 0 - pushfd - push cs - push dword _continuePoint - push ebp - - push eax - push ecx - push edx - push ebx - push esi - push edi - - push ds - push es - push fs - push gs - - ; TODO: floating point state - sub esp, 70h - - ; Debug registers - sub esp, 18h - - push dword 00010007h - - ; Fill the Esp field - lea eax, [esp+0CCh] - lea ecx, [esp+0C4h] - mov [ecx], eax - - ; Call the function that will compare the current context with the expected one - cld - push esp - call _check - - ; check() must not return - int 3 - -; EOF diff --git a/rostests/tests/zwcontinue/zwcontinue.c b/rostests/tests/zwcontinue/zwcontinue.c deleted file mode 100644 index 0b1aebaae4b..00000000000 --- a/rostests/tests/zwcontinue/zwcontinue.c +++ /dev/null @@ -1,185 +0,0 @@ -#define WIN32_LEAN_AND_MEAN -#define STRICT -#include - -#include -#include -#include -#include -#include -#include -#include - -static unsigned int nRandBytes; - -static int initrand(void) -{ - unsigned int nRandMax; - unsigned int nRandMaxBits; - time_t tLoc; - - nRandMax = RAND_MAX; - - for(nRandMaxBits = 0; nRandMax != 0; nRandMax >>= 1, ++ nRandMaxBits); - - nRandBytes = nRandMaxBits / CHAR_BIT; - - assert(nRandBytes != 0); - - srand((unsigned)(time(&tLoc) & UINT_MAX)); - - return 1; -} - -static void randbytes(void * p, size_t n) -{ - unsigned char * b; - size_t i; - int r = rand(); - - b = (unsigned char *)p; - - for(i = 0; i < n; ++ i) - { - if(i % nRandBytes == 0) - r = rand(); - - b[i] = (unsigned char)(r & UCHAR_MAX); - r >>= CHAR_BIT; - } -} - -static ULONG randULONG(void) -{ - ULONG n; - randbytes(&n, sizeof(n)); - return n; -} - -#ifdef _M_IX86 -#define ZWC_SEGMENT_BITS (0xFFFF) -#define ZWC_EFLAGS_BITS (0x3C0CD5) -#endif - -static jmp_buf jmpbuf; -static CONTEXT continueContext; - -extern void continuePoint(void); -extern void check(CONTEXT *); -extern LONG NTAPI ZwContinue(IN CONTEXT *, IN BOOLEAN); - -void check(CONTEXT * actualContext) -{ -#ifdef _M_IX86 - assert(actualContext->ContextFlags == CONTEXT_FULL); - - /* Random data segments */ - assert - ( - (actualContext->SegGs & ZWC_SEGMENT_BITS) == - (continueContext.SegGs & ZWC_SEGMENT_BITS) - ); - - assert - ( - (actualContext->SegFs & ZWC_SEGMENT_BITS) == - (continueContext.SegFs & ZWC_SEGMENT_BITS) - ); - - assert - ( - (actualContext->SegEs & ZWC_SEGMENT_BITS) == - (continueContext.SegEs & ZWC_SEGMENT_BITS) - ); - - assert - ( - (actualContext->SegDs & ZWC_SEGMENT_BITS) == - (continueContext.SegDs & ZWC_SEGMENT_BITS) - ); - - /* Integer registers */ - assert(actualContext->Edi == continueContext.Edi); - assert(actualContext->Esi == continueContext.Esi); - assert(actualContext->Ebx == continueContext.Ebx); - printf("%s %lX : %lX\n", "Edx", actualContext->Edx, continueContext.Edx); - //assert(actualContext->Edx == continueContext.Edx); - assert(actualContext->Ecx == continueContext.Ecx); - assert(actualContext->Eax == continueContext.Eax); - - /* Control registers and segments */ - assert(actualContext->Ebp == continueContext.Ebp); - assert(actualContext->Eip == continueContext.Eip); - - assert - ( - (actualContext->SegCs & ZWC_SEGMENT_BITS) == - (continueContext.SegCs & ZWC_SEGMENT_BITS) - ); - - assert - ( - (actualContext->EFlags & ZWC_EFLAGS_BITS) == - (continueContext.EFlags & ZWC_EFLAGS_BITS) - ); - - assert(actualContext->Esp == continueContext.Esp); - - assert - ( - (actualContext->SegSs & ZWC_SEGMENT_BITS) == - (continueContext.SegSs & ZWC_SEGMENT_BITS) - ); -#endif - - longjmp(jmpbuf, 1); -} - -int main(void) -{ - initrand(); - - /* First time */ - if(setjmp(jmpbuf) == 0) - { - CONTEXT bogus; - - continueContext.ContextFlags = CONTEXT_FULL; - GetThreadContext(GetCurrentThread(), &continueContext); - -#ifdef _M_IX86 - continueContext.ContextFlags = CONTEXT_FULL; - - /* Fill the integer registers with random values */ - continueContext.Edi = randULONG(); - continueContext.Esi = randULONG(); - continueContext.Ebx = randULONG(); - continueContext.Edx = randULONG(); - continueContext.Ecx = randULONG(); - continueContext.Eax = randULONG(); - continueContext.Ebp = randULONG(); - - /* Randomize all the allowed flags (determined experimentally with WinDbg) */ - continueContext.EFlags = randULONG() & 0x3C0CD5; - - /* Randomize the stack pointer as much as possible */ - continueContext.Esp = - (ULONG)(((ULONG_PTR)&bogus) & 0xFFFFFFFF) + - sizeof(bogus) - - (randULONG() & 0xF) * 4; - - /* continuePoint() is implemented in assembler */ - continueContext.Eip = (ULONG)((ULONG_PTR)continuePoint & 0xFFFFFFF); - - /* Can't do a lot about segments */ -#endif - - ZwContinue(&continueContext, FALSE); - } - /* Second time */ - else - return 0; - - assert(0); - return 1; -} diff --git a/rostests/tests/zwcontinue/zwcontinue.rbuild b/rostests/tests/zwcontinue/zwcontinue.rbuild deleted file mode 100644 index f4cba28443f..00000000000 --- a/rostests/tests/zwcontinue/zwcontinue.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - gdi32 - zwcontinue.c -