lacteApp
C++17 service for Lacte hardware
Loading...
Searching...
No Matches
TestConsoleApp.hpp File Reference

TestConsoleApp: минимальная инстанциация ConsoleApp<Derived>, используемая ConsoleAppInstancePolicyTest.cpp (внутри процесса, через fork() — без execve()). More...

#include <chrono>
#include <filesystem>
#include <fstream>
#include <memory>
#include <stdexcept>
#include <string>
#include <thread>
#include <tuple>
#include "AppContext.h"
#include "ConsoleApp.hpp"
Include dependency graph for TestConsoleApp.hpp:

Go to the source code of this file.

Classes

class  TestConsoleApp

Namespaces

namespace  test_console_app_schema
 Минимальная самодостаточная схема, объявляющая ровно собственные REQUIRED FIELDS AppContext (см.

Functions

auto make_test_console_app_config (const std::string &app_name, const std::string &log_dir, const int port_offset) -> std::unique_ptr< insitech::config::ConfigStore<> >
 Строит ConfigStore только со схемой (без файла — см.

Variables

constexpr insitech::config::FieldSpec< const char * > test_console_app_schema::K_APP_NAME
constexpr insitech::config::FieldSpec< const char * > test_console_app_schema::K_APP_DESCRIPTION
constexpr insitech::config::FieldSpec< const char * > test_console_app_schema::K_APP_DIR
constexpr insitech::config::FieldSpec< const char * > test_console_app_schema::K_BUS_MULTICAST_GROUP
constexpr insitech::config::FieldSpec< int64_t > test_console_app_schema::K_BUS_MULTICAST_PORT
constexpr insitech::config::FieldSpec< int64_t > test_console_app_schema::K_SHARED_BUS_ADDRESS
constexpr insitech::config::FieldSpec< const char * > test_console_app_schema::K_LOG_DIR
constexpr insitech::config::FieldSpec< int64_t > test_console_app_schema::K_LOG_MIN_LEVEL
constexpr auto test_console_app_schema::K_ALL_FIELDS
constexpr int K_TEST_CONSOLE_APP_BASE_MULTICAST_PORT = 47800

Detailed Description

TestConsoleApp: минимальная инстанциация ConsoleApp<Derived>, используемая ConsoleAppInstancePolicyTest.cpp (внутри процесса, через fork() — без execve()).

Это СОБСТВЕННАЯ копия km_lacte — у собственного пакета console_app из coffeboost есть эквивалентный фикстур того же имени/формы для ЕГО СОБСТВЕННЫХ тестов (console_app_reboot_helper.cpp/ ConsoleAppRebootTest.cpp/ConsoleAppCrashTest.cpp, которым также нужен РЕАЛЬНЫЙ отдельный бинарник для execv() — см. файловый doc-комментарий того репозитория), но опубликованный через conan пакет не экспортирует тестовые фикстуры, поэтому собственному тесту этого проекта нужна собственная копия, а не обращение в исходники coffeboost.

Definition in file TestConsoleApp.hpp.

Function Documentation

◆ make_test_console_app_config()

auto make_test_console_app_config ( const std::string & app_name,
const std::string & log_dir,
const int port_offset ) -> std::unique_ptr< insitech::config::ConfigStore<> >
inline

Строит ConfigStore только со схемой (без файла — см.

шаблонный конструктор ConfigStore) для одного тестового процесса, с выбранными вызывающей стороной app_name/log_dir и СОБСТВЕННЫМ отдельным multicast-портом (чтобы несколько сосуществующих экземпляров — например, два конкурирующих "instances", либо клиент-запросчик — никогда не рисковали реальным конфликтом при UDP bind ни друг с другом, ни с реальным продакшн-экземпляром).

Возвращает unique_ptrConfigStore нельзя ни копировать, НИ перемещать (см. его собственный = deleteд конструктор копирования), поэтому его нельзя вернуть по значению.

Definition at line 172 of file TestConsoleApp.hpp.

Variable Documentation

◆ K_TEST_CONSOLE_APP_BASE_MULTICAST_PORT

int K_TEST_CONSOLE_APP_BASE_MULTICAST_PORT = 47800
inlineconstexpr

Definition at line 65 of file TestConsoleApp.hpp.