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

/**
* Тест новой системы отладки с буферизованным выводом
*/
#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;
}