|
lacteApp
C++17 service for Lacte hardware
|
#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 |
Definition at line 67 of file TestConsoleApp.hpp.
|
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.
|
inlineoverrideprotected |
Definition at line 156 of file TestConsoleApp.hpp.