new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / tests / test_shared.c
diff --git a/src/tests/test_shared.c b/src/tests/test_shared.c
new file mode 100644 (file)
index 0000000..3b907a5
--- /dev/null
@@ -0,0 +1,66 @@
+/* Copyright (C) 2014 Trend Micro Inc.
+ * All rights reserved.
+ *
+ * This program is a free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General Public
+ * License (version 2) as published by the FSF - Free Software
+ * Foundation
+ */
+
+#include <check.h>
+#include <stdlib.h>
+
+#include "../headers/custom_output_search.h"
+
+Suite *test_suite(void);
+
+
+START_TEST(test_searchAndReplace)
+{
+    int i;
+    const char *tests[][4] = {
+        {"testMe", "nomatch", "", "testMe"},
+        {"test me", "ME", "me", "test me"},
+        {"test me", "me", "ME", "test ME"},
+        {"testMe", "test", "Tested", "TestedMe"},
+        {"Metest", "test", "Tested", "MeTested"},
+        {"A B CTeStD E F", "TeSt", "tEsT", "A B CtEsTD E F"},
+        {"TeStA B CTeStD E F", "TeSt", "tEsT", "tEsTA B CtEsTD E F"},
+        {"TeSt TeStA B CTeStD E F", "TeSt", "tEsT", "tEsT tEsTA B CtEsTD E F"},
+        {"A B CTeStD E FTeSt", "TeSt", "tEsT", "A B CtEsTD E FtEsT"},
+        {"A B CTeStD E FTeSt TeSt", "TeSt", "tEsT", "A B CtEsTD E FtEsT tEsT"},
+        {"TeSt++ TeSt++A B CTeSt++D E F", "TeSt++", "tEsT", "tEsT tEsTA B CtEsTD E F"},
+        {"A B CTeStD E FTeSt TeSt", "TeSt", "tEsT++", "A B CtEsT++D E FtEsT++ tEsT++"},
+        {NULL, NULL, NULL, NULL}
+    };
+
+    for (i = 0; tests[i][0] != NULL ; i++) {
+        char *result = searchAndReplace(tests[i][0], tests[i][1], tests[i][2]);
+        ck_assert_str_eq(result, tests[i][3]);
+        free(result);
+    }
+}
+END_TEST
+
+Suite *test_suite(void)
+{
+    Suite *s = suite_create("shared");
+
+    TCase *tc_searchAndReplace = tcase_create("searchAndReplace");
+    tcase_add_test(tc_searchAndReplace, test_searchAndReplace);
+
+    suite_add_tcase(s, tc_searchAndReplace);
+
+    return (s);
+}
+
+int main(void)
+{
+    Suite *s = test_suite();
+    SRunner *sr = srunner_create(s);
+    srunner_run_all(sr, CK_NORMAL);
+    int number_failed = srunner_ntests_failed(sr);
+    srunner_free(sr);
+
+    return ((number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE);
+}