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