Keep complete diagnostics for media monitor restoration failures
This commit is contained in:
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());
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user