@@ -4,12 +4,17 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
+#include <stdarg.h>
#include <odp.h>
#include <CUnit/Basic.h>
#define DEFAULT_MSG_POOL_SIZE (4*1024*1024)
#define DEFAULT_MSG_SIZE (8)
+int replacement_logging_used;
+
+static int odp_init_log(odp_log_level_e level , const char *fmt, ...);
+
static void test_odp_init_global(void)
{
int status;
@@ -20,8 +25,27 @@ static void test_odp_init_global(void)
CU_ASSERT(status == 0);
}
+static void test_odp_init_global_replace_log(void)
+{
+ int status;
+ struct odp_init_t init_data;
+
+ init_data.log_fn = &odp_init_log;
+
+ replacement_logging_used = 0;
+
+ status = odp_init_global(&init_data, NULL);
+ CU_ASSERT_FATAL(status == 0);
+
+ CU_ASSERT_TRUE(replacement_logging_used);
+
+ status = odp_term_global();
+ CU_ASSERT(status == 0);
+}
+
CU_TestInfo test_odp_init[] = {
{"test_odp_init_global", test_odp_init_global},
+ {"replace log", test_odp_init_global_replace_log},
CU_TEST_INFO_NULL,
};
@@ -50,3 +74,19 @@ int main(void)
return ret;
}
+
+int odp_init_log(odp_log_level_e level __attribute__((unused)),
+ const char *fmt, ...)
+{
+ va_list args;
+ int r;
+
+ /* just set a flag to be sure the replacement fn was used */
+ replacement_logging_used = 1;
+
+ va_start(args, fmt);
+ r = vfprintf(stderr, fmt, args);
+ va_end(args);
+
+ return r;
+}
Add a test for the ability to replace the logging function via init_global Signed-off-by: Mike Holmes <mike.holmes@linaro.org> --- test/validation/odp_init.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+)