diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/dlt_user.c | 2 | ||||
-rw-r--r-- | src/tests/dlt-test-user.c | 50 |
2 files changed, 51 insertions, 1 deletions
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index ef0f36f..ca7a56d 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -1371,7 +1371,7 @@ DltReturnValue dlt_user_log_write_start_id(DltContext *handle, DltContextData *l log->size = 0; /* check log levels */ - if (handle->log_level_ptr != NULL && (loglevel <= (int) *(handle->log_level_ptr)) && (loglevel != DLT_LOG_OFF)) + if (dlt_user_is_logLevel_enabled(handle, loglevel) == DLT_RETURN_TRUE) { /* In non-verbose mode, insert message id */ if (dlt_user.verbose_mode == 0) diff --git a/src/tests/dlt-test-user.c b/src/tests/dlt-test-user.c index 16479a2..9a57573 100644 --- a/src/tests/dlt-test-user.c +++ b/src/tests/dlt-test-user.c @@ -78,6 +78,18 @@ #define DLT_TEST_NUM_CONTEXT 9 +/* LogLevel string representation */ +static const char *loglevelstr[DLT_LOG_MAX] = +{ + "DLT_LOG_OFF", + "DLT_LOG_FATAL", + "DLT_LOG_ERROR", + "DLT_LOG_WARN", + "DLT_LOG_INFO", + "DLT_LOG_DEBUG", + "DLT_LOG_VERBOSE" +}; + /* Test functions... */ /* for macro interface */ @@ -478,6 +490,7 @@ int test5m(void) { char buffer[32]; int num; + int i; void *ptr = malloc(sizeof(int)); @@ -510,6 +523,26 @@ int test5m(void) DLT_LOG(context_macro_test[4],DLT_LOG_INFO,DLT_STRING("Next line: DLT_LOG_PTR")); DLT_LOG(context_macro_test[4],DLT_LOG_INFO,DLT_PTR(ptr)); + + DLT_LOG(context_macro_test[4],DLT_LOG_INFO,DLT_STRING("Next lines: DLT_IS_LOG_LEVEL_ENABLED")); + for (i = DLT_LOG_FATAL; i < DLT_LOG_MAX; i++) + { + if (DLT_IS_LOG_LEVEL_ENABLED(context_macro_test[4],i)) + { + DLT_LOG(context_info, + DLT_LOG_INFO, + DLT_STRING("Loglevel is enabled: "), + DLT_STRING(loglevelstr[i])); + } + else + { + DLT_LOG(context_info, + DLT_LOG_INFO, + DLT_STRING("Loglevel is disabled: "), + DLT_STRING(loglevelstr[i])); + } + } + /* wait 2 second before next test */ sleep(2); DLT_LOG(context_info,DLT_LOG_INFO,DLT_STRING("Test5: (Macro IF) finished")); @@ -990,6 +1023,8 @@ int test5f(void) { char buffer[32]; int num; + int i; + char log[DLT_USER_BUF_MAX_SIZE]; for(num=0;num<32;num++) { @@ -1018,6 +1053,21 @@ int test5f(void) dlt_log_string(&(context_function_test[4]),DLT_LOG_INFO,"Next line: dlt_log_string_uint()"); dlt_log_string_uint(&(context_function_test[4]), DLT_LOG_INFO,"String output: ", 42); + dlt_log_string(&(context_function_test[4]),DLT_LOG_INFO, "Next lines: dlt_user_is_logLevel_enabled"); + for (i = DLT_LOG_FATAL; i < DLT_LOG_MAX; i++) + { + if (dlt_user_is_logLevel_enabled(&(context_function_test[4]),i) == DLT_RETURN_TRUE) + { + snprintf(log, DLT_USER_BUF_MAX_SIZE, "Loglevel is enabled: %s", loglevelstr[i]); + dlt_log_string(&(context_function_test[4]),DLT_LOG_INFO, log); + } + else + { + snprintf(log, DLT_USER_BUF_MAX_SIZE, "Loglevel is disabled: %s", loglevelstr[i]); + dlt_log_string(&(context_function_test[4]),DLT_LOG_INFO, log); + } + } + /* wait 2 second before next test */ sleep(2); dlt_log_string(&context_info,DLT_LOG_INFO,"Test5: (Function IF) finished"); |