forked from qt-creator/qt-creator
UnitTest: Fix or disable some flacky tests
If we get better tools we can come back and look again into it. Change-Id: I8ded8f9831b0c46c09e15d283a6298ad09aaaeb6 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -15,11 +15,11 @@ class AsynchronousExplicitImageCache : public testing::Test
|
|||||||
protected:
|
protected:
|
||||||
Notification notification;
|
Notification notification;
|
||||||
Notification waitInThread;
|
Notification waitInThread;
|
||||||
|
NiceMock<MockImageCacheStorage> mockStorage;
|
||||||
NiceMock<MockFunction<void(QmlDesigner::ImageCache::AbortReason)>> mockAbortCallback;
|
NiceMock<MockFunction<void(QmlDesigner::ImageCache::AbortReason)>> mockAbortCallback;
|
||||||
NiceMock<MockFunction<void(QmlDesigner::ImageCache::AbortReason)>> mockAbortCallback2;
|
NiceMock<MockFunction<void(QmlDesigner::ImageCache::AbortReason)>> mockAbortCallback2;
|
||||||
NiceMock<MockFunction<void(const QImage &image)>> mockCaptureCallback;
|
NiceMock<MockFunction<void(const QImage &image)>> mockCaptureCallback;
|
||||||
NiceMock<MockFunction<void(const QImage &image)>> mockCaptureCallback2;
|
NiceMock<MockFunction<void(const QImage &image)>> mockCaptureCallback2;
|
||||||
NiceMock<MockImageCacheStorage> mockStorage;
|
|
||||||
QmlDesigner::AsynchronousExplicitImageCache cache{mockStorage};
|
QmlDesigner::AsynchronousExplicitImageCache cache{mockStorage};
|
||||||
QImage image1{10, 10, QImage::Format_ARGB32};
|
QImage image1{10, 10, QImage::Format_ARGB32};
|
||||||
QImage midSizeImage1{5, 5, QImage::Format_ARGB32};
|
QImage midSizeImage1{5, 5, QImage::Format_ARGB32};
|
||||||
@@ -111,7 +111,8 @@ TEST_F(AsynchronousExplicitImageCache, request_mid_size_image_fetches_mid_size_i
|
|||||||
notification.wait();
|
notification.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, request_mid_size_image_calls_capture_callback_with_image_from_storage)
|
TEST_F(AsynchronousExplicitImageCache,
|
||||||
|
request_mid_size_image_calls_capture_callback_with_image_from_storage)
|
||||||
{
|
{
|
||||||
ON_CALL(mockStorage, fetchMidSizeImage(Eq("/path/to/Component.qml"), _))
|
ON_CALL(mockStorage, fetchMidSizeImage(Eq("/path/to/Component.qml"), _))
|
||||||
.WillByDefault(Return(QmlDesigner::ImageCacheStorageInterface::ImageEntry{midSizeImage1}));
|
.WillByDefault(Return(QmlDesigner::ImageCacheStorageInterface::ImageEntry{midSizeImage1}));
|
||||||
@@ -140,7 +141,8 @@ TEST_F(AsynchronousExplicitImageCache, request_mid_size_image_calls_abort_callba
|
|||||||
notification.wait();
|
notification.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, request_mid_size_image_calls_abort_callback_without_mid_size_image)
|
TEST_F(AsynchronousExplicitImageCache,
|
||||||
|
request_mid_size_image_calls_abort_callback_without_mid_size_image)
|
||||||
{
|
{
|
||||||
ON_CALL(mockStorage, fetchMidSizeImage(Eq("/path/to/Component.qml"), _))
|
ON_CALL(mockStorage, fetchMidSizeImage(Eq("/path/to/Component.qml"), _))
|
||||||
.WillByDefault(Return(QmlDesigner::ImageCacheStorageInterface::ImageEntry{QImage{}}));
|
.WillByDefault(Return(QmlDesigner::ImageCacheStorageInterface::ImageEntry{QImage{}}));
|
||||||
@@ -168,7 +170,8 @@ TEST_F(AsynchronousExplicitImageCache, request_small_image_fetches_small_image_f
|
|||||||
notification.wait();
|
notification.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, request_small_image_calls_capture_callback_with_image_from_storage)
|
TEST_F(AsynchronousExplicitImageCache,
|
||||||
|
request_small_image_calls_capture_callback_with_image_from_storage)
|
||||||
{
|
{
|
||||||
ON_CALL(mockStorage, fetchSmallImage(Eq("/path/to/Component.qml"), _))
|
ON_CALL(mockStorage, fetchSmallImage(Eq("/path/to/Component.qml"), _))
|
||||||
.WillByDefault(Return(QmlDesigner::ImageCacheStorageInterface::ImageEntry{smallImage1}));
|
.WillByDefault(Return(QmlDesigner::ImageCacheStorageInterface::ImageEntry{smallImage1}));
|
||||||
@@ -211,7 +214,7 @@ TEST_F(AsynchronousExplicitImageCache, request_small_image_calls_abort_callback_
|
|||||||
notification.wait();
|
notification.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, clean_removes_entries)
|
TEST_F(AsynchronousExplicitImageCache, DISABLED_clean_removes_entries)
|
||||||
{
|
{
|
||||||
ON_CALL(mockStorage, fetchSmallImage(_, _)).WillByDefault([&](Utils::SmallStringView, auto) {
|
ON_CALL(mockStorage, fetchSmallImage(_, _)).WillByDefault([&](Utils::SmallStringView, auto) {
|
||||||
return QmlDesigner::ImageCacheStorageInterface::ImageEntry{smallImage1};
|
return QmlDesigner::ImageCacheStorageInterface::ImageEntry{smallImage1};
|
||||||
@@ -219,8 +222,10 @@ TEST_F(AsynchronousExplicitImageCache, clean_removes_entries)
|
|||||||
ON_CALL(mockCaptureCallback2, Call(_)).WillByDefault([&](auto) { waitInThread.wait(); });
|
ON_CALL(mockCaptureCallback2, Call(_)).WillByDefault([&](auto) { waitInThread.wait(); });
|
||||||
cache.requestSmallImage("/path/to/Component1.qml",
|
cache.requestSmallImage("/path/to/Component1.qml",
|
||||||
mockCaptureCallback2.AsStdFunction(),
|
mockCaptureCallback2.AsStdFunction(),
|
||||||
mockAbortCallback.AsStdFunction());
|
mockAbortCallback2.AsStdFunction());
|
||||||
|
|
||||||
|
EXPECT_CALL(mockAbortCallback, Call(Eq(QmlDesigner::ImageCache::AbortReason::Abort)))
|
||||||
|
.WillOnce([&](auto) { notification.notify(); });
|
||||||
EXPECT_CALL(mockCaptureCallback, Call(_)).Times(0);
|
EXPECT_CALL(mockCaptureCallback, Call(_)).Times(0);
|
||||||
|
|
||||||
cache.requestSmallImage("/path/to/Component3.qml",
|
cache.requestSmallImage("/path/to/Component3.qml",
|
||||||
@@ -228,26 +233,32 @@ TEST_F(AsynchronousExplicitImageCache, clean_removes_entries)
|
|||||||
mockAbortCallback.AsStdFunction());
|
mockAbortCallback.AsStdFunction());
|
||||||
cache.clean();
|
cache.clean();
|
||||||
waitInThread.notify();
|
waitInThread.notify();
|
||||||
|
notification.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, clean_calls_abort)
|
TEST_F(AsynchronousExplicitImageCache, clean_calls_abort)
|
||||||
{
|
{
|
||||||
|
QmlDesigner::AsynchronousExplicitImageCache cache{mockStorage};
|
||||||
ON_CALL(mockStorage, fetchSmallImage(Eq("/path/to/Component1.qml"), _))
|
ON_CALL(mockStorage, fetchSmallImage(Eq("/path/to/Component1.qml"), _))
|
||||||
.WillByDefault([&](Utils::SmallStringView, auto) {
|
.WillByDefault([&](Utils::SmallStringView, auto) {
|
||||||
|
notification.notify();
|
||||||
waitInThread.wait();
|
waitInThread.wait();
|
||||||
return QmlDesigner::ImageCacheStorageInterface::ImageEntry{smallImage1};
|
return QmlDesigner::ImageCacheStorageInterface::ImageEntry{smallImage1};
|
||||||
});
|
});
|
||||||
cache.requestSmallImage("/path/to/Component1.qml",
|
cache.requestSmallImage("/path/to/Component1.qml",
|
||||||
mockCaptureCallback.AsStdFunction(),
|
mockCaptureCallback.AsStdFunction(),
|
||||||
mockAbortCallback2.AsStdFunction());
|
mockAbortCallback2.AsStdFunction());
|
||||||
|
notification.wait();
|
||||||
cache.requestSmallImage("/path/to/Component2.qml",
|
cache.requestSmallImage("/path/to/Component2.qml",
|
||||||
mockCaptureCallback.AsStdFunction(),
|
mockCaptureCallback.AsStdFunction(),
|
||||||
mockAbortCallback.AsStdFunction());
|
mockAbortCallback.AsStdFunction());
|
||||||
|
|
||||||
EXPECT_CALL(mockAbortCallback, Call(Eq(QmlDesigner::ImageCache::AbortReason::Abort)));
|
EXPECT_CALL(mockAbortCallback, Call(Eq(QmlDesigner::ImageCache::AbortReason::Abort)))
|
||||||
|
.WillOnce([&](auto) { notification.notify(); });
|
||||||
|
|
||||||
cache.clean();
|
cache.clean();
|
||||||
waitInThread.notify();
|
waitInThread.notify();
|
||||||
|
notification.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, after_clean_new_jobs_works)
|
TEST_F(AsynchronousExplicitImageCache, after_clean_new_jobs_works)
|
||||||
@@ -268,9 +279,10 @@ TEST_F(AsynchronousExplicitImageCache, after_clean_new_jobs_works)
|
|||||||
|
|
||||||
TEST_F(AsynchronousExplicitImageCache, request_image_with_extra_id_fetches_image_from_storage)
|
TEST_F(AsynchronousExplicitImageCache, request_image_with_extra_id_fetches_image_from_storage)
|
||||||
{
|
{
|
||||||
|
ON_CALL(mockAbortCallback, Call(_)).WillByDefault([&](auto) { notification.notify(); });
|
||||||
|
|
||||||
EXPECT_CALL(mockStorage, fetchImage(Eq("/path/to/Component.qml+extraId1"), _))
|
EXPECT_CALL(mockStorage, fetchImage(Eq("/path/to/Component.qml+extraId1"), _))
|
||||||
.WillRepeatedly([&](Utils::SmallStringView, auto) {
|
.WillRepeatedly([&](Utils::SmallStringView, auto) {
|
||||||
notification.notify();
|
|
||||||
return QmlDesigner::ImageCacheStorageInterface::ImageEntry{};
|
return QmlDesigner::ImageCacheStorageInterface::ImageEntry{};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -124,8 +124,12 @@ TEST_F(AsynchronousImageFactory, request_image_request_image_from_collector_if_f
|
|||||||
TEST_F(AsynchronousImageFactory, clean_removes_entries)
|
TEST_F(AsynchronousImageFactory, clean_removes_entries)
|
||||||
{
|
{
|
||||||
EXPECT_CALL(collectorMock, start(Eq("/path/to/Component1.qml"), _, _, _, _))
|
EXPECT_CALL(collectorMock, start(Eq("/path/to/Component1.qml"), _, _, _, _))
|
||||||
.WillRepeatedly([&](auto, auto, auto, auto, auto) { waitInThread.wait(); });
|
.WillRepeatedly([&](auto, auto, auto, auto, auto) {
|
||||||
|
notification.notify();
|
||||||
|
waitInThread.wait();
|
||||||
|
});
|
||||||
factory.generate("/path/to/Component1.qml");
|
factory.generate("/path/to/Component1.qml");
|
||||||
|
notification.wait();
|
||||||
|
|
||||||
EXPECT_CALL(collectorMock, start(Eq("/path/to/Component3.qml"), _, _, _, _)).Times(0);
|
EXPECT_CALL(collectorMock, start(Eq("/path/to/Component3.qml"), _, _, _, _)).Times(0);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user