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