[USP10_WINETEST] Sync with Wine Staging 2.9. CORE-13362
[reactos.git] / rostests / kmtests / rtl / RtlMemory.c
index c058b20..644180b 100644 (file)
@@ -287,7 +287,19 @@ START_TEST(RtlMemory)
     KeRaiseIrql(HIGH_LEVEL, &Irql);
 
     /* RtlEqualMemory */
-    /* TODO: where is memcmp? */
+    MakePattern(Buffer, 8, HalfSize / 8 - 1, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
+                        1, 1,                0x12,
+                        8, HalfSize / 8,     0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
+                        1, 7,                0x12, 0);
+                        
+    ok_bool_true(RtlEqualMemory((PVOID)1, (PVOID)2, 0),
+                 "RtlEqualMemory returned");
+    ok_bool_true(RtlEqualMemory(Buffer, Buffer + HalfSize - 7, HalfSize - 8),
+                 "RtlEqualMemory returned");
+    ok_bool_true(RtlEqualMemory(Buffer, Buffer + HalfSize - 7, HalfSize - 8 + 1),
+                 "RtlEqualMemory returned");
+    ok_bool_false(RtlEqualMemory(Buffer, Buffer + HalfSize - 7, HalfSize - 8 + 2),
+                  "RtlEqualMemory returned");
 
     /* RtlCompareMemory */
     MakePattern(Buffer, 8, HalfSize / 8 - 1, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0,
@@ -414,7 +426,14 @@ START_TEST(RtlMemory)
     KeLowerIrql(Irql);
     Status = STATUS_SUCCESS;
     _SEH2_TRY {
+#if defined(__GNUC__) && __GNUC__ >= 5
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmemset-transposed-args"
+#endif
         RtlFillMemory(NULL, 0, 0x55);
+#if defined(__GNUC__) && __GNUC__ >= 5
+#pragma GCC diagnostic pop
+#endif
     } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
         Status = _SEH2_GetExceptionCode();
     } _SEH2_END;