diff options
author | Denis Shienkov <scapig2@yandex.ru> | 2011-10-23 20:39:52 +0400 |
---|---|---|
committer | Denis Shienkov <scapig2@yandex.ru> | 2011-10-23 20:39:52 +0400 |
commit | a58789d99bd6812d4135caa5688df409da6b7c58 (patch) | |
tree | 8e454bba97ddf719d15157d809623a2de5cd784e /tests | |
parent | be87d88d1f631a6c324d7a93b340a0a3b18bb325 (diff) |
/tests/guidevtest: Add initial functional for "Signals test"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/guidevtest/maindialog.cpp | 11 | ||||
-rw-r--r-- | tests/guidevtest/unittests.h | 8 | ||||
-rw-r--r-- | tests/guidevtest/unittestsignals.cpp | 63 |
3 files changed, 73 insertions, 9 deletions
diff --git a/tests/guidevtest/maindialog.cpp b/tests/guidevtest/maindialog.cpp index 17adfb43..5c60d055 100644 --- a/tests/guidevtest/maindialog.cpp +++ b/tests/guidevtest/maindialog.cpp @@ -48,6 +48,7 @@ UnitTestBase::UnitTestBase(UnitID id, Logger *logger, QObject *parent) { Q_ASSERT(logger); m_enableParam = "%1/enable"; + m_enableParam = m_enableParam.arg(id); } void UnitTestBase::setPair(const QString &src, const QString &dst) @@ -59,13 +60,13 @@ void UnitTestBase::setPair(const QString &src, const QString &dst) void UnitTestBase::setEnable(bool enable) { QSettings settings; - settings.setValue(m_enableParam.arg(m_id), enable); + settings.setValue(m_enableParam, enable); } bool UnitTestBase::isEnabled() const { QSettings settings; - return settings.value(m_enableParam.arg(m_id)).toBool(); + return settings.value(m_enableParam).toBool(); } int UnitTestBase::id() const @@ -93,6 +94,8 @@ UnitTestBase *UnitTestFactory::create(UnitTestBase::UnitID id, Logger *logger) switch (id) { case UnitTestBase::InfoUnitId: return new UnitTestInfo(logger); + case UnitTestBase::SignalsUnitId: + return new UnitTestSignals(logger); default:; } @@ -339,8 +342,10 @@ void MainDialog::showSettings() // Called only in constructor! void MainDialog::createAvailableTests() { - // + // Create "Info test" m_testsList.append(UnitTestFactory::create(UnitTestBase::InfoUnitId, m_logger)); + // Create "Signals test" + m_testsList.append(UnitTestFactory::create(UnitTestBase::SignalsUnitId, m_logger)); foreach(UnitTestBase *test, m_testsList) { diff --git a/tests/guidevtest/unittests.h b/tests/guidevtest/unittests.h index 65e5352a..286d8183 100644 --- a/tests/guidevtest/unittests.h +++ b/tests/guidevtest/unittests.h @@ -30,6 +30,7 @@ signals: public: enum UnitID { InfoUnitId, + SignalsUnitId, }; @@ -45,6 +46,7 @@ public slots: virtual void start() = 0; protected: + enum DirPorts { SrcPort, DstPort }; int m_id; QString m_name; QString m_description; @@ -79,8 +81,10 @@ public: public slots: virtual void start(); -private slots: - void stage(); +private: + bool open(DirPorts dir); + bool configure(DirPorts dir); + void close(DirPorts dir); }; diff --git a/tests/guidevtest/unittestsignals.cpp b/tests/guidevtest/unittestsignals.cpp index 3f6ad14c..89d2f63d 100644 --- a/tests/guidevtest/unittestsignals.cpp +++ b/tests/guidevtest/unittestsignals.cpp @@ -6,7 +6,7 @@ /* Public methods */ UnitTestSignals::UnitTestSignals(Logger *logger, QObject *parent) - : UnitTestBase(UnitTestBase::InfoUnitId, logger, parent) + : UnitTestBase(UnitTestBase::SignalsUnitId, logger, parent) { m_name = QString(tr("Signals Test")); m_description = QString(tr("Signals Test Description")); @@ -19,19 +19,74 @@ UnitTestSignals::UnitTestSignals(Logger *logger, QObject *parent) void UnitTestSignals::start() { + QString header(tr("\n[ Test: ID#%1, Name: %2 ]\n%3\n\n")); + header = header + .arg(m_id) + .arg(m_name) + .arg(QString("timestamp"));/*.arg(UnitTestManager::timestamp());*/ + + m_logger->addContent(header); + m_srcPort->setPort(m_srcPortName); m_dstPort->setPort(m_dstPortName); - /// + if (!(open(UnitTestBase::SrcPort) && open(UnitTestBase::DstPort) + && configure(UnitTestBase::SrcPort) && configure(UnitTestBase::DstPort))) { + + close(UnitTestBase::SrcPort); + close(UnitTestBase::DstPort); + emit error(); + return; + } + + ////// !!! Implement me emit finished(); } -/* Private slots */ +/* Private */ -void UnitTestSignals::stage() +bool UnitTestSignals::open(DirPorts dir) { + SerialPort *port = (dir == UnitTestBase::SrcPort) ? + m_srcPort : m_dstPort; + QIODevice::OpenMode mode = (dir == UnitTestBase::SrcPort) ? + QIODevice::WriteOnly : QIODevice::ReadOnly; + QString error("\nERROR: Can\'t open port %1\n"); + if (!port->open(mode)) { + error = error.arg(port->portName()); + m_logger->addContent(error); + return false; + } + return true; } +bool UnitTestSignals::configure(DirPorts dir) +{ + SerialPort *port = (dir == UnitTestBase::SrcPort) ? + m_srcPort : m_dstPort; + + if (!(port->setRate(9600) && port->setDataBits(SerialPort::Data8) + && port->setParity(SerialPort::NoParity) && port->setStopBits(SerialPort::OneStop) + && port->setFlowControl(SerialPort::NoFlowControl) && port->setDataErrorPolicy())) { + + QString error("\nERROR: Can\'t configure port %1\n"); + error = error.arg(port->portName()); + m_logger->addContent(error); + return false; + } + return true; +} + +void UnitTestSignals::close(DirPorts dir) +{ + if (dir == UnitTestBase::SrcPort) { + if (m_srcPort->isOpen()) + m_srcPort->close(); + } else { + if (m_dstPort->isOpen()) + m_dstPort->close(); + } +} |