From f74d252b95b9a7c5877ffab396ae74cae15b309b Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 2 Sep 2009 09:41:18 +0200 Subject: [PATCH] debugger: work on trk manual tests --- tests/manual/trk/README | 5 ++--- tests/manual/trk/adapter.cpp | 18 +++++++++++----- tests/manual/trk/runner.cpp | 41 +++++++++++++++++++++++++++--------- 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/tests/manual/trk/README b/tests/manual/trk/README index 5aecc167bd3..7c834470ceb 100644 --- a/tests/manual/trk/README +++ b/tests/manual/trk/README @@ -27,9 +27,8 @@ Enter the following commands in a terminal (all as root, adjust device permissions as required to work as user): -sdptool add SP # announce Serial Port Profile via Service Discovery Protocol -sudo mknod /dev/rfcomm0 c 216 0 # Creates a Bluetooth Serial Device -sudo chmod ugo+rw /dev/rfcomm0 # Give permissions) +sdptool add SP # announce Serial Port Profile via Service Discovery Protocol +sudo mknod --mode=666 /dev/rfcomm0 c 216 0 # Creates a Bluetooth Serial Device rfcomm listen /dev/rfcomm0 1 $PWD/trklauncher -v -f {} diff --git a/tests/manual/trk/adapter.cpp b/tests/manual/trk/adapter.cpp index 282022d505a..b66444c66e6 100644 --- a/tests/manual/trk/adapter.cpp +++ b/tests/manual/trk/adapter.cpp @@ -80,9 +80,15 @@ static inline void dumpRegister(int n, uint value, QByteArray &a) a += QByteArray::number(value, 16); } -struct AdapterOptions { - AdapterOptions() : verbose(1),serialFrame(true),registerEndianness(LittleEndian), - useSocket(false), bufferedMemoryRead(true) {} +struct AdapterOptions +{ + AdapterOptions() + : verbose(1), + serialFrame(true), + registerEndianness(LittleEndian), + useSocket(false), + bufferedMemoryRead(true) + {} int verbose; bool serialFrame; @@ -820,13 +826,13 @@ bool Adapter::openTrkPort(const QString &port, QString *errorMessage) { if (m_useSocket) { QLocalSocket *socket = new QLocalSocket; + m_socket = QSharedPointer<QIODevice>(new QLocalSocket); socket->connectToServer(port); if (!socket->waitForConnected()) { - *errorMessage = "Unable to connect to TRK server " + m_trkServerName + ' ' + m_socket->errorString(); + *errorMessage = "Unable to connect to TRK server " + m_trkServerName + ' ' + socket->errorString(); delete socket; return false; } - m_socket = QSharedPointer<QIODevice>(socket); m_socketDevice = QSharedPointer<TrkWriteQueueIODevice>(new TrkWriteQueueIODevice(m_socket)); connect(m_socketDevice.data(), SIGNAL(messageReceived(trk::TrkResult)), this, SLOT(handleResult(trk::TrkResult))); if (m_verbose > 1) @@ -1505,6 +1511,8 @@ int main(int argc, char *argv[]) return 1; } + qDebug() << "Adapter args: " << app.arguments(); + Adapter adapter; adapter.setTrkServerName(options.trkServer); adapter.setGdbServerName(options.gdbServer); diff --git a/tests/manual/trk/runner.cpp b/tests/manual/trk/runner.cpp index e60804f4777..304a70202ea 100755 --- a/tests/manual/trk/runner.cpp +++ b/tests/manual/trk/runner.cpp @@ -55,7 +55,7 @@ class Runner : public QObject public: Runner(); - void parseArguments(); + void parseArguments(const QStringList &args); signals: void output(const QString &senderName, const QString &data); @@ -68,6 +68,7 @@ private slots: void handleProcStarted(); void handleProcStateChanged(QProcess::ProcessState newState); void run(); + void runRfcomm(); private: friend class RunnerGui; @@ -84,7 +85,7 @@ private: QString m_trkServerName; bool m_runTrkServer; bool m_isUnix; - int m_waitAdapter; + bool m_waitForAdapter; QString m_gdbServerIP; QString m_gdbServerPort; @@ -102,7 +103,7 @@ Runner::Runner() #endif m_endianness = "little"; m_runTrkServer = true; - m_waitAdapter = 0; + m_waitForAdapter = false; uid_t userId = getuid(); m_gdbServerIP = "127.0.0.1"; @@ -195,9 +196,8 @@ static QString usage() .arg(QCoreApplication::arguments().at(0)); } -void Runner::parseArguments() +void Runner::parseArguments(const QStringList &args) { - QStringList args = QCoreApplication::arguments(); for (int i = 1; i < args.size(); ++i) { const QString arg = args.at(i); if (arg.startsWith('-')) { @@ -210,7 +210,7 @@ void Runner::parseArguments() } else if (arg == "-au") { m_adapterOptions.append("-u"); } else if (arg == "-w") { - m_waitAdapter = 1; + m_waitForAdapter = true; } else if (arg == "-tv") { m_trkServerOptions.append("-v"); } else if (arg == "-tq") { @@ -224,7 +224,7 @@ void Runner::parseArguments() } } else { m_trkServerName = arg; - m_runTrkServer = 0; + m_runTrkServer = false; } } } @@ -272,7 +272,7 @@ void Runner::launchAdapter() << QDir::currentPath() + "/debug/adapter.exe"; } adapterArgs << m_adapterOptions; - adapterArgs << "-s"; + //adapterArgs << "-s"; adapterArgs << m_trkServerName << m_gdbServerIP + ':' + m_gdbServerPort; sendOutput("### Starting " + adapterName + " " + adapterArgs.join(" ")); @@ -282,7 +282,7 @@ void Runner::launchAdapter() //die ('Unable to launch adapter') if $adapterpid == -1; /* - if ($m_waitAdapter > 0) { + if (m_waitForAdapter) { print '### kill -USR1 ',$adapterpid,"\n"; waitpid($adapterpid, 0); } @@ -291,6 +291,7 @@ void Runner::launchAdapter() void Runner::writeGdbInit() { + qDebug() << "WRITE GDBINIT"; QString gdbInitFile = QDir::currentPath() + "/.gdbinit"; QFile file(gdbInitFile); if (!file.open(QIODevice::ReadWrite)) { @@ -350,6 +351,18 @@ void Runner::run() writeGdbInit(); } +void Runner::runRfcomm() +{ + qDebug() << "RUNNING RFCCOMM"; + QProcess *proc = new QProcess; + connectProcess(proc); + proc->start("rfcomm listen /dev/rfcomm0 1"); + proc->waitForStarted(); + qDebug() << "STARTED"; + proc->write("\x90\x01\x00\x05\x7e\x00\x00\xff\x7e"); + qDebug() << "WRITTEN"; + proc->waitForFinished(); +} /////////////////////////////////////////////////////////////////////// // @@ -393,11 +406,19 @@ void RunnerGui::handleOutput(const QString &senderName, const QString &data) int main(int argc, char *argv[]) { QApplication app(argc, argv); +#if 1 + QStringList args = QCoreApplication::arguments(); + qDebug() << "ARGS: " << args; +#else + // Important options: -w wait for adapter, -af omit serial frame. + QStringList args = QStringList() << "-w" << "-af" << "COM5"; +#endif Runner runner; - runner.parseArguments(); + runner.parseArguments(args); RunnerGui gui(&runner); gui.show(); QTimer::singleShot(0, &runner, SLOT(run())); + //QTimer::singleShot(0, &runner, SLOT(runRfcomm())); return app.exec(); } -- GitLab