Imported Upstream version 2.0.4
[platform/upstream/kbd.git] / tests / libkeymap-charset.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <check.h>
4 #include <keymap.h>
5
6 START_TEST(test0)
7 {
8         char *s;
9         lkfile_t f;
10         struct lk_ctx *ctx;
11
12         ctx = lk_init();
13         lk_set_log_fn(ctx, NULL, NULL);
14
15         f.pipe = 0;
16         strcpy(f.pathname, "charset-keymap0.map");
17         f.fd = fopen(DATADIR "/charset-keymap0.map", "r");
18
19         fail_if(lk_parse_keymap(ctx, &f) != 0, "Unable to parse keymap");
20
21         s = lk_get_charset(ctx);
22
23         fail_if(strcmp(s, "iso-8859-2"), "Unable to parse charset");
24
25         lk_free(ctx);
26 }
27 END_TEST
28
29 START_TEST(test1)
30 {
31         char *s;
32         lkfile_t f;
33         struct lk_ctx *ctx;
34
35         ctx = lk_init();
36         lk_set_log_fn(ctx, NULL, NULL);
37
38         f.pipe = 0;
39         strcpy(f.pathname, "null");
40         f.fd = fopen("/dev/null", "r");
41
42         fail_if(lk_parse_keymap(ctx, &f) != 0, "Unable to parse keymap");
43
44         s = lk_get_charset(ctx);
45
46         fail_if(s == NULL, "Charset not found");
47         fail_if(strcmp(s, "iso-8859-1"), "Unable to parse charset");
48
49         lk_free(ctx);
50 }
51 END_TEST
52
53 static Suite *
54 libkeymap_suite(void)
55 {
56         Suite *s       = suite_create("libkeymap");
57         TCase *tc_core = tcase_create(NULL);
58
59         tcase_add_test(tc_core, test0);
60         tcase_add_test(tc_core, test1);
61
62         suite_add_tcase(s, tc_core);
63         return s;
64 }
65
66 int main(void)
67 {
68         int number_failed;
69
70         Suite *s    = libkeymap_suite();
71         SRunner *sr = srunner_create(s);
72
73         srunner_run_all(sr, CK_NORMAL);
74
75         number_failed = srunner_ntests_failed(sr);
76         srunner_free(sr);
77
78         return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
79 }