diff options
Diffstat (limited to 'WebKitTools/DumpRenderTree/qt/main.cpp')
-rw-r--r-- | WebKitTools/DumpRenderTree/qt/main.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/WebKitTools/DumpRenderTree/qt/main.cpp b/WebKitTools/DumpRenderTree/qt/main.cpp index 719315f..69d3c23 100644 --- a/WebKitTools/DumpRenderTree/qt/main.cpp +++ b/WebKitTools/DumpRenderTree/qt/main.cpp @@ -27,7 +27,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "DumpRenderTree.h" +#include "DumpRenderTreeQt.h" #include <wtf/AlwaysInline.h> @@ -40,6 +40,7 @@ #include <qwebsettings.h> #include <qwebdatabase.h> #include <qdesktopservices.h> +#include <qtimer.h> #include <qwindowsstyle.h> #ifdef Q_WS_X11 @@ -89,12 +90,14 @@ QString get_backtrace() { return s; } +#ifndef Q_OS_WIN static NO_RETURN void crashHandler(int sig) { fprintf(stderr, "%s\n", strsignal(sig)); fprintf(stderr, "%s\n", get_backtrace().toLatin1().constData()); exit(128 + sig); } +#endif int main(int argc, char* argv[]) { @@ -121,6 +124,7 @@ int main(int argc, char* argv[]) QX11Info::setAppDpiX(0, 96); #endif +#ifndef Q_OS_WIN signal(SIGILL, crashHandler); /* 4: illegal instruction (not reset when caught) */ signal(SIGTRAP, crashHandler); /* 5: trace trap (not reset when caught) */ signal(SIGFPE, crashHandler); /* 8: floating point exception */ @@ -130,41 +134,42 @@ int main(int argc, char* argv[]) signal(SIGPIPE, crashHandler); /* 13: write on a pipe with no reader */ signal(SIGXCPU, crashHandler); /* 24: exceeded CPU time limit */ signal(SIGXFSZ, crashHandler); /* 25: exceeded file size limit */ +#endif QStringList args = app.arguments(); if (args.count() < 2) { - qDebug() << "Usage: DumpRenderTree [-v] filename"; + qDebug() << "Usage: DumpRenderTree [-v|--pixel-tests] filename"; exit(0); } - // supress debug output from Qt if not started with -v + // Suppress debug output from Qt if not started with -v if (!args.contains(QLatin1String("-v"))) qInstallMsgHandler(messageHandler); WebCore::DumpRenderTree dumper; - if (args.contains("--pixel-tests")) + if (args.contains(QLatin1String("--pixel-tests"))) dumper.setDumpPixels(true); QString dbDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation) + QDir::separator() + "qtwebkitdrt"; QWebSettings::setOfflineStoragePath(dbDir); QWebDatabase::removeAllDatabases(); - if (args.last() == QLatin1String("-")) { - dumper.open(); + if (args.contains(QLatin1String("-"))) { + QObject::connect(&dumper, SIGNAL(ready()), &dumper, SLOT(readLine()), Qt::QueuedConnection); + QTimer::singleShot(0, &dumper, SLOT(readLine())); } else { - if (!args.last().startsWith("/") - && !args.last().startsWith("file:") - && !args.last().startsWith("http:") - && !args.last().startsWith("https:")) { - QString path = QDir::currentPath(); - if (!path.endsWith('/')) - path.append('/'); - args.last().prepend(path); + dumper.setSingleFileMode(true); + for (int i = 1; i < args.size(); ++i) { + if (!args.at(i).startsWith('-')) { + dumper.processLine(args.at(i)); + break; + } } - dumper.open(QUrl(args.last())); } + return app.exec(); + #ifdef Q_WS_X11 FcConfigSetCurrent(0); #endif |