Я использую Google Test и Google Mock. Существует фиктивный объект, для которого я ожидаю вызова метода OnConnectionError()
, который уведомляет объект absl::Notification done
3 раза.
absl::Notification done;
EXPECT_CALL(*client, OnConnectionError(::testing::_)).Times(3)
.WillRepeatedly(Notify(&done));
bool result = client->ConnectToServer("localhost", 5000, 2);
done.WaitForNotificationWithTimeout(absl::Duration(absl::Seconds(30)));
Метод client->ConnectToServer
имеет цикл, который приводит к повторяющемуся вызову OnConnectionError
, что вполне нормально и обеспечивает желаемое поведение.
В Windows модульный тест проходит нормально. Когда jenkins запускает его на Ubuntu, он прерывает весь тестовый прогон (а не только один тест!!) со следующим выводом.
[notification.cc : 32] RAW: Notify() method called more than once for Notification object 0x7ffffde87320
Разве нельзя вызывать объект Notification несколько раз? Почему тест проходит успешно в Windows и прерывается в Ubuntu?
большое спасибо за поддержку!