/* products derived from this software without specific prior written */
/* permission. */
/* */
-/* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND */
-/* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
-/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
-/* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS */
-/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR */
-/* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF */
-/* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS */
-/* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
-/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) */
-/* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF */
-/* THE POSSIBILITY OF SUCH DAMAGE. */
+/* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS */
+/* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED */
+/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
+/* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY */
+/* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
+/* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS */
+/* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
+/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, */
+/* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */
+/* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
+/* POSSIBILITY OF SUCH DAMAGE. */
+/* */
+/* Copyright (c) 2006-2008 the Authors */
+/* see AUTHORS and source files for details */
/******************************************************************************/
/*
}
bool ok = true;
+ filter_context_t context;
+ filter_context_prepare(&context, NULL);
+
while (eol < end) {
char *neol = memchr(eol, '\n', end - eol);
if (neol == NULL) {
printf(" test %s: %s\n", Name, __test ? "SUCCESS" : "FAILED"); \
ok = ok && __test; \
} while (0)
- TEST(filter->name, filter_test(filter, &query, result));
+ TEST(filter->name, filter_test(filter, &query, &context, result));
eol = neol + 1;
+
}
+ filter_context_wipe(&context);
return ok;
}
// FILTER(greylist2);
#undef FILTER
+ filter_context_t context;
+ filter_context_prepare(&context, NULL);
+
/* Test greylist */
- TEST("greylisted", filter_test(greylist1, &q1, HTK_GREYLIST));
- TEST("too_fast", filter_test(greylist1, &q1, HTK_GREYLIST));
+ TEST("greylisted", filter_test(greylist1, &q1, &context, HTK_GREYLIST));
+ TEST("too_fast", filter_test(greylist1, &q1, &context, HTK_GREYLIST));
sleep(5);
- TEST("too_slow", filter_test(greylist1, &q1, HTK_GREYLIST));
+ TEST("too_slow", filter_test(greylist1, &q1, &context, HTK_GREYLIST));
sleep(2);
- TEST("whitelisted", filter_test(greylist1, &q1, HTK_WHITELIST));
- TEST("other_greylisted", filter_test(greylist1, &q2, HTK_GREYLIST));
- TEST("auto_whitelisted", filter_test(greylist1, &q1, HTK_WHITELIST));
- TEST("other_auto_whitelisted", filter_test(greylist1, &q2, HTK_WHITELIST));
- TEST("greylisted", filter_test(greylist1, &q3, HTK_GREYLIST));
+ TEST("whitelisted", filter_test(greylist1, &q1, &context, HTK_WHITELIST));
+ TEST("other_greylisted", filter_test(greylist1, &q2, &context, HTK_GREYLIST));
+ TEST("auto_whitelisted", filter_test(greylist1, &q1, &context, HTK_WHITELIST));
+ TEST("other_auto_whitelisted", filter_test(greylist1, &q2, &context, HTK_WHITELIST));
+ TEST("greylisted", filter_test(greylist1, &q3, &context, HTK_GREYLIST));
sleep(10);
- TEST("cleanup", filter_test(greylist1, &q1, HTK_GREYLIST));
+ TEST("cleanup", filter_test(greylist1, &q1, &context, HTK_GREYLIST));
+ filter_context_wipe(&context);
return ok;
}
#define RM(File) \
snprintf(path, FILENAME_MAX, "%s/%s", basepath, File); \
unlink(path);
-// RM("test1_greylist.db");
-// RM("test1_whitelist.db");
+ RM("test1_greylist.db");
+ RM("test1_whitelist.db");
RM("test2_greylist.db");
RM("test2_whitelist.db");
#undef RM