From 86d7b7aed52c66d12f361a3ee8dc7a0eb419bdbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Tue, 8 Dec 2015 23:38:02 +0100 Subject: degesch: add a unit test for message wrapping algo --- degesch.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'degesch.c') diff --git a/degesch.c b/degesch.c index 14e2c40..2977e09 100644 --- a/degesch.c +++ b/degesch.c @@ -11197,6 +11197,42 @@ init_poller_events (struct app_context *ctx) ctx->autoaway_tmr.user_data = ctx; } +// --- Tests ------------------------------------------------------------------- + +// The application is quite monolithic and can only be partially unit-tested + +#ifdef TESTING + +static void +test_wrapping (void) +{ + struct str_vector v; + str_vector_init (&v); + + static const char *message = " foo bar foobar fóóbárbáz"; + static const char *split[] = + { " foo", "bar", "foob", "ar", "fó", "ób", "árb", "áz" }; + + hard_assert (wrap_message (message, 4, &v, NULL)); + hard_assert (v.len == N_ELEMENTS (split)); + for (size_t i = 0; i < N_ELEMENTS (split); i++) + hard_assert (!strcmp (v.vector[i], split[i])); + + str_vector_free (&v); +} + +int +main (int argc, char *argv[]) +{ + struct test test; + test_init (&test, argc, argv); + test_add_simple (&test, "/wrapping", NULL, test_wrapping); + return test_run (&test); +} + +#define main main_shadowed +#endif // TESTING + // --- Main program ------------------------------------------------------------ static const char *g_logo[] = -- cgit v1.2.3