From 53a563bb384548a5f93ffc34df11b26449d653a4 Mon Sep 17 00:00:00 2001 From: Andrew Nguyen Date: Tue, 15 Jun 2010 05:21:19 -0500 Subject: [PATCH] setupapi: Exhaustively test the invalid parameter handling of SetupDecompressOrCopyFileA. --- dlls/setupapi/tests/misc.c | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/dlls/setupapi/tests/misc.c b/dlls/setupapi/tests/misc.c index a3abde46746..20f26830e19 100644 --- a/dlls/setupapi/tests/misc.c +++ b/dlls/setupapi/tests/misc.c @@ -506,6 +506,22 @@ static void test_SetupDecompressOrCopyFile(void) DWORD ret; char source[MAX_PATH], target[MAX_PATH], temp[MAX_PATH], *p; UINT type; + int i; + + const struct + { + PCSTR source; + PCSTR target; + PUINT type; + } invalid_parameters[] = + { + {NULL, NULL, NULL}, + {NULL, NULL, &type}, + {NULL, target, NULL}, + {NULL, target, &type}, + {source, NULL, NULL}, + {source, NULL, &type}, + }; GetTempPathA(sizeof(temp), temp); GetTempFileNameA(temp, "doc", 0, source); @@ -515,15 +531,25 @@ static void test_SetupDecompressOrCopyFile(void) create_source_file(source, uncompressed, sizeof(uncompressed)); - ret = SetupDecompressOrCopyFileA(NULL, NULL, NULL); - ok(ret == ERROR_INVALID_PARAMETER, "SetupDecompressOrCopyFile failed unexpectedly\n"); - - type = FILE_COMPRESSION_NONE; - ret = SetupDecompressOrCopyFileA(NULL, target, &type); - ok(ret == ERROR_INVALID_PARAMETER, "SetupDecompressOrCopyFile failed unexpectedly\n"); - - ret = SetupDecompressOrCopyFileA(source, NULL, &type); - ok(ret == ERROR_INVALID_PARAMETER, "SetupDecompressOrCopyFile failed unexpectedly\n"); + for (i = 0; i < sizeof(invalid_parameters)/sizeof(invalid_parameters[0]); i++) + { + type = FILE_COMPRESSION_NONE; + ret = SetupDecompressOrCopyFileA(invalid_parameters[i].source, + invalid_parameters[i].target, + invalid_parameters[i].type); + ok(ret == ERROR_INVALID_PARAMETER, + "[%d] Expected SetupDecompressOrCopyFileA to return ERROR_INVALID_PARAMETER, got %u\n", + i, ret); + + /* try an invalid compression type */ + type = 5; + ret = SetupDecompressOrCopyFileA(invalid_parameters[i].source, + invalid_parameters[i].target, + invalid_parameters[i].type); + ok(ret == ERROR_INVALID_PARAMETER, + "[%d] Expected SetupDecompressOrCopyFileA to return ERROR_INVALID_PARAMETER, got %u\n", + i, ret); + } type = 5; /* try an invalid compression type */ ret = SetupDecompressOrCopyFileA(source, target, &type); -- 2.11.4.GIT