FreeRDP
Loading...
Searching...
No Matches
TestFreeRDPCodecColor.c
1
20#include <winpr/wtypes.h>
21#include <freerdp/codec/color.h>
22
23typedef struct
24{
25 uint32_t val;
26 const char* str;
27} test_t;
28
29#define XSTR(s) STR(s)
30#define STR(x) #x
31#define ENTRY(x) { x, #x }
32static const test_t testcases[] = { ENTRY(PIXEL_FORMAT_ARGB32),
33 ENTRY(PIXEL_FORMAT_XRGB32),
34 ENTRY(PIXEL_FORMAT_ABGR32),
35 ENTRY(PIXEL_FORMAT_XBGR32),
36 ENTRY(PIXEL_FORMAT_BGRA32),
37 ENTRY(PIXEL_FORMAT_BGRX32),
38 ENTRY(PIXEL_FORMAT_RGBA32),
39 ENTRY(PIXEL_FORMAT_RGBX32),
40 ENTRY(PIXEL_FORMAT_BGRX32_DEPTH30),
41 ENTRY(PIXEL_FORMAT_RGBX32_DEPTH30),
42 ENTRY(PIXEL_FORMAT_RGB24),
43 ENTRY(PIXEL_FORMAT_BGR24),
44 ENTRY(PIXEL_FORMAT_RGB16),
45 ENTRY(PIXEL_FORMAT_BGR16),
46 ENTRY(PIXEL_FORMAT_ARGB15),
47 ENTRY(PIXEL_FORMAT_RGB15),
48 ENTRY(PIXEL_FORMAT_ABGR15),
49 ENTRY(PIXEL_FORMAT_BGR15),
50 ENTRY(PIXEL_FORMAT_RGB8),
51 ENTRY(PIXEL_FORMAT_A4),
52 ENTRY(PIXEL_FORMAT_MONO) };
53#undef ENTRY
54#undef STR
55
56int TestFreeRDPCodecColor(WINPR_ATTR_UNUSED int argc, WINPR_ATTR_UNUSED char* argv[])
57{
58 const size_t count = ARRAYSIZE(testcases);
59 for (size_t x = 0; x < count; x++)
60 {
61 const test_t* cur = &testcases[x];
62
63 const char* cmp = cur->str;
64 const uint32_t val = FreeRDPGetColorFromatFromName(cmp);
65 if (val != cur->val)
66 return -1;
67
68 const char* str = FreeRDPGetColorFormatName(cur->val);
69 if (!str || (strcmp(str, cmp) != 0))
70 return -2;
71 }
72
73 return 0;
74}