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

#include <TestConsoleApp.hpp>

Inherits insitech::ConsoleApp< TestConsoleApp >.

Public Member Functions

auto run_impl () const -> int
 Используется ТОЛЬКО ConsoleAppCrashTest.cpp, чтобы прогнать собственный механизм ConsoleApp по логированию крашей/автоперезапуску (SIGABRT/SIGSEGV через StaticSignalHandler(), необработанное исключение через TerminateHandler()) на РЕАЛЬНОМ процессе — так же, как ConsoleAppRebootTest.cpp уже делает для RequestReboot().

Protected Member Functions

void user_signal_handler (int) override

Detailed Description

Definition at line 67 of file TestConsoleApp.hpp.

Member Function Documentation

◆ run_impl()

auto TestConsoleApp::run_impl ( ) const -> int
inlinenodiscard

Используется ТОЛЬКО ConsoleAppCrashTest.cpp, чтобы прогнать собственный механизм ConsoleApp по логированию крашей/автоперезапуску (SIGABRT/SIGSEGV через StaticSignalHandler(), необработанное исключение через TerminateHandler()) на РЕАЛЬНОМ процессе — так же, как ConsoleAppRebootTest.cpp уже делает для RequestReboot().

Полностью управляется переменными окружения (почему именно так — см. обоснование execv() в файловом doc-комментарии console_app_reboot_helper.cpp: они без изменений переживают перезапуск этого ЖЕ САМОГО бинарника через execv()): TEST_CONSOLE_APP_CRASH_MODE - "abort" (напрямую вызывает SIGABRT), "segv" (реальная запись по нулевому указателю, вызывает SIGSEGV), "throw" (необработанное исключение в отсоединённом (detached) фоновом потоке, попадающее в TerminateHandler() — а НЕ в StaticSignalHandler()/m_signum_ вообще), либо "always" (то же самое, что "abort", но полностью игнорирует TEST_CONSOLE_APP_CRASH_ MARKER — крашится на КАЖДОМ запуске, чтобы проверить сам предел crash-loop). Не задано: краша нет, тот же цикл ожидания, что и до появления этого механизма. TEST_CONSOLE_APP_CRASH_MARKER - путь к файлу, который этот процесс создаёт при ПЕРВОМ краше; режим, отличный от "always", крашится только пока этого файла ещё не существует — это позволяет тесту утверждать "он упал ровно один раз, автоперезапустился, и перезапущенный экземпляр работает нормально", вместо бесконечного crash-loop.

Definition at line 106 of file TestConsoleApp.hpp.

◆ user_signal_handler()

void TestConsoleApp::user_signal_handler ( int )
inlineoverrideprotected

Definition at line 156 of file TestConsoleApp.hpp.


The documentation for this class was generated from the following file: