Ошибка Doctest в основной функции ⇐ C++
-
Гость
Ошибка Doctest в основной функции
Я пытаюсь настроить модульное тестирование для проекта общей библиотеки, над которым я недавно работал. однако, как следует из названия, я получаю ошибки при использовании doctest.
у меня есть следующий код
#define DOCTEST_CONFIG_IMPLEMENT #include // vcpkg // ... int main(int argc, char* argv[]) { // Доктест doctest::Контекст ctx; ctx.setOption("прервать-после", 5); // по умолчанию — остановка после 5 неудачных утверждений ctx.applyCommandLine(argc, argv); // применяем командную строку - argc/argv ctx.setOption("без перерывов", true); // переопределить - не прерывать работу отладчика int res = ctx.run(); // запускаем тестовые случаи, если только не используется --no-run if(ctx.shouldExit()) // флаги запроса (и --exit) зависят от этого вернуть разрешение; пытаться { ПРОВЕРИТЬ((SDL_Init(SDL_INIT_EVERYTHING) == 0)); // SDL_WINDOW_VULKAN НЕ ПРОЙДЕТ, НЕТ ДРАЙВЕРА? Окно SDL_Window* = SDL_CreateWindow("Тестовое окно", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, 0U); если (окно == nullptr) FAIL (SDL_GetError()); //controller = std::make_unique(window); SDL_ShowWindow (окно); std::this_thread::sleep_for(std::chrono::секунды(1)); SDL_DestroyWindow (окно); SDL_Выход(); } catch (const std::Exception& error) { НЕУДАЧА(ошибка.что()); } вернуть разрешение; } и я получаю ошибку сегмента CHECK, что приводит меня к этой строке кода в doctest.h:
AssertData::AssertData(assertType::Enum at, const char* file, int line, const char* expr, const char* тип_исключения, const StringContains& строка_исключения) : m_test_case(g_cs->currentTest), m_at(at), m_file(file), m_line(line), m_expr(expr), //
Я пытаюсь настроить модульное тестирование для проекта общей библиотеки, над которым я недавно работал. однако, как следует из названия, я получаю ошибки при использовании doctest.
у меня есть следующий код
#define DOCTEST_CONFIG_IMPLEMENT #include // vcpkg // ... int main(int argc, char* argv[]) { // Доктест doctest::Контекст ctx; ctx.setOption("прервать-после", 5); // по умолчанию — остановка после 5 неудачных утверждений ctx.applyCommandLine(argc, argv); // применяем командную строку - argc/argv ctx.setOption("без перерывов", true); // переопределить - не прерывать работу отладчика int res = ctx.run(); // запускаем тестовые случаи, если только не используется --no-run if(ctx.shouldExit()) // флаги запроса (и --exit) зависят от этого вернуть разрешение; пытаться { ПРОВЕРИТЬ((SDL_Init(SDL_INIT_EVERYTHING) == 0)); // SDL_WINDOW_VULKAN НЕ ПРОЙДЕТ, НЕТ ДРАЙВЕРА? Окно SDL_Window* = SDL_CreateWindow("Тестовое окно", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, 0U); если (окно == nullptr) FAIL (SDL_GetError()); //controller = std::make_unique(window); SDL_ShowWindow (окно); std::this_thread::sleep_for(std::chrono::секунды(1)); SDL_DestroyWindow (окно); SDL_Выход(); } catch (const std::Exception& error) { НЕУДАЧА(ошибка.что()); } вернуть разрешение; } и я получаю ошибку сегмента CHECK, что приводит меня к этой строке кода в doctest.h:
AssertData::AssertData(assertType::Enum at, const char* file, int line, const char* expr, const char* тип_исключения, const StringContains& строка_исключения) : m_test_case(g_cs->currentTest), m_at(at), m_file(file), m_line(line), m_expr(expr), //
Мобильная версия