From d475736b3a32e1abaf47f5e7dfd403bfd7848f2b Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 21 Jan 2023 12:27:15 +0100 Subject: Add tests for libfonts_get_subpixel_expansion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libfonts_get_subpixel_expansion.c | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) 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; } -- cgit v1.2.3-70-g09d2