test: add proper --verbose handling to the xkeyboard-config tester
[platform/upstream/libxkbcommon.git] / test / test.h
index ac36f61..81ba49b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2012 Daniel Stone
+ * Copyright © 2012 Intel Corporation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  * Author: Daniel Stone <daniel@fooishbar.org>
  */
 
+#include <assert.h>
+
+/* Don't use compat names in internal code. */
+#define _XKBCOMMON_COMPAT_H
 #include "xkbcommon/xkbcommon.h"
+#include "xkbcommon/xkbcommon-compose.h"
+#include "utils.h"
+
+/* Automake test exit code to signify SKIP (à la PASS, FAIL, etc). */
+#define SKIP_TEST 77
+
+/* The offset between KEY_* numbering, and keycodes in the XKB evdev
+ * dataset. */
+#define EVDEV_OFFSET 8
+
+enum key_seq_state {
+    DOWN,
+    REPEAT,
+    UP,
+    BOTH,
+    NEXT,
+    FINISH,
+};
+
+int
+test_key_seq(struct xkb_keymap *keymap, ...);
+
+int
+test_key_seq_va(struct xkb_keymap *keymap, va_list args);
 
-const char *
+char *
 test_get_path(const char *path_rel);
 
 char *
 test_read_file(const char *path_rel);
 
+enum test_context_flags {
+    CONTEXT_NO_FLAG = 0,
+    CONTEXT_ALLOW_ENVIRONMENT_NAMES = (1 << 0),
+};
+
 struct xkb_context *
-test_get_context(void);
+test_get_context(enum test_context_flags flags);
 
 struct xkb_keymap *
 test_compile_file(struct xkb_context *context, const char *path_rel);
@@ -41,6 +74,15 @@ struct xkb_keymap *
 test_compile_string(struct xkb_context *context, const char *string);
 
 struct xkb_keymap *
+test_compile_buffer(struct xkb_context *context, const char *buf, size_t len);
+
+struct xkb_keymap *
 test_compile_rules(struct xkb_context *context, const char *rules,
                    const char *model, const char *layout, const char *variant,
                    const char *options);
+
+
+#ifdef _MSC_VER
+#define setenv(varname, value, overwrite) _putenv_s((varname), (value))
+#define unsetenv(varname) _putenv_s(varname, "")
+#endif