FreeRDP
Loading...
Searching...
No Matches
TestGdiGfx.c
1
21#include <winpr/winpr.h>
22#include <freerdp/utils/gfx.h>
23
24static bool test(uint32_t flags, size_t bufferlen)
25{
26 char* buffer = calloc(bufferlen + 10, 1);
27 WINPR_ASSERT(buffer);
28
29 const char* val = rdpgfx_caps_flags_str(flags, buffer, bufferlen);
30 const size_t len = strnlen(buffer, bufferlen);
31 size_t vlen = 0;
32 if (val)
33 vlen = strnlen(val, bufferlen);
34 printf("0x%" PRIx32 " [%" PRIu32 "]: %s\n", flags, bufferlen, buffer);
35 free(buffer);
36 if (!val)
37 return false;
38 if (len != vlen)
39 return false;
40 if (bufferlen > 0)
41 {
42 if (len >= bufferlen)
43 return false;
44 }
45 return true;
46}
47
48int TestGdiGfx(WINPR_ATTR_UNUSED int argc, WINPR_ATTR_UNUSED char* argv[])
49{
50 if (!test(0, 0))
51 return -1;
52 if (!test(0, 128))
53 return -1;
54 if (!test(UINT32_MAX, 0))
55 return -1;
56 if (!test(UINT32_MAX, 64))
57 return -1;
58 if (!test(UINT32_MAX, 128))
59 return -1;
60 if (!test(UINT32_MAX, 384))
61 return -1;
62
63 uint32_t mask = 0xaaaaaaaa;
64 if (!test(mask, 0))
65 return -1;
66 if (!test(mask, 64))
67 return -1;
68 if (!test(mask, 128))
69 return -1;
70 if (!test(mask, 384))
71 return -1;
72 return 0;
73}