]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add test for draw_cylon() 30133/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 21 Nov 2023 23:26:14 +0000 (08:26 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 21 Nov 2023 23:59:29 +0000 (08:59 +0900)
src/test/test-pretty-print.c

index ece1a161e451fdf7af87608f8a40c84b314793f2..52b2bc861e8a8e8b6bf4a89e23acdf0709295621 100644 (file)
 #include "strv.h"
 #include "tests.h"
 
+#define CYLON_WIDTH 6
+
+static void test_draw_cylon_one(unsigned pos) {
+        char buf[CYLON_WIDTH + CYLON_BUFFER_EXTRA + 1];
+
+        log_debug("/* %s(%u) */", __func__, pos);
+
+        assert(pos <= CYLON_WIDTH + 1);
+
+        memset(buf, 0xff, sizeof(buf));
+        draw_cylon(buf, sizeof(buf), CYLON_WIDTH, pos);
+        assert_se(strlen(buf) < sizeof(buf));
+}
+
+TEST(draw_cylon) {
+        bool saved = log_get_show_color();
+
+        log_show_color(false);
+        for (unsigned i = 0; i <= CYLON_WIDTH + 1; i++)
+                test_draw_cylon_one(i);
+
+        log_show_color(true);
+        for (unsigned i = 0; i <= CYLON_WIDTH + 1; i++)
+                test_draw_cylon_one(i);
+
+        log_show_color(saved);
+}
+
 TEST(terminal_urlify) {
         _cleanup_free_ char *formatted = NULL;