Sebastian Lackner : ntdll/tests: Add tests for RtlGetCompressionWorkSpaceSize.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jul 9 09:44:37 CDT 2015


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

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Thu Jul  9 03:05:45 2015 +0200

ntdll/tests: Add tests for RtlGetCompressionWorkSpaceSize.

---

 dlls/ntdll/tests/rtl.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c
index 755424c..a2e7f6c 100644
--- a/dlls/ntdll/tests/rtl.c
+++ b/dlls/ntdll/tests/rtl.c
@@ -1685,6 +1685,52 @@ static void test_RtlCompressBuffer(void)
     HeapFree(GetProcessHeap(), 0, workspace);
 }
 
+static void test_RtlGetCompressionWorkSpaceSize(void)
+{
+    ULONG compress_workspace, decompress_workspace;
+    NTSTATUS status;
+
+    if (!pRtlGetCompressionWorkSpaceSize)
+    {
+        win_skip("RtlGetCompressionWorkSpaceSize is not available\n");
+        return;
+    }
+
+    /* test invalid format / engine */
+    status = pRtlGetCompressionWorkSpaceSize(COMPRESSION_FORMAT_NONE, &compress_workspace,
+                                             &decompress_workspace);
+    todo_wine
+    ok(status == STATUS_INVALID_PARAMETER, "got wrong status 0x%08x\n", status);
+
+    status = pRtlGetCompressionWorkSpaceSize(COMPRESSION_FORMAT_DEFAULT, &compress_workspace,
+                                             &decompress_workspace);
+    todo_wine
+    ok(status == STATUS_INVALID_PARAMETER, "got wrong status 0x%08x\n", status);
+
+    status = pRtlGetCompressionWorkSpaceSize(0xFF, &compress_workspace, &decompress_workspace);
+    todo_wine
+    ok(status == STATUS_UNSUPPORTED_COMPRESSION, "got wrong status 0x%08x\n", status);
+
+    /* test LZNT1 with normal and maximum compression */
+    compress_workspace = decompress_workspace = 0xdeadbeef;
+    status = pRtlGetCompressionWorkSpaceSize(COMPRESSION_FORMAT_LZNT1, &compress_workspace,
+                                             &decompress_workspace);
+    todo_wine
+    ok(status == STATUS_SUCCESS, "got wrong status 0x%08x\n", status);
+    ok(compress_workspace != 0, "got wrong compress_workspace %u\n", compress_workspace);
+    todo_wine
+    ok(decompress_workspace == 0x1000, "got wrong decompress_workspace %u\n", decompress_workspace);
+
+    compress_workspace = decompress_workspace = 0xdeadbeef;
+    status = pRtlGetCompressionWorkSpaceSize(COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_MAXIMUM,
+                                             &compress_workspace, &decompress_workspace);
+    todo_wine
+    ok(status == STATUS_SUCCESS, "got wrong status 0x%08x\n", status);
+    ok(compress_workspace != 0, "got wrong compress_workspace %u\n", compress_workspace);
+    todo_wine
+    ok(decompress_workspace == 0x1000, "got wrong decompress_workspace %u\n", decompress_workspace);
+}
+
 START_TEST(rtl)
 {
     InitFunctionPtrs();
@@ -1712,4 +1758,5 @@ START_TEST(rtl)
     test_LdrAddRefDll();
     test_LdrLockLoaderLock();
     test_RtlCompressBuffer();
+    test_RtlGetCompressionWorkSpaceSize();
 }




More information about the wine-cvs mailing list