2 * PROJECT: ReactOS Spooler Router API Tests
3 * LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation
4 * PURPOSE: Tests for PackStrings
5 * COPYRIGHT: Copyright 2015 Colin Finck <colin@reactos.org>
10 #define WIN32_NO_STATUS
15 typedef struct _EXAMPLE_STRUCT
20 EXAMPLE_STRUCT
, *PEXAMPLE_STRUCT
;
22 START_TEST(PackStrings
)
24 PCWSTR Source1
[] = { L
"Test", L
"String" };
25 PCWSTR Source2
[] = { L
"Test", NULL
};
29 PEXAMPLE_STRUCT pStruct
= (PEXAMPLE_STRUCT
)Buffer
;
31 FIELD_OFFSET(EXAMPLE_STRUCT
, String1
),
32 FIELD_OFFSET(EXAMPLE_STRUCT
, String2
),
36 // Try a usual case with two strings. Verify that they are copied in reverse order.
37 pEnd
= PackStrings(Source1
, Buffer
, Offsets
, &Buffer
[sizeof(Buffer
)]);
38 ok(wcscmp(pStruct
->String1
, Source1
[0]) == 0, "String1 and Source1[0] don't match!\n");
39 ok(wcscmp(pStruct
->String2
, Source1
[1]) == 0, "String2 and Source1[1] don't match!\n");
40 ok(wcscmp((PWSTR
)pEnd
, Source1
[1]) == 0, "pEnd and Source1[1] don't match!\n");
42 // Now verify that the corresponding pointer is set to NULL if a string is NULL.
43 pEnd
= PackStrings(Source2
, Buffer
, Offsets
, &Buffer
[sizeof(Buffer
)]);
44 ok(wcscmp(pStruct
->String1
, Source2
[0]) == 0, "String1 and Source2[0] don't match!\n");
45 ok(!pStruct
->String2
, "String2 is %p!\n", pStruct
->String2
);
46 ok(wcscmp((PWSTR
)pEnd
, Source2
[0]) == 0, "pEnd and Source2[0] don't match!\n");