From 3a1174d2f08b704775111ae70cc6c3fea4343719 Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Thu, 7 Dec 2017 14:36:52 +0100 Subject: [PATCH] test: add a testcase for dynamic logs Signed-off-by: Olivier Matz --- test/test/test_logs.c | 54 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/test/test/test_logs.c b/test/test/test_logs.c index d6e4973a4d..0c7397108d 100644 --- a/test/test/test_logs.c +++ b/test/test/test_logs.c @@ -45,6 +45,7 @@ #include "test.h" +/* for legacy log test */ #define RTE_LOGTYPE_TESTAPP1 RTE_LOGTYPE_USER1 #define RTE_LOGTYPE_TESTAPP2 RTE_LOGTYPE_USER2 @@ -56,10 +57,11 @@ * - Set log level. * - Send logs with different types and levels, some should not be displayed. */ - static int -test_logs(void) +test_legacy_logs(void) { + printf("== static log types\n"); + /* set logtype level low to so we can test global level */ rte_log_set_level(RTE_LOGTYPE_TESTAPP1, RTE_LOG_DEBUG); rte_log_set_level(RTE_LOGTYPE_TESTAPP2, RTE_LOG_DEBUG); @@ -85,4 +87,52 @@ test_logs(void) return 0; } +static int +test_logs(void) +{ + int logtype1, logtype2; + int ret; + + printf("== dynamic log types\n"); + + logtype1 = rte_log_register("logtype1"); + if (logtype1 < 0) { + printf("Cannot register logtype1\n"); + return -1; + } + logtype2 = rte_log_register("logtype2"); + if (logtype2 < 0) { + printf("Cannot register logtype2\n"); + return -1; + } + + /* set logtype level low to so we can test global level */ + rte_log_set_level(logtype1, RTE_LOG_DEBUG); + rte_log_set_level(logtype2, RTE_LOG_DEBUG); + + /* log in error level */ + rte_log_set_global_level(RTE_LOG_ERR); + rte_log(RTE_LOG_ERR, logtype1, "error message\n"); + rte_log(RTE_LOG_CRIT, logtype1, "critical message\n"); + + /* log in critical level */ + rte_log_set_global_level(RTE_LOG_CRIT); + rte_log(RTE_LOG_ERR, logtype2, "error message (not displayed)\n"); + rte_log(RTE_LOG_CRIT, logtype2, "critical message\n"); + + /* bump up single log type level above global to test it */ + rte_log_set_level(logtype2, RTE_LOG_EMERG); + + /* log in error level */ + rte_log_set_global_level(RTE_LOG_ERR); + rte_log(RTE_LOG_ERR, logtype1, "error message\n"); + rte_log(RTE_LOG_ERR, logtype2, "error message (not displayed)\n"); + + ret = test_legacy_logs(); + if (ret < 0) + return ret; + + return 0; +} + REGISTER_TEST_COMMAND(logs_autotest, test_logs); -- 2.20.1