Соответствующий номер строки в ожидании Google Death Test - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь сопоставить номер строки в тесте на смерть, но не могу заставить работать регулярное выражение. Следующие работы:

EXPECT_DEATH(run_test(), "70");

Но следующие не:

EXPECT_DEATH(run_test(), "\\\\d\\\\d");

В этом случае я получаю эту ошибку:

10: [ RUN      ] AgentErrorTest.DiesOnTimerCreateError
10: /home/edge/test/test_dispatcher_error.cc:119: Failure
10: Death test: run_test()
10:     Result: died but not with expected error.
10:   Expected: \\d\\d
10: Actual msg:
10: [  DEATH   ] src/dispatcher/dispatcher.cc:70 loop_sync(): MESSAGE=timer_create() error: Inappropriate ioctl for device PRIORITY=3 SYSLOG_IDENTIFIER=test_dispatcher_error DEVICE_ID=my_device_id TASK_ID=?
10: [  DEATH   ] 
10: [  FAILED  ] AgentErrorTest.DiesOnTimerCreateError (244 ms)

Имею пробовал различное количество обратных слешей, но ничего не работает.

Когда я использую MatchesRegex():

EXPECT_DEATH(run_test(), MatchesRegex("\\d+"));

У меня возникает проблема компиляции:

In file included from /usr/include/gtest/gtest-death-test.h:41:0,
                 from /usr/include/gtest/gtest.h:60,
                 from /usr/include/gmock/internal/gmock-internal-utils.h:47,
                 from /usr/include/gmock/gmock-actions.h:46,
                 from /usr/include/gmock/gmock.h:58,
                 from /home/edge/test/test_dispatcher_error.cc:14:
/home/edge/test/test_dispatcher_error.cc: In member function 'virtual void {anonymous}::AgentErrorTest_DiesOnTimerCreateError_Test::TestBody()':
/home/edge/test/test_dispatcher_error.cc:111:47: error: invalid initialization of reference of type 'const testing::internal::RE&' from expression of type 'testing::PolymorphicMatcher<testing::internal::MatchesRegexMatcher>'
         EXPECT_DEATH( run_test(), MatchesRegex("\\d+"));
                                               ^

Чего мне не хватает?

...