summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDenis Shienkov <scapig2@yandex.ru>2011-10-23 20:39:52 +0400
committerDenis Shienkov <scapig2@yandex.ru>2011-10-23 20:39:52 +0400
commita58789d99bd6812d4135caa5688df409da6b7c58 (patch)
tree8e454bba97ddf719d15157d809623a2de5cd784e /tests
parentbe87d88d1f631a6c324d7a93b340a0a3b18bb325 (diff)
/tests/guidevtest: Add initial functional for "Signals test"
Diffstat (limited to 'tests')
-rw-r--r--tests/guidevtest/maindialog.cpp11
-rw-r--r--tests/guidevtest/unittests.h8
-rw-r--r--tests/guidevtest/unittestsignals.cpp63
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();
+ }
+}