[3/6] bcrypt/tests: Move common tests to a helper function.

Sebastian Lackner sebastian at fds-team.de
Fri Mar 10 08:34:39 CST 2017


Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
 dlls/bcrypt/tests/bcrypt.c |  196 ++++++++++-----------------------------------
 1 file changed, 46 insertions(+), 150 deletions(-)

diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 864c2c83bdf..f526fc60e20 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -142,6 +142,42 @@ static int strcmp_wa(const WCHAR *strw, const char *stra)
     return lstrcmpW(strw, buf);
 }
 
+#define test_object_length(a) _test_object_length(__LINE__,a)
+static void _test_object_length(unsigned line, void *handle)
+{
+    NTSTATUS status;
+    ULONG len, size;
+
+    len = size = 0xdeadbeef;
+    status = pBCryptGetProperty(NULL, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
+    ok_(__FILE__,line)(status == STATUS_INVALID_HANDLE, "BCryptGetProperty failed: %08x\n", status);
+
+    len = size = 0xdeadbeef;
+    status = pBCryptGetProperty(handle, NULL, (UCHAR *)&len, sizeof(len), &size, 0);
+    ok_(__FILE__,line)(status == STATUS_INVALID_PARAMETER, "BCryptGetProperty failed: %08x\n", status);
+
+    len = size = 0xdeadbeef;
+    status = pBCryptGetProperty(handle, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), NULL, 0);
+    ok_(__FILE__,line)(status == STATUS_INVALID_PARAMETER, "BCryptGetProperty failed: %08x\n", status);
+
+    len = size = 0xdeadbeef;
+    status = pBCryptGetProperty(handle, BCRYPT_OBJECT_LENGTH, NULL, sizeof(len), &size, 0);
+    ok_(__FILE__,line)(status == STATUS_SUCCESS, "BCryptGetProperty failed: %08x\n", status);
+    ok_(__FILE__,line)(size == sizeof(len), "got %u\n", size);
+
+    len = size = 0xdeadbeef;
+    status = pBCryptGetProperty(handle, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, 0, &size, 0);
+    ok_(__FILE__,line)(status == STATUS_BUFFER_TOO_SMALL, "BCryptGetProperty failed: %08x\n", status);
+    ok_(__FILE__,line)(len == 0xdeadbeef, "got %u\n", len);
+    ok_(__FILE__,line)(size == sizeof(len), "got %u\n", size);
+
+    len = size = 0xdeadbeef;
+    status = pBCryptGetProperty(handle, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
+    ok_(__FILE__,line)(status == STATUS_SUCCESS, "BCryptGetProperty failed: %08x\n", status);
+    ok_(__FILE__,line)(len != 0xdeadbeef, "len not set\n");
+    ok_(__FILE__,line)(size == sizeof(len), "got %u\n", size);
+}
+
 #define test_hash_length(a,b) _test_hash_length(__LINE__,a,b)
 static void _test_hash_length(unsigned line, void *handle, ULONG exlen)
 {
@@ -175,44 +211,16 @@ static void test_sha1(void)
     BCRYPT_ALG_HANDLE alg;
     BCRYPT_HASH_HANDLE hash;
     UCHAR buf[512], buf_hmac[1024], sha1[20], sha1_hmac[20];
-    ULONG size, len;
     char str[41];
     NTSTATUS ret;
+    ULONG len;
 
     alg = NULL;
     ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_SHA1_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
     ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
     ok(alg != NULL, "alg not set\n");
 
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(NULL, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_HANDLE, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, NULL, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), NULL, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, NULL, sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, 0, &size, 0);
-    ok(ret == STATUS_BUFFER_TOO_SMALL, "got %08x\n", ret);
-    ok(len == 0xdeadbeef, "got %u\n", len);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len , sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(len != 0xdeadbeef, "len not set\n");
-    ok(size == sizeof(len), "got %u\n", size);
-
+    test_object_length(alg);
     test_hash_length(alg, 20);
     test_alg_name(alg, "SHA1");
 
@@ -282,44 +290,16 @@ static void test_sha256(void)
     BCRYPT_ALG_HANDLE alg;
     BCRYPT_HASH_HANDLE hash;
     UCHAR buf[512], buf_hmac[1024], sha256[32], sha256_hmac[32];
-    ULONG size, len;
     char str[65];
     NTSTATUS ret;
+    ULONG len;
 
     alg = NULL;
     ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_SHA256_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
     ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
     ok(alg != NULL, "alg not set\n");
 
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(NULL, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_HANDLE, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, NULL, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), NULL, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, NULL, sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, 0, &size, 0);
-    ok(ret == STATUS_BUFFER_TOO_SMALL, "got %08x\n", ret);
-    ok(len == 0xdeadbeef, "got %u\n", len);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len , sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(len != 0xdeadbeef, "len not set\n");
-    ok(size == sizeof(len), "got %u\n", size);
-
+    test_object_length(alg);
     test_hash_length(alg, 32);
     test_alg_name(alg, "SHA256");
 
