aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libfonts_get_subpixel_expansion.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/libfonts_get_subpixel_expansion.c b/libfonts_get_subpixel_expansion.c
index 99f72ba..e63d729 100644
--- a/libfonts_get_subpixel_expansion.c
+++ b/libfonts_get_subpixel_expansion.c
@@ -45,6 +45,64 @@ libfonts_get_subpixel_expansion(enum libfonts_subpixel_order_class layout, size_
int
main(void)
{
+ size_t w, h;
+
+#define T(L)\
+ do {\
+ errno = 0;\
+ ASSERT(libfonts_get_subpixel_expansion(L, NULL, NULL) == -1);\
+ ASSERT(errno == EINVAL);\
+ \
+ errno = 0;\
+ ASSERT(libfonts_get_subpixel_expansion(L, &w, NULL) == -1);\
+ ASSERT(errno == EINVAL);\
+ \
+ errno = 0;\
+ ASSERT(libfonts_get_subpixel_expansion(L, NULL, &h) == -1);\
+ ASSERT(errno == EINVAL);\
+ \
+ errno = 0;\
+ ASSERT(libfonts_get_subpixel_expansion(L, &w, &h) == -1);\
+ ASSERT(errno == EINVAL);\
+ } while (0)
+
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_OTHER);
+ T((enum libfonts_subpixel_order_class)999);
+
+#undef T
+
+#define T(L, W, H)\
+ do {\
+ w = 0, h = 0;\
+ ASSERT(!libfonts_get_subpixel_expansion(L, NULL, NULL));\
+ \
+ w = 0, h = 0;\
+ ASSERT(!libfonts_get_subpixel_expansion(L, &w, NULL));\
+ ASSERT(w == (W));\
+ \
+ w = 0, h = 0;\
+ ASSERT(!libfonts_get_subpixel_expansion(L, NULL, &h));\
+ ASSERT(h == (H));\
+ \
+ w = 0, h = 0;\
+ ASSERT(!libfonts_get_subpixel_expansion(L, &w, &h));\
+ ASSERT(w == (W));\
+ ASSERT(h == (H));\
+ } while (0)
+
+ errno = EDOM;
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_123, 3, 1);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_1_2_3, 1, 3);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_11_23, 2, 2);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_21_31, 2, 2);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_32_11, 2, 2);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_13_12, 2, 2);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_BALANCED_11_23, 2, 3);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_BALANCED_21_31, 3, 2);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_BALANCED_32_11, 2, 3);
+ T(LIBFONTS_SUBPIXEL_ORDER_CLASS_BALANCED_13_12, 3, 2);
+ ASSERT(errno == EDOM);
+
return 0;
}