From: Olivier Matz Date: Fri, 8 Dec 2017 13:21:22 +0000 (+0100) Subject: test: add a testcase for dynamic logs X-Git-Tag: spdx-start~254 X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=612c6e8bd2582e5a3ee6289ec03979fb9c98cc8a test: add a testcase for dynamic logs Update the logs test to also validate the dynamic log framework. For now, also keep the old way using the static USER type. Validated with: # build/app/test --no-huge ... RTE>>logs_autotest == dynamic log types error message critical message critical message error message == static log types TESTAPP1: error message TESTAPP1: critical message TESTAPP2: critical message TESTAPP1: error message Test OK Signed-off-by: Olivier Matz --- diff --git a/test/test/test_logs.c b/test/test/test_logs.c index 24e02ef30c..425ae03cb9 100644 --- a/test/test/test_logs.c +++ b/test/test/test_logs.c @@ -16,6 +16,7 @@ #include "test.h" +/* for legacy log test */ #define RTE_LOGTYPE_TESTAPP1 RTE_LOGTYPE_USER1 #define RTE_LOGTYPE_TESTAPP2 RTE_LOGTYPE_USER2 @@ -27,10 +28,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); @@ -56,4 +58,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);