]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/test/test-locale-util.c
systemd-firstboot: add vconsole keymap support (#7035)
[thirdparty/systemd.git] / src / test / test-locale-util.c
index 427c698d1d0cb2a1829122d58226fb6cd7d9be56..9e69567e4cadee8b76d0230e5be9167290a387de 100644 (file)
@@ -50,9 +50,38 @@ static void test_locale_is_valid(void) {
         assert_se(!locale_is_valid("\x01gar\x02 bage\x03"));
 }
 
+static void test_keymaps(void) {
+        _cleanup_strv_free_ char **kmaps = NULL;
+        char **p;
+        int r;
+
+        assert_se(!keymap_is_valid(""));
+        assert_se(!keymap_is_valid("/usr/bin/foo"));
+        assert_se(!keymap_is_valid("\x01gar\x02 bage\x03"));
+
+        r = get_keymaps(&kmaps);
+        if (r == -ENOENT)
+                return; /* skip test if no keymaps are installed */
+
+        assert_se(r >= 0);
+        assert_se(kmaps);
+
+        STRV_FOREACH(p, kmaps) {
+                puts(*p);
+                assert_se(keymap_is_valid(*p));
+        }
+
+        assert_se(keymap_is_valid("uk"));
+        assert_se(keymap_is_valid("de-nodeadkeys"));
+        assert_se(keymap_is_valid("ANSI-dvorak"));
+        assert_se(keymap_is_valid("unicode"));
+}
+
 int main(int argc, char *argv[]) {
         test_get_locales();
         test_locale_is_valid();
 
+        test_keymaps();
+
         return 0;
 }