From 968ab6f42ecc7bb2d2842dd4d0e5bc1b215497ff Mon Sep 17 00:00:00 2001 From: Thomas Harning Jr Date: Sat, 16 Feb 2008 01:41:43 -0500 Subject: [PATCH] tests: Added SimpleFilter test ensuring that 'next' is called --- tests/src/filter.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/tests/src/filter.c b/tests/src/filter.c index af84808..6918a98 100644 --- a/tests/src/filter.c +++ b/tests/src/filter.c @@ -29,8 +29,10 @@ START_TEST(test_SimpleFilter_action_dispatch) { mark_point(); /* Test for invalid dispatch for unknown mode */ SimpleFilter_action(pf, -1, NULL, action_unaltered_next, pf); + /* Test passthrough of NULL functions */ + f.onWrite = NULL; + SimpleFilter_action(pf, FILTER_WRITE, NULL, action_unaltered_next, pf); f.onWrite = action_good; - mark_point(); SimpleFilter_action(pf, FILTER_WRITE, NULL, action_altered_next, pf); f.onWrite = action_bad; f.onWriteComplete = action_good; @@ -47,12 +49,33 @@ START_TEST(test_SimpleFilter_action_dispatch) { } END_TEST +/* callback that ensures that 'next' is called by assume that the nextData ptr is a *int and sets it to the mode value */ +static void action_mark_called(void* nextData, FilterMode mode, DataItem *item) { + int *data = (int*)nextData; + *data = mode; +} + +START_TEST(test_SimpleFilter_action_next) { + SimpleFilter f = { + NULL, + action_bad, + action_bad, + action_bad + }; + SimpleFilter *pf = &f; + int data = 0; + SimpleFilter_action(pf, FILTER_WRITE, NULL, action_mark_called, &data); + fail_unless(data == FILTER_WRITE, "The 'next' action was not called"); +} +END_TEST + Suite* new_filter_suite() { - Suite *s = suite_create ("filter"); + Suite *s = suite_create("filter"); /* Core test case */ - TCase *tc_SimpleFilter = tcase_create ("SimpleFilter"); - tcase_add_test (tc_SimpleFilter, test_SimpleFilter_action_dispatch); - suite_add_tcase (s, tc_SimpleFilter); + TCase *tc_SimpleFilter = tcase_create("SimpleFilter"); + tcase_add_test(tc_SimpleFilter, test_SimpleFilter_action_dispatch); + tcase_add_test(tc_SimpleFilter, test_SimpleFilter_action_next); + suite_add_tcase(s, tc_SimpleFilter); return s; } -- 2.11.4.GIT