CI: Use git master for xkeyboard-config on Linux
[platform/upstream/libxkbcommon.git] / test / test.h
index a72d6aa..afeec78 100644 (file)
 /* 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
@@ -46,14 +50,28 @@ enum key_seq_state {
 int
 test_key_seq(struct xkb_keymap *keymap, ...);
 
-const char *
+int
+test_key_seq_va(struct xkb_keymap *keymap, va_list args);
+
+char *
+test_makedir(const char *parent, const char *path);
+
+char *
+test_maketempdir(const char *template);
+
+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);
@@ -62,6 +80,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 _WIN32
+#define setenv(varname, value, overwrite) _putenv_s((varname), (value))
+#define unsetenv(varname) _putenv_s(varname, "")
+#endif