tests CHANGE redesign mechanism to add particular tests
Define cmake function to add a test into the ctest instead of adding
particular parameters of each test into several lists.
diff --git a/tests/utests/schema/test_schema.c b/tests/utests/schema/test_schema.c
index 559b193..ffb7195 100644
--- a/tests/utests/schema/test_schema.c
+++ b/tests/utests/schema/test_schema.c
@@ -12,6 +12,8 @@
* https://opensource.org/licenses/BSD-3-Clause
*/
+#include "test_schema.h"
+
#include <stdarg.h>
#include <stddef.h>
#include <stdio.h>
@@ -20,23 +22,17 @@
#include <string.h>
-#include "../../../src/common.h"
-#include "../../../src/context.h"
-#include "../../../src/log.h"
-#include "../../../src/parser_yin.h"
-#include "../../../src/tree_schema.h"
-#include "../../../src/tree_schema_internal.h"
-#include "../../../src/xml.h"
+#include "config.h"
+#include "log.h"
+#include "parser_schema.h"
+#include "tree_schema.h"
+#if ENABLE_LOGGER_CHECKING
#define BUFSIZE 1024
char logbuf[BUFSIZE] = {0};
int store = -1; /* negative for infinite logging, positive for limited logging */
-/* set to 0 to printing error messages to stderr instead of checking them in code */
-#define ENABLE_LOGGER_CHECKING 1
-
-#if ENABLE_LOGGER_CHECKING
static void
logger(LY_LOG_LEVEL level, const char *msg, const char *path)
{
@@ -82,20 +78,34 @@
void
logbuf_clean(void)
{
+#if ENABLE_LOGGER_CHECKING
logbuf[0] = '\0';
+#endif
}
-#if ENABLE_LOGGER_CHECKING
-# define logbuf_assert(str) assert_string_equal(logbuf, str)
-#else
-# define logbuf_assert(str)
-#endif
+LY_ERR
+test_imp_clb(const char *UNUSED(mod_name), const char *UNUSED(mod_rev), const char *UNUSED(submod_name),
+ const char *UNUSED(sub_rev), void *user_data, LYS_INFORMAT *format,
+ const char **module_data, void (**free_module_data)(void *model_data, void *user_data))
+{
+ *module_data = user_data;
+ *format = LYS_IN_YANG;
+ *free_module_data = NULL;
+ return LY_SUCCESS;
+}
/**
- * INCLUDE OTHER SCHEMA TESTS
+ * DECLARE OTHER SCHEMA TESTS
*/
-#include "test_schema_common.c"
-#include "test_schema_stmts.c"
+/* test_schema_common.c */
+void test_getnext(void **state);
+void test_date(void **state);
+void test_revisions(void **state);
+void test_typedef(void **state);
+
+/* test_schema_stmts.c */
+void test_identity(void **state);
+void test_feature(void **state);
int main(void)
{
diff --git a/tests/utests/schema/macros.h b/tests/utests/schema/test_schema.h
similarity index 78%
rename from tests/utests/schema/macros.h
rename to tests/utests/schema/test_schema.h
index 4a0424f..b6f1929 100644
--- a/tests/utests/schema/macros.h
+++ b/tests/utests/schema/test_schema.h
@@ -11,8 +11,29 @@
*
* https://opensource.org/licenses/BSD-3-Clause
*/
-#ifndef TESTS_UTESTS_SCHEMA_MACROS_H_
-#define TESTS_UTESTS_SCHEMA_MACROS_H_
+#ifndef TESTS_UTESTS_SCHEMA_TEST_SCHEMA_H_
+#define TESTS_UTESTS_SCHEMA_TEST_SCHEMA_H_
+
+#include "config.h"
+#include "log.h"
+#include "parser_schema.h"
+
+/* set to 0 to printing error messages to stderr instead of checking them in code */
+#define ENABLE_LOGGER_CHECKING 1
+
+#if ENABLE_LOGGER_CHECKING
+ extern char logbuf[];
+# define logbuf_assert(str) assert_string_equal(logbuf, str)
+#else
+# define logbuf_assert(str)
+#endif
+
+void logbuf_clean(void);
+
+LY_ERR test_imp_clb(const char *UNUSED(mod_name), const char *UNUSED(mod_rev), const char *UNUSED(submod_name),
+ const char *UNUSED(sub_rev), void *user_data, LYS_INFORMAT *format,
+ const char **module_data, void (**free_module_data)(void *model_data, void *user_data));
+
#define TEST_YANG_MODULE_10(MOD_NAME, MOD_PREFIX, MOD_NS, CONTENT) \
"module "MOD_NAME" { namespace "MOD_NS"; prefix "MOD_PREFIX"; "CONTENT"}"
@@ -69,4 +90,4 @@
#define TEST_STMT_SUBSTM_ERR(CTX, RFC7950, STMT, SUBSTMT, VALUE); \
TEST_SCHEMA_ERR(CTX, RFC7950, 0, "inv", STMT" test {"SUBSTMT" "VALUE";}", "Invalid keyword \""SUBSTMT"\" as a child of \""STMT"\". Line number 1.");
-#endif /* TESTS_UTESTS_SCHEMA_MACROS_H_ */
+#endif /* TESTS_UTESTS_SCHEMA_TEST_SCHEMA_H_ */
diff --git a/tests/utests/schema/test_schema_common.c b/tests/utests/schema/test_schema_common.c
index 9b2bc6b..1623905 100644
--- a/tests/utests/schema/test_schema_common.c
+++ b/tests/utests/schema/test_schema_common.c
@@ -20,7 +20,14 @@
#include <string.h>
-static void
+#include "context.h"
+#include "log.h"
+#include "tree_schema.h"
+#include "tree_schema_internal.h"
+
+#include "test_schema.h"
+
+void
test_getnext(void **state)
{
*state = test_getnext;
@@ -138,7 +145,7 @@
*state = NULL;
ly_ctx_destroy(ctx, NULL);
}
-static void
+void
test_date(void **state)
{
*state = test_date;
@@ -169,7 +176,7 @@
*state = NULL;
}
-static void
+void
test_revisions(void **state)
{
(void) state; /* unused */
@@ -198,17 +205,7 @@
LY_ARRAY_FREE(revs);
}
-LY_ERR test_imp_clb(const char *UNUSED(mod_name), const char *UNUSED(mod_rev), const char *UNUSED(submod_name),
- const char *UNUSED(sub_rev), void *user_data, LYS_INFORMAT *format,
- const char **module_data, void (**free_module_data)(void *model_data, void *user_data))
-{
- *module_data = user_data;
- *format = LYS_IN_YANG;
- *free_module_data = NULL;
- return LY_SUCCESS;
-}
-
-static void
+void
test_typedef(void **state)
{
*state = test_typedef;
diff --git a/tests/utests/schema/test_schema_stmts.c b/tests/utests/schema/test_schema_stmts.c
index eab21c9..a588e42 100644
--- a/tests/utests/schema/test_schema_stmts.c
+++ b/tests/utests/schema/test_schema_stmts.c
@@ -20,10 +20,14 @@
#include <string.h>
-#include "macros.h"
+#include "log.h"
+#include "context.h"
+#include "test_schema.h"
+#include "tree_schema.h"
+#include "test_schema.h"
-static void
+void
test_identity(void **state)
{
*state = test_identity;
@@ -136,7 +140,7 @@
}
-static void
+void
test_feature(void **state)
{
*state = test_feature;