#include <QtGui>
#include "testcasefm.h"
testCaseFm::testCaseFm( QWidget * parent ): QWidget( parent )
{
setupUi(this);
scriptProcess = new QProcess( this );
label_targetName->setFocus();
testCaseFm::init();
//connect(label_targetName ,SIGNAL(setFocus()),this,SLOT(init()));
connect(pushButton_openScript ,SIGNAL(clicked()),this,SLOT(pB_openScript()));
connect(pushButton_runScript ,SIGNAL(clicked()),this,SLOT(pB_runScript()));
connect(pushButton_stopScript ,SIGNAL(clicked()),this,SLOT(pB_stopScript()));
//connect(pushButton_closeTestcasefm ,SIGNAL(clicked()),this,SLOT(pB_close()));
connect(scriptProcess ,SIGNAL(readyReadStandardOutput()),this,SLOT(updat eOutputTextEdit()));
//connect(scriptProcess ,SIGNAL(readyReadStandardError()),this,SLOT(update ErrorOutputTextEdit()));
connect(scriptProcess ,SIGNAL(finished(int, QProcess::ExitStatus)),this,SLOT(processFinished(i nt, QProcess::ExitStatus)));
connect(scriptProcess ,SIGNAL(error(QProcess::ProcessError)),this,SLOT(p rocessError(QProcess::ProcessError)));
}
testCaseFm::~testCaseFm()
{
close();
}
void testCaseFm::init()
{
QString vtlip;
QFile file("/root/test/cfg/ATSCfg");
if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
return;
QTextStream in(&file);
while(!in.atEnd()){
QString str = in.readLine();
if( str.contains("VTL_IP",Qt::CaseSensitive))
vtlip = str.section('"',1,1); }
label_vtlName->setText(vtlip);
file.close();
}
void testCaseFm:
B_openScript()
{
//FileInfo info;
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
fileName,
tr("All (*.*)"));
// info.setFile(fileName);
lineEdit_scriptName->insert(fileName);
}
void testCaseFm:
B_runScript()
{
QDir d;
textEdit->clear();
QString scriptName = lineEdit_scriptName->text();
if(!d.setCurrent("/root/ATS/testtools/ATS_Framework/ATS/"))
qDebug() << "failed";
//scriptProcess->setWorkingDirectory(scriptName);
//QString args;
if( lineEdit_scriptName->text().length() > 0 ){
// args << scriptName;
scriptProcess->start(scriptName);
// pushButton_runScript->setDisable(true);
}
else {
//qdebug << "Warning : No script name mentioned";
QMessageBox::warning(this,"Waring",
"Please specify the script name or path and then start\n"
"OK\n");
}
}
void testCaseFm::updateOutputTextEdit()
{
QByteArray newData = scriptProcess->readAllStandardOutput();
QString text = textEdit->toPlainText()
+QString::fromLocal8Bit(newData);
textEdit->append(text);
/*
newData = scriptProcess->readAllStandardError();
QString text_error = textEdit->toPlainText()
+QString::fromLocal8Bit(newData);
textEdit->append(text_error);
*/
//connect(scriptProcess ,SIGNAL(readyReadStandardOutput()),this,SLOT(updat eOutputTextEdit()));
}
void testCaseFm::updateErrorOutputTextEdit()
{
textEdit->append("----------Stard Error---------");
QByteArray newData = scriptProcess->readAllStandardOutput();
newData = scriptProcess->readAllStandardError();
QString text_error = textEdit->toPlainText()
+QString::fromLocal8Bit(newData);
//textEdit->append(text_error);
}
void testCaseFm:
rocessFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
QDir tcfd("/root/tcf_logs");
QDateTime date;
date = QDateTime::currentDateTime();
if ( exitStatus == QProcess::CrashExit ) {
textEdit->append(tr("Test Case Crashed")); else if ( exitCode != 0 ) {
textEdit->append(tr("Test script failed "));
}
else {
textEdit->append(tr("Test Script Completed successfully"));
if(!tcfd.exists()){
tcfd.mkdir("/root/tcf_logs");
}
// QStringList args;
// args >> "/root/tcf_logs/" >> lineEdit_scriptName->text() >> date.currentDateTime();
QFileInfo info;
info.setFile(lineEdit_scriptName->text());
QString filename = QString("%1%2%3%4").arg("/root/tcf_logs/").arg(info.fileName()).arg("_").arg(date.toString (Qt::TextDate));
qDebug() << filename;
QFile file(filename);
if (!file.open(QFile::WriteOnly | QFile::Text)) {
QMessageBox::warning(this, tr("TCF"),
tr("Cannot write file %1:\n%2.")
.arg(filename)
.arg(file.errorString()));
return;
}
QTextStream out(&file);
QApplication::setOverrideCursor(Qt::WaitCursor);
out << textEdit->toPlainText();
QApplication::restoreOverrideCursor();
// statusBar()->showMessage(tr("Saved '%1'").arg(fileName), 2000);
}
// pushButton_runScript->setEnable(true);
void testCaseFm:
rocessError( QProcess::ProcessError error )
{
if ( error == QProcess::FailedToStart ){
textEdit->append(tr(" Script was not able to start ..Please recheckthe path/filename"));
// pushButton_runScript->setEnable(true);
}
}
Bookmarks