ReactOS 0.4.16-dev-1946-g52006dd
GUIDFromString.cpp File Reference
#include <shelltest.h>
#include <initguid.h>
#include <undocshell.h>
#include <versionhelpers.h>
Include dependency graph for GUIDFromString.cpp:

Go to the source code of this file.

Functions

 DEFINE_GUID (invalid_guid, 0xDEADDEAD, 0xDEAD, 0xDEAD, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED)
 
static void TEST_GUIDFromStringA (void)
 
static void TEST_GUIDFromStringW (void)
 
 START_TEST (GUIDFromString)
 

Function Documentation

◆ DEFINE_GUID()

DEFINE_GUID ( invalid_guid  ,
0xDEADDEAD  ,
0xDEAD  ,
0xDEAD  ,
0xED  ,
0xED  ,
0xED  ,
0xED  ,
0xED  ,
0xED  ,
0xED  ,
0xED   
)

◆ START_TEST()

START_TEST ( GUIDFromString  )

Definition at line 113 of file GUIDFromString.cpp.

114{
117}
static void TEST_GUIDFromStringW(void)
static void TEST_GUIDFromStringA(void)

◆ TEST_GUIDFromStringA()

static void TEST_GUIDFromStringA ( void  )
static

Definition at line 21 of file GUIDFromString.cpp.

22{
23 GUID guid;
24 BOOL ret;
25
26 guid = invalid_guid;
28 {
30 }
32 {
33 ret = 0xDEADBEEF;
34 }
36
37 ok(ret == FALSE || // Win8+
38 ret == (int)(0xDEADBEEF), // Win2k3-Win7
39 "Wrong value for ret (0x%X)\n", ret);
40 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
41
42 guid = invalid_guid;
44 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
45
46 guid = invalid_guid;
48 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
49
50 guid = invalid_guid;
51 ok_int(GUIDFromStringA("{000214F9-0000-0000-C000-000000000046", &guid), FALSE);
52 //ok_int(memcmp(&guid, &IID_IShellLinkW_Invalid, sizeof(guid)) == 0, TRUE); // Ignorable corner case
53
54 guid = invalid_guid;
55 ok_int(GUIDFromStringA("{000214F9-0000-0000-C000-000000000046}", &guid), TRUE);
56 ok_int(memcmp(&guid, &IID_IShellLinkW, sizeof(guid)) == 0, TRUE);
57
58 guid = invalid_guid;
59 ok_int(GUIDFromStringA("{000214F9-0000-0000-C000-000000000046}g", &guid), TRUE);
60 ok_int(memcmp(&guid, &IID_IShellLinkW, sizeof(guid)) == 0, TRUE);
61
62 guid = invalid_guid;
63 ok_int(GUIDFromStringA(" {000214F9-0000-0000-C000-000000000046}", &guid), FALSE);
64 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
65}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
#define ok(value,...)
Definition: atltest.h:57
#define ok_int(expression, result)
Definition: atltest.h:134
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
GUID guid
Definition: version.c:147
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:82
#define _SEH2_END
Definition: pseh2_64.h:171
#define _SEH2_TRY
Definition: pseh2_64.h:71
BOOL WINAPI GUIDFromStringA(LPCSTR str, LPGUID guid)
Definition: shellord.c:2096

Referenced by START_TEST().

◆ TEST_GUIDFromStringW()

static void TEST_GUIDFromStringW ( void  )
static

Definition at line 67 of file GUIDFromString.cpp.

68{
69 GUID guid;
70 BOOL ret;
71
72 guid = invalid_guid;
74 {
76 }
78 {
79 ret = 0xDEADBEEF;
80 }
82
83 ok(ret == (int)(0xDEADBEEF) || // Win8+
84 ret == FALSE, // Win2k3-Win7
85 "Wrong value for ret (0x%X)\n", ret);
86 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
87
88 guid = invalid_guid;
90 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
91
92 guid = invalid_guid;
94 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
95
96 guid = invalid_guid;
97 ok_int(GUIDFromStringW(L"{000214F9-0000-0000-C000-000000000046", &guid), FALSE);
98 //ok_int(memcmp(&guid, &IID_IShellLinkW_Invalid, sizeof(guid)) == 0, TRUE); // Ignorable corner case
99
100 guid = invalid_guid;
101 ok_int(GUIDFromStringW(L"{000214F9-0000-0000-C000-000000000046}", &guid), TRUE);
102 ok_int(memcmp(&guid, &IID_IShellLinkW, sizeof(guid)) == 0, TRUE);
103
104 guid = invalid_guid;
105 ok_int(GUIDFromStringW(L"{000214F9-0000-0000-C000-000000000046}g", &guid), TRUE);
106 ok_int(memcmp(&guid, &IID_IShellLinkW, sizeof(guid)) == 0, TRUE);
107
108 guid = invalid_guid;
109 ok_int(GUIDFromStringW(L" {000214F9-0000-0000-C000-000000000046}", &guid), FALSE);
110 ok_int(memcmp(&guid, &invalid_guid, sizeof(guid)) == 0, TRUE);
111}
#define L(x)
Definition: resources.c:13
BOOL WINAPI GUIDFromStringW(_In_ PCWSTR psz, _Out_ LPGUID pguid)

Referenced by START_TEST().