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.
*/
int
test_key_seq(struct xkb_keymap *keymap, ...)
test_key_seq_va(struct xkb_keymap *keymap, va_list ap)
{
struct xkb_state *state;
va_list ap;
xkb_keycode_t kc;
int op;
xkb_keysym_t keysym;
@ -73,8 +72,6 @@ test_key_seq(struct xkb_keymap *keymap, ...)
state = xkb_state_new(keymap);
assert(state);
va_start(ap, keymap);
for (;;) {
kc = va_arg(ap, int) + EVDEV_OFFSET;
op = va_arg(ap, int);
@ -120,16 +117,27 @@ test_key_seq(struct xkb_keymap *keymap, ...)
goto fail;
}
va_end(ap);
xkb_state_unref(state);
return 1;
fail:
va_end(ap);
xkb_state_unref(state);
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 *
test_get_path(const char *path_rel)
{

View File

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