From 794ac73441f920117dbd48ea0849f9191a409897 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 26 Feb 2017 00:06:02 +0100 Subject: [PATCH] Update tests & fix variant code. --- m-variant.h | 4 ++-- tests/test-mvariant.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/m-variant.h b/m-variant.h index 9bf69b16..bc45df67 100644 --- a/m-variant.h +++ b/m-variant.h @@ -137,13 +137,13 @@ #define VARIANTI_DEFINE_SETTER(name, ...) \ - static inline bool M_C(name, _set_empty)(M_C(name,_t) my) { \ + static inline void M_C(name, _set_empty)(M_C(name,_t) my) { \ M_C(name, _clear)(my); \ M_C(name, _init)(my); \ } \ M_MAP2(VARIANTI_DEFINE_SETTER_FUNC, name, __VA_ARGS__) #define VARIANTI_DEFINE_SETTER_FUNC(name, a) \ - static inline bool M_C3(name, _set_, VARIANTI_GET_FIELD a)(M_C(name,_t) my,\ + static inline void M_C3(name, _set_, VARIANTI_GET_FIELD a)(M_C(name,_t) my, \ VARIANTI_GET_TYPE a VARIANTI_GET_FIELD a ) { \ if (my->type == M_C(VARIANT_, VARIANTI_GET_FIELD a) ) { \ VARIANTI_GET_SET a (my -> value. VARIANTI_GET_FIELD a, \ diff --git a/tests/test-mvariant.c b/tests/test-mvariant.c index 1c317daf..0ae88805 100644 --- a/tests/test-mvariant.c +++ b/tests/test-mvariant.c @@ -35,6 +35,37 @@ static void test_pair(void) pair_t p; pair_init (p); + assert (pair_empty_p(p)); + assert (!pair_key_p(p)); + assert (!pair_value_p(p)); + + pair_set_key(p, 17); + assert (!pair_empty_p(p)); + assert (pair_key_p(p)); + assert (!pair_value_p(p)); + int *i = pair_get_key(p); + assert (*i == 17); + float *f = pair_get_value(p); + assert (f == NULL); + + pair_set_value(p, 42.0); + assert (!pair_empty_p(p)); + assert (!pair_key_p(p)); + assert (pair_value_p(p)); + i = pair_get_key(p); + assert (i == NULL); + f = pair_get_value(p); + assert (*f == 42.0); + + pair_set_empty(p); + assert (pair_empty_p(p)); + assert (!pair_key_p(p)); + assert (!pair_value_p(p)); + i = pair_get_key(p); + assert (i == NULL); + f = pair_get_value(p); + assert (f == NULL); + pair_clear(p); }