Keep complete diagnostics for media monitor restoration failures

This commit is contained in:
evgeny committed 2026-10-31 18:00:16 +01:00
1 parent 68065d4a79
commit 703f4a4a60
1 file changed
+12
@@ -329,6 +329,12 @@ private slots:
const QString photo = directory.filePath("photo.png");
QImage image(32, 24, QImage::Format_RGB32); image.fill(Qt::green); QVERIFY(image.save(photo));
const auto logger = qScopeGuard([] { debug_disable_file_output(); });
const auto diagnostics = qScopeGuard([&] {
if (QTest::currentTestFailed()) {
directory.setAutoRemove(false);
DEBUG_ERROR(DEBUG_CATEGORY_GENERAL, "Media geometry fixture failed; diagnostics: %s", qPrintable(log));
}
});
auto findWindow = [](const QString& name) -> QWidget* {
for (auto* widget : QApplication::topLevelWidgets())
if (widget->objectName() == name && widget->isVisible()) return widget;
@@ -341,6 +347,7 @@ private slots:
auto* node = window.utunNode();
if (!node || !node->isRunning()) directory.setAutoRemove(false);
QVERIFY2(node && node->isRunning(), qPrintable(log)); QTRY_VERIFY(db.isOpen());
debug_set_category_level(DEBUG_CATEGORY_GENERAL, DEBUG_LEVEL_DEBUG);
QVERIFY(QMetaObject::invokeMethod(&window, "openImage", Q_ARG(QString, photo)));
auto* viewer = findWindow("chatImageViewer"); QVERIFY(viewer);
if (!stage) {
@@ -355,6 +362,11 @@ private slots:
QCOMPARE(viewer->isFullScreen(), fullscreen);
} else {
QCOMPARE(viewer->screen(), window.screen());
const QRect area = window.screen()->availableGeometry(), actual = viewer->normalGeometry();
const QMargins margins = viewer->windowHandle()->frameMargins();
DEBUG_INFO(DEBUG_CATEGORY_GENERAL, "Media fallback: area=%d,%d %dx%d normal=%d,%d %dx%d frame=%d,%d,%d,%d state=%d",
area.x(), area.y(), area.width(), area.height(), actual.x(), actual.y(), actual.width(), actual.height(),
margins.left(), margins.top(), margins.right(), margins.bottom(), int(viewer->windowState()));
QVERIFY(window.screen()->availableGeometry().contains(viewer->normalGeometry()));
QVERIFY(!viewer->isFullScreen());
}