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