[KMTESTS/EX]
authorThomas Faber <thomas.faber@reactos.org>
Thu, 15 Mar 2012 11:46:30 +0000 (11:46 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Thu, 15 Mar 2012 11:46:30 +0000 (11:46 +0000)
- Work around compiler-specific false positives in ExInterlocked
- Disable broken ExPools tests

svn path=/trunk/; revision=56154

rostests/kmtests/ntos_ex/ExInterlocked.c
rostests/kmtests/ntos_ex/ExPools.c

index 6131f03..4697fbe 100644 (file)
@@ -63,7 +63,8 @@ typedef int PROCESSOR_STATE;
 
 #define CheckState(OldState, NewState) do                                   \
 {                                                                           \
-    ok_eq_hex((OldState)->esi, (NewState)->esi);                            \
+    /* TODO: MSVC uses esi and saves it before, so this is okay */          \
+    /*ok_eq_hex((OldState)->esi, (NewState)->esi);*/                        \
     ok_eq_hex((OldState)->edi, (NewState)->edi);                            \
     ok_eq_hex((OldState)->ebx, (NewState)->ebx);                            \
     ok_eq_hex((OldState)->ebp, (NewState)->ebp);                            \
@@ -87,7 +88,8 @@ typedef int PROCESSOR_STATE;
 {                                                                           \
     ok_eq_hex((OldState)->esi, (NewState)->esi);                            \
     ok_eq_hex((OldState)->edi, (NewState)->edi);                            \
-    ok_eq_hex((OldState)->ebx, (NewState)->ebx);                            \
+    /* TODO: GCC uses ebx and saves it before, so this is okay */           \
+    /*ok_eq_hex((OldState)->ebx, (NewState)->ebx);*/                        \
     ok_eq_hex((OldState)->ebp, (NewState)->ebp);                            \
     ok_eq_hex((OldState)->esp, (NewState)->esp);                            \
 } while (0)
index c635720..5ebf9ef 100644 (file)
@@ -5,8 +5,6 @@
  * PROGRAMMER:      Aleksey Bragin <aleksey@reactos.org>
  */
 
-/* TODO: PoolsCorruption tests fail because accessing invalid memory doesn't necessarily cause an access violation */
-
 #include <kmt_test.h>
 
 #define NDEBUG
@@ -112,6 +110,9 @@ static VOID PoolsCorruption(VOID)
     // touch all bytes, it shouldn't cause an exception
     RtlZeroMemory(Ptr, AllocSize);
 
+/* TODO: These fail because accessing invalid memory doesn't necessarily
+         cause an access violation */
+#ifdef THIS_DOESNT_WORK
     // test buffer overrun, right after our allocation ends
     _SEH2_TRY
     {
@@ -139,6 +140,7 @@ static VOID PoolsCorruption(VOID)
     } _SEH2_END;
 
     ok(Status == STATUS_ACCESS_VIOLATION, "Exception should occur, but got Status 0x%08lX\n", Status);
+#endif
 
     // free the pool
     ExFreePoolWithTag(Ptr, TAG_POOLTEST);