[dpdk-dev,2/2] test: add a testcase for dynamic logs
Checks
Commit Message
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 <olivier.matz@6wind.com>
---
test/test/test_logs.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 52 insertions(+), 2 deletions(-)
@@ -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);