LCOV - code coverage report
Current view: top level - test - test-locale-util.c (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 68 69 98.6 %
Date: 2019-08-22 15:41:25 Functions: 5 5 100.0 %

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

Generated by: LCOV version 1.14