test: Add va_list variant of test_key_seq

For use when chaining tests.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
master
Daniel Stone 2013-03-19 10:59:38 +00:00
parent 40c46ecd5b
commit 4d7600bd0c
2 changed files with 17 additions and 6 deletions

View File

@ -55,11 +55,10 @@
* See below for examples. * See below for examples.
*/ */
int int
test_key_seq(struct xkb_keymap *keymap, ...) test_key_seq_va(struct xkb_keymap *keymap, va_list ap)
{ {
struct xkb_state *state; struct xkb_state *state;
va_list ap;
xkb_keycode_t kc; xkb_keycode_t kc;
int op; int op;
xkb_keysym_t keysym; xkb_keysym_t keysym;
@ -73,8 +72,6 @@ test_key_seq(struct xkb_keymap *keymap, ...)
state = xkb_state_new(keymap); state = xkb_state_new(keymap);
assert(state); assert(state);
va_start(ap, keymap);
for (;;) { for (;;) {
kc = va_arg(ap, int) + EVDEV_OFFSET; kc = va_arg(ap, int) + EVDEV_OFFSET;
op = va_arg(ap, int); op = va_arg(ap, int);
@ -120,16 +117,27 @@ test_key_seq(struct xkb_keymap *keymap, ...)
goto fail; goto fail;
} }
va_end(ap);
xkb_state_unref(state); xkb_state_unref(state);
return 1; return 1;
fail: fail:
va_end(ap);
xkb_state_unref(state); xkb_state_unref(state);
return 0; return 0;
} }
int
test_key_seq(struct xkb_keymap *keymap, ...)
{
va_list ap;
int ret;
va_start(ap, keymap);
ret = test_key_seq_va(keymap, ap);
va_end(ap);
return ret;
}
const char * const char *
test_get_path(const char *path_rel) test_get_path(const char *path_rel)
{ {

View File

@ -46,6 +46,9 @@ enum key_seq_state {
int int
test_key_seq(struct xkb_keymap *keymap, ...); test_key_seq(struct xkb_keymap *keymap, ...);
int
test_key_seq_va(struct xkb_keymap *keymap, va_list args);
const char * const char *
test_get_path(const char *path_rel); test_get_path(const char *path_rel);