* DEALINGS IN THE SOFTWARE.
*/
-#include <linux/input.h>
-#include <time.h>
+#include "config.h"
+#include "evdev-scancodes.h"
#include "test.h"
-#define BENCHMARK_ITERATIONS 2500
-
static int
test_rmlvo_va(struct xkb_context *context, const char *rules,
const char *model, const char *layout,
}
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,
...)
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[])
{
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",
}
xkb_context_unref(ctx);
+ return 0;
}