LCOV - code coverage report
Current view: top level - test - test-locale-util.c (source / functions) Hit Total Coverage
Test: systemd_full.info Lines: 68 69 98.6 %
Date: 2019-08-23 13:36:53 Functions: 5 5 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 54 104 51.9 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: LGPL-2.1+ */
       2                 :            : 
       3                 :            : #include "kbd-util.h"
       4                 :            : #include "locale-util.h"
       5                 :            : #include "macro.h"
       6                 :            : #include "strv.h"
       7                 :            : #include "util.h"
       8                 :            : 
       9                 :          4 : static void test_get_locales(void) {
      10                 :          4 :         _cleanup_strv_free_ char **locales = NULL;
      11                 :            :         char **p;
      12                 :            :         int r;
      13                 :            : 
      14                 :          4 :         r = get_locales(&locales);
      15         [ -  + ]:          4 :         assert_se(r >= 0);
      16         [ -  + ]:          4 :         assert_se(locales);
      17                 :            : 
      18   [ +  -  +  + ]:       1164 :         STRV_FOREACH(p, locales) {
      19                 :       1160 :                 puts(*p);
      20         [ -  + ]:       1160 :                 assert_se(locale_is_valid(*p));
      21                 :            :         }
      22                 :          4 : }
      23                 :            : 
      24                 :          4 : static void test_locale_is_valid(void) {
      25         [ +  - ]:          4 :         log_info("/* %s */", __func__);
      26                 :            : 
      27         [ -  + ]:          4 :         assert_se(locale_is_valid("en_EN.utf8"));
      28         [ -  + ]:          4 :         assert_se(locale_is_valid("fr_FR.utf8"));
      29         [ -  + ]:          4 :         assert_se(locale_is_valid("fr_FR@euro"));
      30         [ -  + ]:          4 :         assert_se(locale_is_valid("fi_FI"));
      31         [ -  + ]:          4 :         assert_se(locale_is_valid("POSIX"));
      32         [ -  + ]:          4 :         assert_se(locale_is_valid("C"));
      33                 :            : 
      34         [ -  + ]:          4 :         assert_se(!locale_is_valid(""));
      35         [ -  + ]:          4 :         assert_se(!locale_is_valid("/usr/bin/foo"));
      36         [ -  + ]:          4 :         assert_se(!locale_is_valid("\x01gar\x02 bage\x03"));
      37                 :          4 : }
      38                 :            : 
      39                 :          4 : static void test_keymaps(void) {
      40         [ +  - ]:          4 :         _cleanup_strv_free_ char **kmaps = NULL;
      41                 :            :         char **p;
      42                 :            :         int r;
      43                 :            : 
      44         [ +  - ]:          4 :         log_info("/* %s */", __func__);
      45                 :            : 
      46         [ -  + ]:          4 :         assert_se(!keymap_is_valid(""));
      47         [ -  + ]:          4 :         assert_se(!keymap_is_valid("/usr/bin/foo"));
      48         [ -  + ]:          4 :         assert_se(!keymap_is_valid("\x01gar\x02 bage\x03"));
      49                 :            : 
      50                 :          4 :         r = get_keymaps(&kmaps);
      51         [ -  + ]:          4 :         if (r == -ENOENT)
      52                 :          0 :                 return; /* skip test if no keymaps are installed */
      53                 :            : 
      54         [ -  + ]:          4 :         assert_se(r >= 0);
      55         [ -  + ]:          4 :         assert_se(kmaps);
      56                 :            : 
      57   [ +  -  +  + ]:       2156 :         STRV_FOREACH(p, kmaps) {
      58                 :       2152 :                 puts(*p);
      59         [ -  + ]:       2152 :                 assert_se(keymap_is_valid(*p));
      60                 :            :         }
      61                 :            : 
      62         [ -  + ]:          4 :         assert_se(keymap_is_valid("uk"));
      63         [ -  + ]:          4 :         assert_se(keymap_is_valid("de-nodeadkeys"));
      64         [ -  + ]:          4 :         assert_se(keymap_is_valid("ANSI-dvorak"));
      65         [ -  + ]:          4 :         assert_se(keymap_is_valid("unicode"));
      66                 :            : }
      67                 :            : 
      68                 :            : #define dump_glyph(x) log_info(STRINGIFY(x) ": %s", special_glyph(x))
      69                 :          4 : static void dump_special_glyphs(void) {
      70                 :            :         assert_cc(SPECIAL_GLYPH_DEPRESSED_SMILEY + 1 == _SPECIAL_GLYPH_MAX);
      71                 :            : 
      72         [ +  - ]:          4 :         log_info("/* %s */", __func__);
      73                 :            : 
      74         [ +  - ]:          4 :         log_info("is_locale_utf8: %s", yes_no(is_locale_utf8()));
      75                 :            : 
      76         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_TREE_VERTICAL);
      77         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_TREE_BRANCH);
      78         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_TREE_RIGHT);
      79         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_TREE_SPACE);
      80         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_TRIANGULAR_BULLET);
      81         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_BLACK_CIRCLE);
      82         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_BULLET);
      83         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_ARROW);
      84         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_MDASH);
      85         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_ELLIPSIS);
      86         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_MU);
      87         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_CHECK_MARK);
      88         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_CROSS_MARK);
      89         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_ECSTATIC_SMILEY);
      90         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_HAPPY_SMILEY);
      91         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_SLIGHTLY_HAPPY_SMILEY);
      92         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_NEUTRAL_SMILEY);
      93         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_SLIGHTLY_UNHAPPY_SMILEY);
      94         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_UNHAPPY_SMILEY);
      95         [ +  - ]:          4 :         dump_glyph(SPECIAL_GLYPH_DEPRESSED_SMILEY);
      96                 :          4 : }
      97                 :            : 
      98                 :          4 : int main(int argc, char *argv[]) {
      99                 :          4 :         test_get_locales();
     100                 :          4 :         test_locale_is_valid();
     101                 :          4 :         test_keymaps();
     102                 :            : 
     103                 :          4 :         dump_special_glyphs();
     104                 :            : 
     105                 :          4 :         return 0;
     106                 :            : }

Generated by: LCOV version 1.14