Alexandre Julliard : ntdll/tests: Make sure buffer alignment is correct.

Alexandre Julliard julliard at winehq.org
Wed Aug 26 10:44:35 CDT 2009


Module: wine
Branch: master
Commit: 86e4830040d79337eb30349ae019fbc19a97cf8e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=86e4830040d79337eb30349ae019fbc19a97cf8e

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Aug 26 11:52:39 2009 +0200

ntdll/tests: Make sure buffer alignment is correct.

---

 dlls/ntdll/tests/info.c |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
index f09acc9..ff61a2b 100644
--- a/dlls/ntdll/tests/info.c
+++ b/dlls/ntdll/tests/info.c
@@ -121,25 +121,23 @@ static void test_query_cpu(void)
 static void test_query_performance(void)
 {
     NTSTATUS status;
-    ULONG FullLength;
     ULONG ReturnLength;
-    SYSTEM_PERFORMANCE_INFORMATION spi;
-    struct SPI_PLUS_EXTRA
-    {
-      SYSTEM_PERFORMANCE_INFORMATION spi;
-      BYTE extra[2];
-    } spi_plus_extra;
+    ULONGLONG buffer[sizeof(SYSTEM_PERFORMANCE_INFORMATION)/sizeof(ULONGLONG) + 1];
 
-    status = pNtQuerySystemInformation(SystemPerformanceInformation, &spi, 0, &FullLength);
+    status = pNtQuerySystemInformation(SystemPerformanceInformation, buffer, 0, &ReturnLength);
     ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
 
-    status = pNtQuerySystemInformation(SystemPerformanceInformation, &spi, sizeof(spi), &ReturnLength);
+    status = pNtQuerySystemInformation(SystemPerformanceInformation, buffer,
+                                       sizeof(SYSTEM_PERFORMANCE_INFORMATION), &ReturnLength);
     ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
-    ok( sizeof(spi) == ReturnLength, "Inconsistent length %d\n", ReturnLength);
+    ok( ReturnLength == sizeof(SYSTEM_PERFORMANCE_INFORMATION), "Inconsistent length %d\n", ReturnLength);
 
-    status = pNtQuerySystemInformation(SystemPerformanceInformation, &spi_plus_extra, sizeof(spi_plus_extra), &ReturnLength);
+    status = pNtQuerySystemInformation(SystemPerformanceInformation, buffer,
+                                       sizeof(SYSTEM_PERFORMANCE_INFORMATION) + 2, &ReturnLength);
     ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
-    ok( ReturnLength == min(FullLength, sizeof(spi_plus_extra)), "Inconsistent length %d\n", ReturnLength);
+    ok( ReturnLength == sizeof(SYSTEM_PERFORMANCE_INFORMATION) ||
+        ReturnLength == sizeof(SYSTEM_PERFORMANCE_INFORMATION) + 2,
+        "Inconsistent length %d\n", ReturnLength);
 
     /* Not return values yet, as struct members are unknown */
 }




More information about the wine-cvs mailing list