From b3ce42bc630c3759d24fbbd3957100425b503884 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sun, 1 Jan 2012 16:52:30 +0100 Subject: [PATCH] test_buffer: add kmscon_symbol_t test Signed-off-by: David Herrmann --- tests/test_buffer.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/test_buffer.c b/tests/test_buffer.c index 82ff24c..c6b75c5 100644 --- a/tests/test_buffer.c +++ b/tests/test_buffer.c @@ -39,6 +39,7 @@ #include "console.h" #include "log.h" +#include "unicode.h" /* print buffer with boundary */ static void print_buf(struct kmscon_buffer *buf) @@ -112,6 +113,38 @@ static void test1(struct kmscon_buffer *buf) kmscon_char_free(ch); } +static void test2() +{ + struct kmscon_symbol_table *st; + int ret; + kmscon_symbol_t sym, sym2, sym3, sym4; + const uint32_t *str; + size_t len, i; + + log_info("Test2:\n"); + + ret = kmscon_symbol_table_new(&st); + if (ret) + return; + + sym = kmscon_symbol_make('a'); + sym2 = kmscon_symbol_append(st, sym, '^'); + sym3 = kmscon_symbol_append(st, sym2, '^'); + sym4 = kmscon_symbol_append(st, sym, '^'); + + log_info("equality: %i %i %i\n", sym == sym2, sym2 == sym4, + sym3 == sym2); + + str = kmscon_symbol_get(st, &sym3, &len); + + printf("sym3: "); + for (i = 0; i < len; ++i) + printf("%c", str[i]); + printf("\n"); + + kmscon_symbol_table_unref(st); +} + int main(int argc, char **argv) { struct kmscon_buffer *buf; @@ -124,6 +157,7 @@ int main(int argc, char **argv) } test1(buf); + test2(); kmscon_buffer_unref(buf); err_out: -- 2.7.4