Pass log file name when constructing loggers.
Pass the filename when creating the logger rather than when commencing output. This will simplify forthcoming changes for running multiple loggers. Change-Id: I563aa97661caf279a5dcccb1321ff3ce4725b332 Reviewed-on: http://codereview.qt.nokia.com/4116 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This commit is contained in:
parent
91fe1fd9e8
commit
cab90f8c8b
@ -54,18 +54,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
void QAbstractTestLogger::outputString(const char *msg)
|
||||
QAbstractTestLogger::QAbstractTestLogger(const char *filename)
|
||||
{
|
||||
QTEST_ASSERT(stream);
|
||||
|
||||
::fputs(msg, stream);
|
||||
::fflush(stream);
|
||||
}
|
||||
|
||||
void QAbstractTestLogger::startLogging(const char *filename)
|
||||
{
|
||||
QTEST_ASSERT(!stream);
|
||||
|
||||
if (!filename) {
|
||||
stream = stdout;
|
||||
return;
|
||||
@ -81,7 +71,7 @@ void QAbstractTestLogger::startLogging(const char *filename)
|
||||
}
|
||||
}
|
||||
|
||||
void QAbstractTestLogger::stopLogging()
|
||||
QAbstractTestLogger::~QAbstractTestLogger()
|
||||
{
|
||||
QTEST_ASSERT(stream);
|
||||
if (stream != stdout) {
|
||||
@ -97,6 +87,22 @@ void QAbstractTestLogger::stopLogging()
|
||||
stream = 0;
|
||||
}
|
||||
|
||||
void QAbstractTestLogger::outputString(const char *msg)
|
||||
{
|
||||
QTEST_ASSERT(stream);
|
||||
|
||||
::fputs(msg, stream);
|
||||
::fflush(stream);
|
||||
}
|
||||
|
||||
void QAbstractTestLogger::startLogging()
|
||||
{
|
||||
}
|
||||
|
||||
void QAbstractTestLogger::stopLogging()
|
||||
{
|
||||
}
|
||||
|
||||
namespace QTest
|
||||
{
|
||||
|
||||
|
@ -80,10 +80,10 @@ public:
|
||||
Info
|
||||
};
|
||||
|
||||
QAbstractTestLogger() : stream(0) {}
|
||||
virtual ~QAbstractTestLogger() {}
|
||||
QAbstractTestLogger(const char *filename);
|
||||
virtual ~QAbstractTestLogger();
|
||||
|
||||
virtual void startLogging(const char *filename);
|
||||
virtual void startLogging();
|
||||
virtual void stopLogging();
|
||||
|
||||
virtual void enterTestFunction(const char *function) = 0;
|
||||
|
@ -344,7 +344,8 @@ void QPlainTestLogger::printBenchmarkResult(const QBenchmarkResult &result)
|
||||
outputMessage(buf);
|
||||
}
|
||||
|
||||
QPlainTestLogger::QPlainTestLogger()
|
||||
QPlainTestLogger::QPlainTestLogger(const char *filename)
|
||||
: QAbstractTestLogger(filename)
|
||||
{
|
||||
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
|
||||
InitializeCriticalSection(&QTest::outputCriticalSection);
|
||||
@ -358,9 +359,9 @@ QPlainTestLogger::~QPlainTestLogger()
|
||||
#endif
|
||||
}
|
||||
|
||||
void QPlainTestLogger::startLogging(const char *filename)
|
||||
void QPlainTestLogger::startLogging()
|
||||
{
|
||||
QAbstractTestLogger::startLogging(filename);
|
||||
QAbstractTestLogger::startLogging();
|
||||
|
||||
char buf[1024];
|
||||
if (QTestLog::verboseLevel() < 0) {
|
||||
|
@ -60,10 +60,10 @@ QT_BEGIN_NAMESPACE
|
||||
class QPlainTestLogger : public QAbstractTestLogger
|
||||
{
|
||||
public:
|
||||
QPlainTestLogger();
|
||||
QPlainTestLogger(const char *filename);
|
||||
~QPlainTestLogger();
|
||||
|
||||
void startLogging(const char *filename);
|
||||
void startLogging();
|
||||
void stopLogging();
|
||||
|
||||
void enterTestFunction(const char *function);
|
||||
|
@ -1000,6 +1000,9 @@ static int qToInt(char *str)
|
||||
|
||||
Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml)
|
||||
{
|
||||
QTestLog::LogMode logFormat = QTestLog::Plain;
|
||||
const char *logFilename = 0;
|
||||
|
||||
const char *testOptions =
|
||||
" Output options:\n"
|
||||
" -xunitxml : Outputs results as XML XUnit document\n"
|
||||
@ -1063,11 +1066,11 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml)
|
||||
exit(0);
|
||||
}
|
||||
} else if (strcmp(argv[i], "-xunitxml") == 0) {
|
||||
QTestLog::setLogMode(QTestLog::XunitXML);
|
||||
logFormat = QTestLog::XunitXML;
|
||||
} else if (strcmp(argv[i], "-xml") == 0) {
|
||||
QTestLog::setLogMode(QTestLog::XML);
|
||||
logFormat = QTestLog::XML;
|
||||
} else if (strcmp(argv[i], "-lightxml") == 0) {
|
||||
QTestLog::setLogMode(QTestLog::LightXML);
|
||||
logFormat = QTestLog::LightXML;
|
||||
} else if (strcmp(argv[i], "-silent") == 0) {
|
||||
QTestLog::setVerboseLevel(-1);
|
||||
} else if (strcmp(argv[i], "-v1") == 0) {
|
||||
@ -1081,7 +1084,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml)
|
||||
fprintf(stderr, "-o needs an extra parameter specifying the filename\n");
|
||||
exit(1);
|
||||
} else {
|
||||
QTestLog::redirectOutput(argv[++i]);
|
||||
logFilename = argv[++i];
|
||||
}
|
||||
} else if (strcmp(argv[i], "-eventdelay") == 0) {
|
||||
if (i + 1 >= argc) {
|
||||
@ -1244,6 +1247,9 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml)
|
||||
QTEST_ASSERT(QTest::testFuncCount < 512);
|
||||
}
|
||||
}
|
||||
|
||||
// Create the logger
|
||||
QTestLog::initLogger(logFormat, logFilename);
|
||||
}
|
||||
|
||||
QBenchmarkResult qMedian(const QList<QBenchmarkResult> &container)
|
||||
|
@ -87,7 +87,6 @@ namespace QTest {
|
||||
static int maxWarnings = 2002;
|
||||
|
||||
static QAbstractTestLogger *testLogger = 0;
|
||||
static const char *outFile = 0;
|
||||
|
||||
static QtMsgHandler oldMessageHandler;
|
||||
|
||||
@ -164,24 +163,6 @@ namespace QTest {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void initLogger()
|
||||
{
|
||||
switch (QTest::logMode) {
|
||||
case QTestLog::Plain:
|
||||
QTest::testLogger = new QPlainTestLogger;
|
||||
break;
|
||||
case QTestLog::XML:
|
||||
QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Complete);
|
||||
break;
|
||||
case QTestLog::LightXML:
|
||||
QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Light);
|
||||
break;
|
||||
case QTestLog::XunitXML:
|
||||
QTest::testLogger = new QXunitTestLogger();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QTestLog::enterTestFunction(const char* function)
|
||||
@ -276,9 +257,8 @@ void QTestLog::addBenchmarkResult(const QBenchmarkResult &result)
|
||||
|
||||
void QTestLog::startLogging()
|
||||
{
|
||||
QTEST_ASSERT(!QTest::testLogger);
|
||||
QTest::initLogger();
|
||||
QTest::testLogger->startLogging(QTest::outFile);
|
||||
QTEST_ASSERT(QTest::testLogger);
|
||||
QTest::testLogger->startLogging();
|
||||
QTest::oldMessageHandler = qInstallMsgHandler(QTest::messageHandler);
|
||||
}
|
||||
|
||||
@ -292,6 +272,27 @@ void QTestLog::stopLogging()
|
||||
QTest::testLogger = 0;
|
||||
}
|
||||
|
||||
void QTestLog::initLogger(LogMode mode, const char *filename)
|
||||
{
|
||||
QTest::logMode = mode;
|
||||
|
||||
switch (mode) {
|
||||
case QTestLog::Plain:
|
||||
QTest::testLogger = new QPlainTestLogger(filename);
|
||||
break;
|
||||
case QTestLog::XML:
|
||||
QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Complete, filename);
|
||||
break;
|
||||
case QTestLog::LightXML:
|
||||
QTest::testLogger = new QXmlTestLogger(QXmlTestLogger::Light, filename);
|
||||
break;
|
||||
case QTestLog::XunitXML:
|
||||
QTest::testLogger = new QXunitTestLogger(filename);
|
||||
break;
|
||||
}
|
||||
QTEST_ASSERT(QTest::testLogger);
|
||||
}
|
||||
|
||||
void QTestLog::warn(const char *msg)
|
||||
{
|
||||
QTEST_ASSERT(QTest::testLogger);
|
||||
@ -308,11 +309,6 @@ void QTestLog::info(const char *msg, const char *file, int line)
|
||||
QTest::testLogger->addMessage(QAbstractTestLogger::Info, msg, file, line);
|
||||
}
|
||||
|
||||
void QTestLog::setLogMode(LogMode mode)
|
||||
{
|
||||
QTest::logMode = mode;
|
||||
}
|
||||
|
||||
QTestLog::LogMode QTestLog::logMode()
|
||||
{
|
||||
return QTest::logMode;
|
||||
@ -344,18 +340,6 @@ void QTestLog::addIgnoreMessage(QtMsgType type, const char *msg)
|
||||
list->next = item;
|
||||
}
|
||||
|
||||
void QTestLog::redirectOutput(const char *fileName)
|
||||
{
|
||||
QTEST_ASSERT(fileName);
|
||||
|
||||
QTest::outFile = fileName;
|
||||
}
|
||||
|
||||
const char *QTestLog::outputFileName()
|
||||
{
|
||||
return QTest::outFile;
|
||||
}
|
||||
|
||||
void QTestLog::setMaxWarnings(int m)
|
||||
{
|
||||
QTest::maxWarnings = m <= 0 ? INT_MAX : m + 2;
|
||||
|
@ -83,15 +83,13 @@ public:
|
||||
static void startLogging();
|
||||
static void stopLogging();
|
||||
|
||||
static void setLogMode(LogMode mode);
|
||||
static void initLogger(LogMode mode, const char *filename);
|
||||
|
||||
static LogMode logMode();
|
||||
|
||||
static void setVerboseLevel(int level);
|
||||
static int verboseLevel();
|
||||
|
||||
static void redirectOutput(const char *fileName);
|
||||
static const char *outputFileName();
|
||||
|
||||
static void setMaxWarnings(int max);
|
||||
|
||||
private:
|
||||
|
@ -92,8 +92,8 @@ namespace QTest {
|
||||
}
|
||||
|
||||
|
||||
QXmlTestLogger::QXmlTestLogger(XmlMode mode )
|
||||
: xmlmode(mode)
|
||||
QXmlTestLogger::QXmlTestLogger(XmlMode mode, const char *filename)
|
||||
: QAbstractTestLogger(filename), xmlmode(mode)
|
||||
{
|
||||
}
|
||||
|
||||
@ -101,9 +101,9 @@ QXmlTestLogger::~QXmlTestLogger()
|
||||
{
|
||||
}
|
||||
|
||||
void QXmlTestLogger::startLogging(const char *filename)
|
||||
void QXmlTestLogger::startLogging()
|
||||
{
|
||||
QAbstractTestLogger::startLogging(filename);
|
||||
QAbstractTestLogger::startLogging();
|
||||
QTestCharBuffer buf;
|
||||
|
||||
if (xmlmode == QXmlTestLogger::Complete) {
|
||||
|
@ -63,10 +63,10 @@ class QXmlTestLogger : public QAbstractTestLogger
|
||||
public:
|
||||
enum XmlMode { Complete = 0, Light };
|
||||
|
||||
QXmlTestLogger(XmlMode mode);
|
||||
QXmlTestLogger(XmlMode mode, const char *filename);
|
||||
~QXmlTestLogger();
|
||||
|
||||
void startLogging(const char *filename);
|
||||
void startLogging();
|
||||
void stopLogging();
|
||||
|
||||
void enterTestFunction(const char *function);
|
||||
|
@ -51,8 +51,9 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QXunitTestLogger::QXunitTestLogger()
|
||||
: listOfTestcases(0)
|
||||
QXunitTestLogger::QXunitTestLogger(const char *filename)
|
||||
: QAbstractTestLogger(filename)
|
||||
, listOfTestcases(0)
|
||||
, currentLogElement(0)
|
||||
, errorLogElement(0)
|
||||
, logFormatter(0)
|
||||
@ -68,9 +69,9 @@ QXunitTestLogger::~QXunitTestLogger()
|
||||
delete logFormatter;
|
||||
}
|
||||
|
||||
void QXunitTestLogger::startLogging(const char *filename)
|
||||
void QXunitTestLogger::startLogging()
|
||||
{
|
||||
QAbstractTestLogger::startLogging(filename);
|
||||
QAbstractTestLogger::startLogging();
|
||||
|
||||
logFormatter = new QTestXunitStreamer(this);
|
||||
delete errorLogElement;
|
||||
|
@ -63,10 +63,10 @@ class QTestElement;
|
||||
class QXunitTestLogger : public QAbstractTestLogger
|
||||
{
|
||||
public:
|
||||
QXunitTestLogger();
|
||||
QXunitTestLogger(const char *filename);
|
||||
~QXunitTestLogger();
|
||||
|
||||
void startLogging(const char *filename);
|
||||
void startLogging();
|
||||
void stopLogging();
|
||||
|
||||
void enterTestFunction(const char *function);
|
||||
|
Loading…
x
Reference in New Issue
Block a user