test: let rmlvo-to-kccgst take long options like rmlvo-to-keymap
[platform/upstream/libxkbcommon.git] / test / rulescomp.c
index 60e7a4c..67ffcb8 100644 (file)
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/input.h>
-#include <time.h>
-
+#include "evdev-scancodes.h"
 #include "test.h"
 
-#define BENCHMARK_ITERATIONS 1000
-
 static int
 test_rmlvo_va(struct xkb_context *context, const char *rules,
               const char *model, const char *layout,
@@ -68,21 +64,6 @@ test_rmlvo(struct xkb_context *context, const char *rules,
 }
 
 static int
-test_rmlvo_silent(struct xkb_context *context, const char *rules,
-                  const char *model, const char *layout,
-                  const char *variant, const char *options)
-{
-    struct xkb_keymap *keymap;
-
-    keymap = test_compile_rules(context, rules, model, layout, variant,
-                                options);
-    if (keymap)
-        xkb_keymap_unref(keymap);
-
-    return keymap != NULL;
-}
-
-static int
 test_rmlvo_env(struct xkb_context *ctx, const char *rules, const char *model,
                const char *layout, const char *variant, const char *options,
                ...)
@@ -124,36 +105,6 @@ test_rmlvo_env(struct xkb_context *ctx, const char *rules, const char *model,
     return ret;
 }
 
-static void
-benchmark(struct xkb_context *context)
-{
-    struct timespec start, stop, elapsed;
-    enum xkb_log_level old_level = xkb_context_get_log_level(context);
-    int old_verb = xkb_context_get_log_verbosity(context);
-    int i;
-
-    xkb_context_set_log_level(context, XKB_LOG_LEVEL_CRITICAL);
-    xkb_context_set_log_verbosity(context, 0);
-
-    clock_gettime(CLOCK_MONOTONIC, &start);
-    for (i = 0; i < BENCHMARK_ITERATIONS; i++)
-        assert(test_rmlvo_silent(context, "evdev", "evdev", "us", "", ""));
-    clock_gettime(CLOCK_MONOTONIC, &stop);
-
-    xkb_context_set_log_level(context, old_level);
-    xkb_context_set_log_verbosity(context, old_verb);
-
-    elapsed.tv_sec = stop.tv_sec - start.tv_sec;
-    elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec;
-    if (elapsed.tv_nsec < 0) {
-        elapsed.tv_nsec += 1000000000;
-        elapsed.tv_sec--;
-    }
-
-    fprintf(stderr, "compiled %d keymaps in %ld.%09lds\n",
-            BENCHMARK_ITERATIONS, elapsed.tv_sec, elapsed.tv_nsec);
-}
-
 int
 main(int argc, char *argv[])
 {
@@ -161,11 +112,6 @@ main(int argc, char *argv[])
 
     assert(ctx);
 
-    if (argc > 1 && streq(argv[1], "bench")) {
-        benchmark(ctx);
-        return 0;
-    }
-
 #define KS(name) xkb_keysym_from_name(name, 0)
 
     assert(test_rmlvo(ctx, "evdev", "pc105", "us,il,ru,ca", ",,,multix", "grp:alts_toggle,ctrl:nocaps,compose:rwin",
@@ -235,6 +181,10 @@ main(int argc, char *argv[])
     assert(test_rmlvo_env(ctx, "base", "empty", "empty", "", "",
                           KEY_A,          BOTH, XKB_KEY_NoSymbol,         FINISH));
 
+    /* Has an illegal escape sequence, but shouldn't fail. */
+    assert(test_rmlvo_env(ctx, "evdev", "", "cz", "bksl", "",
+                          KEY_A,          BOTH, XKB_KEY_a,                FINISH));
+
     xkb_context_unref(ctx);
 
     ctx = test_get_context(0);
@@ -249,4 +199,5 @@ main(int argc, char *argv[])
     }
 
     xkb_context_unref(ctx);
+    return 0;
 }