diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qdoc3/cppcodemarker.cpp | 18 | ||||
-rw-r--r-- | tools/runonphone/codasignalhandler.cpp | 6 | ||||
-rw-r--r-- | tools/runonphone/main.cpp | 8 | ||||
-rw-r--r-- | tools/runonphone/runonphone.pro | 6 | ||||
-rw-r--r-- | tools/runonphone/symbianutils/codadevice.cpp | 5 | ||||
-rw-r--r-- | tools/runonphone/symbianutils/symbiandevicemanager.cpp | 15 | ||||
-rw-r--r-- | tools/runonphone/texttracehandler.cpp | 89 | ||||
-rw-r--r-- | tools/runonphone/texttracehandler.h | 57 |
8 files changed, 190 insertions, 14 deletions
diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp index 37c2c3a..743688f 100644 --- a/tools/qdoc3/cppcodemarker.cpp +++ b/tools/qdoc3/cppcodemarker.cpp @@ -919,7 +919,7 @@ QString CppCodeMarker::addMarkUp(const QString &in, int i = 0; int start = 0; int finish = 0; - char ch; + QChar ch; QRegExp classRegExp("Qt?(?:[A-Z3]+[a-z][A-Za-z]*|t)"); QRegExp functionRegExp("q([A-Z][a-z]+)+"); @@ -929,13 +929,13 @@ QString CppCodeMarker::addMarkUp(const QString &in, QString tag; bool target = false; - if (isalpha(ch) || ch == '_') { + if (ch.isLetter() || ch == '_') { QString ident; do { - ident += ch; - finish = i; - readChar(); - } while (ch >= 0 && isalnum(ch) || ch == '_'); + ident += ch; + finish = i; + readChar(); + } while (ch.isLetterOrNumber() || ch == '_'); if (classRegExp.exactMatch(ident)) { tag = QLatin1String("type"); @@ -952,14 +952,14 @@ QString CppCodeMarker::addMarkUp(const QString &in, tag = QLatin1String("func"); target = true; } - } else if (isdigit(ch)) { + } else if (ch.isDigit()) { do { finish = i; readChar(); - } while (isalnum(ch) || ch == '.'); + } while (ch.isLetterOrNumber() || ch == '.'); tag = QLatin1String("number"); } else { - switch (ch) { + switch (ch.unicode()) { case '+': case '-': case '!': diff --git a/tools/runonphone/codasignalhandler.cpp b/tools/runonphone/codasignalhandler.cpp index 3d524dd..2de6fbc 100644 --- a/tools/runonphone/codasignalhandler.cpp +++ b/tools/runonphone/codasignalhandler.cpp @@ -46,6 +46,7 @@ #include <QObject> #include <QTimer> #include "codasignalhandler.h" +#include "texttracehandler.h" static const quint64 DEFAULT_CHUNK_SIZE = 40000; @@ -173,6 +174,9 @@ int CodaSignalHandler::run() return 1; } + TextTraceHandler *traceHandler = new TextTraceHandler( + SymbianUtils::SymbianDeviceManager::instance()->getOstChannel(d->serialPortName, 2), this); + if (d->loglevel > 1) { d->codaDevice->setVerbose(1); } @@ -190,6 +194,8 @@ int CodaSignalHandler::run() d->eventLoop->exec(); int result = d->result; reportMessage(tr("Done.")); + + delete traceHandler; disconnect(d->codaDevice.data(), 0, this, 0); SymbianUtils::SymbianDeviceManager::instance()->releaseCodaDevice(d->codaDevice); diff --git a/tools/runonphone/main.cpp b/tools/runonphone/main.cpp index af349eb..39fa983 100644 --- a/tools/runonphone/main.cpp +++ b/tools/runonphone/main.cpp @@ -67,6 +67,7 @@ void printUsage(QTextStream& outstream, QString exeName) << "-q, --quiet hide progress messages" << endl << "-u, --upload <local file> <remote file> upload file to phone" << endl << "-d, --download <remote file> <local file> copy file from phone to PC after running test" << endl + << "-T, --tempfile <remote file> specify temporary sis file name" << endl << "--nocrashlog Don't capture call stack if test crashes" << endl << "--crashlogpath <dir> Path to save crash logs (default=working dir)" << endl << "--coda Use CODA instead of TRK (default agent)" << endl @@ -94,6 +95,7 @@ int main(int argc, char *argv[]) QString uploadRemoteFile; QString downloadRemoteFile; QString downloadLocalFile; + QString dstName = "c:\\data\\testtemp.sis"; int loglevel=1; int timeout=0; bool crashlog = true; @@ -153,6 +155,10 @@ int main(int argc, char *argv[]) } else if (arg == "--coda") coda = true; + else if (arg == "--tempfile" || arg == "-T") { + CHECK_PARAMETER_EXISTS + dstName = it.next(); + } else if (arg == "--verbose" || arg == "-v") loglevel=2; else if (arg == "--quiet" || arg == "-q") @@ -225,7 +231,6 @@ int main(int argc, char *argv[]) if (!sisFile.isEmpty()) { codaHandler.setActionType(ActionCopyInstall); - QString dstName = "c:\\data\\testtemp.sis"; codaHandler.setCopyFileName(sisFile, dstName); } else if (!uploadLocalFile.isEmpty() && uploadInfo.exists()) { @@ -257,7 +262,6 @@ int main(int argc, char *argv[]) if (!sisFile.isEmpty()) { launcher->addStartupActions(trk::Launcher::ActionCopyInstall); srcNames.append(sisFile); - QLatin1String dstName("c:\\data\\testtemp.sis"); dstNames.append(dstName); launcher->setInstallFileNames(QStringList(dstName)); } diff --git a/tools/runonphone/runonphone.pro b/tools/runonphone/runonphone.pro index d006a05..3d6a995 100644 --- a/tools/runonphone/runonphone.pro +++ b/tools/runonphone/runonphone.pro @@ -9,13 +9,15 @@ include(symbianutils/symbianutils.pri) SOURCES += main.cpp \ trksignalhandler.cpp \ ossignalconverter.cpp \ - codasignalhandler.cpp + codasignalhandler.cpp \ + texttracehandler.cpp HEADERS += trksignalhandler.h \ serenum.h \ ossignalconverter.h \ ossignalconverter_p.h \ - codasignalhandler.h + codasignalhandler.h \ + texttracehandler.h DEFINES += SYMBIANUTILS_INCLUDE_PRI diff --git a/tools/runonphone/symbianutils/codadevice.cpp b/tools/runonphone/symbianutils/codadevice.cpp index 751f84e..f1f5db5 100644 --- a/tools/runonphone/symbianutils/codadevice.cpp +++ b/tools/runonphone/symbianutils/codadevice.cpp @@ -71,6 +71,7 @@ static const int maxSerialMessageLength = 0x10000; // given chunking scheme static const char validProtocolIdStart = (char)0x90; static const char validProtocolIdEnd = (char)0x95; static const char codaProtocolId = (char)0x92; +static const char textTraceProtocolId = (char)0x02; static const unsigned char serialChunkingStart = 0xfe; static const unsigned char serialChunkingContinuation = 0x0; enum { SerialChunkHeaderSize = 2 }; @@ -495,7 +496,9 @@ QPair<int, int> CodaDevice::findSerialHeader(QByteArray &in) // Good packet const int length = trk::extractShort(in.constData() + 2); return QPair<int, int>(4, length); - } else if (in.at(0) == header1 && in.at(1) >= validProtocolIdStart && in.at(1) <= validProtocolIdEnd) { + } else if (in.at(0) == header1 + && (in.at(1) == textTraceProtocolId + || (in.at(1) >= validProtocolIdStart && in.at(1) <= validProtocolIdEnd))) { // We recognise it but it's not a TCF message - emit it for any interested party to handle const int length = trk::extractShort(in.constData() + 2); if (4 + length <= in.size()) { diff --git a/tools/runonphone/symbianutils/symbiandevicemanager.cpp b/tools/runonphone/symbianutils/symbiandevicemanager.cpp index 23f5348..e8d0b5e 100644 --- a/tools/runonphone/symbianutils/symbiandevicemanager.cpp +++ b/tools/runonphone/symbianutils/symbiandevicemanager.cpp @@ -57,6 +57,7 @@ #include <QtCore/QThread> #include <QtCore/QWaitCondition> #include <QtCore/QTimer> +#include <QtCore/QDir> namespace SymbianUtils { @@ -622,6 +623,20 @@ SymbianDeviceManager::SymbianDeviceList SymbianDeviceManager::blueToothDevices() } } #endif +#if defined(Q_OS_MAC) + QDir dir("/dev"); + QStringList filters; + filters << "cu.usbmodem*"; + dir.setNameFilters(filters); + QStringList entries = dir.entryList(QDir::System, QDir::Name); + foreach (const QString &dev, entries) { + SymbianDeviceData *device = new SymbianDeviceData; + device->type = SerialPortCommunication; + device->portName = dir.filePath(dev); + device->friendlyName = tr("USB/Serial device (%1)").arg(device->portName); + rc.push_back(SymbianDevice(device)); + } +#endif return rc; } diff --git a/tools/runonphone/texttracehandler.cpp b/tools/runonphone/texttracehandler.cpp new file mode 100644 index 0000000..fff02e9 --- /dev/null +++ b/tools/runonphone/texttracehandler.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QTextStream> +#include "texttracehandler.h" +#include "trkutils.h" + +class TextTraceHandlerPrivate +{ +public: + TextTraceHandlerPrivate(); + ~TextTraceHandlerPrivate(); + QIODevice *device; + QTextStream out; +}; + +TextTraceHandlerPrivate::TextTraceHandlerPrivate() +: out(stdout) +{ +} + +TextTraceHandlerPrivate::~TextTraceHandlerPrivate() +{ + delete device; +} + +TextTraceHandler::TextTraceHandler(QIODevice *device, QObject *parent) +: QObject(parent) +{ + d = new TextTraceHandlerPrivate; + d->device = device; + connect(device, SIGNAL(readyRead()), this, SLOT(dataAvailable())); +} + +TextTraceHandler::~TextTraceHandler() +{ + delete d; +} + +void TextTraceHandler::dataAvailable() +{ + QByteArray result = d->device->readAll(); + quint64 secs = 0; + quint64 ns = 0; + if (result.length() >= 8) { + quint64 timestamp = trk::extractInt64(result.constData()) & 0x0FFFFFFFFFFFFFFFULL; + secs = timestamp / 1000000000; + ns = timestamp % 1000000000; + } + d->out << QString("[%1.%2] %3").arg(secs).arg(ns).arg(QString(result.mid(8))) << endl; +} diff --git a/tools/runonphone/texttracehandler.h b/tools/runonphone/texttracehandler.h new file mode 100644 index 0000000..2b9359c --- /dev/null +++ b/tools/runonphone/texttracehandler.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QObject> +#include <QIODevice> + +class TextTraceHandlerPrivate; +class TextTraceHandler : public QObject +{ + Q_OBJECT +public: + TextTraceHandler(QIODevice *device, QObject *parent = 0); + ~TextTraceHandler(); + +public slots: + void dataAvailable(); +private: + TextTraceHandlerPrivate *d; +}; |