106 lines
4.8 KiB
C
106 lines
4.8 KiB
C
/**
|
|
* Тест настройки категорий отладки из аргументов командной строки
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "../lib/debug_config.h"
|
|
|
|
int main(int argc, char *argv[]) {
|
|
printf("=== Тест настройки категорий из аргументов ===\n");
|
|
printf("Запуск с аргументами: ");
|
|
for (int i = 0; i < argc; i++) {
|
|
printf("%s ", argv[i]);
|
|
}
|
|
printf("\n\n");
|
|
|
|
// Инициализация отладки
|
|
debug_config_init();
|
|
|
|
// Анализ аргументов командной строки
|
|
int debug_categories = 0;
|
|
|
|
// Если есть специфические категории, сначала отключаем все
|
|
int has_specific_categories = 0;
|
|
|
|
for (int i = 1; i < argc; i++) {
|
|
if (strcmp(argv[i], "--debug-etcp") == 0) {
|
|
has_specific_categories = 1;
|
|
} else if (strcmp(argv[i], "--debug-queue") == 0) {
|
|
has_specific_categories = 1;
|
|
} else if (strcmp(argv[i], "--debug-memory") == 0) {
|
|
has_specific_categories = 1;
|
|
} else if (strcmp(argv[i], "--debug-none") == 0) {
|
|
has_specific_categories = 1;
|
|
}
|
|
}
|
|
|
|
// Если есть специфические категории, отключаем все по умолчанию
|
|
if (has_specific_categories) {
|
|
debug_set_categories(DEBUG_CATEGORY_NONE);
|
|
debug_categories = DEBUG_CATEGORY_NONE;
|
|
}
|
|
|
|
// Теперь обрабатываем аргументы
|
|
for (int i = 1; i < argc; i++) {
|
|
if (strcmp(argv[i], "--debug-etcp") == 0) {
|
|
debug_enable_category(DEBUG_CATEGORY_ETCP);
|
|
debug_categories |= DEBUG_CATEGORY_ETCP;
|
|
printf("✅ Включена категория ETCP\n");
|
|
} else if (strcmp(argv[i], "--debug-queue") == 0) {
|
|
debug_enable_category(DEBUG_CATEGORY_LL_QUEUE);
|
|
debug_categories |= DEBUG_CATEGORY_LL_QUEUE;
|
|
printf("✅ Включена категория LL_QUEUE\n");
|
|
} else if (strcmp(argv[i], "--debug-memory") == 0) {
|
|
debug_enable_category(DEBUG_CATEGORY_MEMORY);
|
|
debug_categories |= DEBUG_CATEGORY_MEMORY;
|
|
printf("✅ Включена категория MEMORY\n");
|
|
} else if (strcmp(argv[i], "--debug-all") == 0) {
|
|
debug_set_categories(DEBUG_CATEGORY_ALL);
|
|
debug_categories = DEBUG_CATEGORY_ALL;
|
|
printf("✅ Включены все категории\n");
|
|
break; // Все категории уже включены
|
|
} else if (strcmp(argv[i], "--debug-none") == 0) {
|
|
debug_set_categories(DEBUG_CATEGORY_NONE);
|
|
debug_categories = DEBUG_CATEGORY_NONE;
|
|
printf("✅ Выключены все категории\n");
|
|
break; // Все категории уже выключены
|
|
} else if (strcmp(argv[i], "--level") == 0 && i+1 < argc) {
|
|
i++;
|
|
if (strcmp(argv[i], "error") == 0) {
|
|
debug_set_level(DEBUG_LEVEL_ERROR);
|
|
printf("✅ Установлен уровень ERROR\n");
|
|
} else if (strcmp(argv[i], "info") == 0) {
|
|
debug_set_level(DEBUG_LEVEL_INFO);
|
|
printf("✅ Установлен уровень INFO\n");
|
|
} else if (strcmp(argv[i], "debug") == 0) {
|
|
debug_set_level(DEBUG_LEVEL_DEBUG);
|
|
printf("✅ Установлен уровень DEBUG\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
printf("\n=== Тестовые сообщения ===\n");
|
|
|
|
// Сообщения от разных категорий
|
|
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Сообщение от ETCP категории");
|
|
DEBUG_INFO(DEBUG_CATEGORY_LL_QUEUE, "Сообщение от LL_QUEUE категории");
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Сообщение от MEMORY категории");
|
|
DEBUG_INFO(DEBUG_CATEGORY_CONNECTION, "Сообщение от CONNECTION категории");
|
|
DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Сообщение от CRYPTO категории");
|
|
|
|
printf("\n=== Информация о текущих настройках ===\n");
|
|
|
|
printf("Активные категории: ");
|
|
if (debug_categories & DEBUG_CATEGORY_ETCP) printf("ETCP ");
|
|
if (debug_categories & DEBUG_CATEGORY_LL_QUEUE) printf("LL_QUEUE ");
|
|
if (debug_categories & DEBUG_CATEGORY_MEMORY) printf("MEMORY ");
|
|
if (debug_categories & DEBUG_CATEGORY_CONNECTION) printf("CONNECTION ");
|
|
if (debug_categories & DEBUG_CATEGORY_CRYPTO) printf("CRYPTO ");
|
|
if (debug_categories == DEBUG_CATEGORY_ALL) printf("ALL ");
|
|
if (debug_categories == DEBUG_CATEGORY_NONE) printf("NONE ");
|
|
printf("\n");
|
|
|
|
return 0;
|
|
} |