You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
4.1 KiB
89 lines
4.1 KiB
/** |
|
* Тест новой системы отладки с буферизованным выводом |
|
*/ |
|
|
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
#include "../lib/debug_config.h" |
|
#include "../lib/u_async.h" |
|
|
|
int main() { |
|
printf("=== Тест новой системы отладки ===\n"); |
|
|
|
// Инициализация отладки |
|
debug_config_init(); |
|
|
|
// Тест 1: Базовые уровни отладки |
|
printf("\n1. Базовые уровни отладки:\n"); |
|
debug_set_level(DEBUG_LEVEL_TRACE); |
|
debug_enable_timestamp(1); |
|
debug_enable_function_name(1); |
|
debug_enable_file_line(1); |
|
debug_enable_color(1); |
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Тест ERROR сообщения"); |
|
DEBUG_WARN(DEBUG_CATEGORY_ETCP, "Тест WARN сообщения"); |
|
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Тест INFO сообщения"); |
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "Тест DEBUG сообщения"); |
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "Тест TRACE сообщения"); |
|
|
|
// Тест 2: Разные категории |
|
printf("\n2. Разные категории отладки:\n"); |
|
debug_set_level(DEBUG_LEVEL_INFO); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_LL_QUEUE, "Сообщение от ll_queue"); |
|
DEBUG_INFO(DEBUG_CATEGORY_CONNECTION, "Сообщение от connection"); |
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Сообщение от memory"); |
|
DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Сообщение от crypto"); |
|
|
|
// Тест 3: Форматирование с аргументами |
|
printf("\n3. Форматирование с аргументами:\n"); |
|
int test_value = 42; |
|
const char* test_string = "тестовая строка"; |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Значение: %d, строка: %s", test_value, test_string); |
|
DEBUG_DEBUG(DEBUG_CATEGORY_MEMORY, "Размер буфера: %zu, флаг: %d", (size_t)1024, 1); |
|
|
|
// Тест 4: Включение/выключение категорий |
|
printf("\n4. Выборочные категории:\n"); |
|
debug_disable_category(DEBUG_CATEGORY_ALL); |
|
debug_enable_category(DEBUG_CATEGORY_ETCP); |
|
debug_enable_category(DEBUG_CATEGORY_LL_QUEUE); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Это должно выводиться (ETCP)"); |
|
DEBUG_INFO(DEBUG_CATEGORY_LL_QUEUE, "Это должно выводиться (LL_QUEUE)"); |
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Это НЕ должно выводиться (MEMORY отключена)"); |
|
|
|
// Тест 5: Разные уровни для разных категорий |
|
printf("\n5. Уровни по категориям:\n"); |
|
debug_set_level(DEBUG_LEVEL_ERROR); // Глобальный уровень |
|
// Note: debug_set_category_level не существует в новой системе |
|
debug_set_level(DEBUG_LEVEL_DEBUG); // Устанавливаем DEBUG для всех |
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "ERROR для ETCP"); |
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "DEBUG для ETCP (должен выводиться)"); |
|
DEBUG_INFO(DEBUG_CATEGORY_LL_QUEUE, "INFO для LL_QUEUE (должен выводиться)"); |
|
DEBUG_DEBUG(DEBUG_CATEGORY_LL_QUEUE, "DEBUG для LL_QUEUE (должен выводиться)"); |
|
|
|
// Тест 6: Без цветов и метаданных |
|
printf("\n6. Минималистичный вывод:\n"); |
|
debug_enable_color(0); |
|
debug_enable_timestamp(0); |
|
debug_enable_function_name(0); |
|
debug_enable_file_line(0); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Минималистичное сообщение"); |
|
|
|
// Тест 7: Возврат к полному формату |
|
printf("\n7. Полный формат снова:\n"); |
|
debug_enable_color(1); |
|
debug_enable_timestamp(1); |
|
debug_enable_function_name(1); |
|
debug_enable_file_line(1); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Полное сообщение с метаданными"); |
|
|
|
printf("\n=== Тест завершен ===\n"); |
|
return 0; |
|
} |