@@ -389,44 +369,16 @@ static void test_sha384(void)
     BCRYPT_ALG_HANDLE alg;
     BCRYPT_HASH_HANDLE hash;
     UCHAR buf[512], buf_hmac[1024], sha384[48], sha384_hmac[48];
-    ULONG size, len;
     char str[97];
     NTSTATUS ret;
+    ULONG len;
 
     alg = NULL;
     ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_SHA384_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
     ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
     ok(alg != NULL, "alg not set\n");
 
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(NULL, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_HANDLE, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, NULL, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), NULL, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, NULL, sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, 0, &size, 0);
-    ok(ret == STATUS_BUFFER_TOO_SMALL, "got %08x\n", ret);
-    ok(len == 0xdeadbeef, "got %u\n", len);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len , sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(len != 0xdeadbeef, "len not set\n");
-    ok(size == sizeof(len), "got %u\n", size);
-
+    test_object_length(alg);
     test_hash_length(alg, 48);
     test_alg_name(alg, "SHA384");
 
@@ -498,44 +450,16 @@ static void test_sha512(void)
     BCRYPT_ALG_HANDLE alg;
     BCRYPT_HASH_HANDLE hash;
     UCHAR buf[512], buf_hmac[1024], sha512[64], sha512_hmac[64];
-    ULONG size, len;
     char str[129];
     NTSTATUS ret;
+    ULONG len;
 
     alg = NULL;
     ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_SHA512_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
     ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
     ok(alg != NULL, "alg not set\n");
 
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(NULL, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_HANDLE, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, NULL, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), NULL, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, NULL, sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, 0, &size, 0);
-    ok(ret == STATUS_BUFFER_TOO_SMALL, "got %08x\n", ret);
-    ok(len == 0xdeadbeef, "got %u\n", len);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len , sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(len != 0xdeadbeef, "len not set\n");
-    ok(size == sizeof(len), "got %u\n", size);
-
+    test_object_length(alg);
     test_hash_length(alg, 64);
     test_alg_name(alg, "SHA512");
 
@@ -606,44 +530,16 @@ static void test_md5(void)
     BCRYPT_ALG_HANDLE alg;
     BCRYPT_HASH_HANDLE hash;
     UCHAR buf[512], buf_hmac[1024], md5[16], md5_hmac[16];
-    ULONG size, len;
     char str[65];
     NTSTATUS ret;
+    ULONG len;
 
     alg = NULL;
     ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_MD5_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
     ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
     ok(alg != NULL, "alg not set\n");
 
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(NULL, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_HANDLE, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, NULL, (UCHAR *)&len, sizeof(len), &size, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, sizeof(len), NULL, 0);
-    ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, NULL, sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len, 0, &size, 0);
-    ok(ret == STATUS_BUFFER_TOO_SMALL, "got %08x\n", ret);
-    ok(len == 0xdeadbeef, "got %u\n", len);
-    ok(size == sizeof(len), "got %u\n", size);
-
-    len = size = 0xdeadbeef;
-    ret = pBCryptGetProperty(alg, BCRYPT_OBJECT_LENGTH, (UCHAR *)&len , sizeof(len), &size, 0);
-    ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
-    ok(len != 0xdeadbeef, "len not set\n");
-    ok(size == sizeof(len), "got %u\n", size);
-
+    test_object_length(alg);
     test_hash_length(alg, 16);
     test_alg_name(alg, "MD5");
 
-- 
2.11.0



More information about the wine-patches mailing list