Проблема: я пытаюсь выполнить задание, в котором GTest используется в качестве среды тестирования. Код определяет «общий» файл, в котором определены исключения для системы, которые я использую в коде как таковые:
throw ExceptionType::OUT_OF_RANGE;
Однако при запуске GTest я получаю следующее сообщение:
unknown file: Failure
Unknown C++ exception thrown in test body.
Мои вопросы:
Как мне запустить gdb с платформой GTest, чтобы отследить эту ошибку, и связана ли она с определенным исключением в коде или чем-то еще.< /p>
Этот тест не пройден:
/** Test that matrix initialization works as expected */
TEST(StarterTest, InitializationTest) {
auto matrix = std::make_unique(2, 2);
// Source contains too few elements
std::vector source0(3);
std::iota(source0.begin(), source0.end(), 0);
EXPECT_TRUE(ThrowsBustubException([&]() { matrix->FillFrom(source0); }, ExceptionType::OUT_OF_RANGE));
// Source contains too many elements
std::vector source1(5);
std::iota(source1.begin(), source1.end(), 0);
EXPECT_TRUE(ThrowsBustubException([&]() { matrix->FillFrom(source1); }, ExceptionType::OUT_OF_RANGE));
// Just right
std::vector source2(4);
std::iota(source2.begin(), source2.end(), 0);
EXPECT_NO_THROW(matrix->FillFrom(source2));
for (int i = 0; i < matrix->GetRowCount(); i++) {
for (int j = 0; j < matrix->GetColumnCount(); j++) {
const int expected = (i * matrix->GetColumnCount()) + j;
EXPECT_EQ(expected, matrix->GetElement(i, j));
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/691 ... le-failure