Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QPlainTestLogger Class Reference

#include <qplaintestlogger_p.h>

+ Inheritance diagram for QPlainTestLogger:
+ Collaboration diagram for QPlainTestLogger:

Public Member Functions

 QPlainTestLogger (const char *filename)
 
 ~QPlainTestLogger ()
 
void startLogging () override
 Called before the start of a test run.
 
void stopLogging () override
 Called after the end of a test run.
 
void enterTestFunction (const char *function) override
 This virtual method is called before each test function is invoked.
 
void leaveTestFunction () override
 This virtual method is called after a test function has completed, to match \l enterTestFunction().
 
void addIncident (IncidentTypes type, const char *description, const char *file=nullptr, int line=0) override
 This virtual method is called when an event occurs that relates to the resolution of the test.
 
void addBenchmarkResult (const QBenchmarkResult &) final override
 This virtual method is called after a benchmark has been run enough times to produce usable data.
 
void addBenchmarkResults (const QList< QBenchmarkResult > &results) override
 
void addMessage (QtMsgType, const QMessageLogContext &, const QString &) override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This virtual method is called from the custom message handler QtTest installs in place of Qt's default message handler for the duration of testing, unless QTest::ignoreMessage() was used to ignore it, or too many messages have previously been processed.
 
void addMessage (MessageTypes type, const QString &message, const char *file=nullptr, int line=0) override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
bool isRepeatSupported () const override
 Returns true if the logger supports repeated test runs.
 
- Public Member Functions inherited from QAbstractTestLogger
 QAbstractTestLogger (const char *filename)
 Constructs the base-class parts of the logger.
 
virtual ~QAbstractTestLogger ()
 Destroys the logger object.
 
virtual void enterTestData (QTestData *)
 This virtual method is called before and after each call to a test function.
 
bool isLoggingToStdout () const
 Returns true if the output stream is standard output.
 
void outputString (const char *msg)
 Convenience method to write msg to the output stream.
 

Additional Inherited Members

- Public Types inherited from QAbstractTestLogger
enum  IncidentTypes {
  Skip , Pass , XFail , Fail ,
  XPass , BlacklistedPass , BlacklistedFail , BlacklistedXPass ,
  BlacklistedXFail
}
 \value Pass The test ran to completion successfully. More...
 
enum  MessageTypes {
  QDebug , QInfo , QWarning , QCritical ,
  QFatal , Info , Warn
}
 The members whose names begin with Q describe messages that originate in calls, by the test or code under test, to Qt logging functions (implemented as macros) whose names are similar, with a q in place of the leading Q. More...
 
- Protected Member Functions inherited from QAbstractTestLogger
void filterUnprintable (char *str) const
 Helper utility to blot out unprintable characters in str.
 
- Protected Attributes inherited from QAbstractTestLogger
FILE * stream
 

Detailed Description

\inmodule QtTest

QPlainTestLogger implements basic logging of test results.

The format is Qt-specific and aims to be easy to read.

Definition at line 22 of file qplaintestlogger_p.h.

Constructor & Destructor Documentation

◆ QPlainTestLogger()

QPlainTestLogger::QPlainTestLogger ( const char * filename)

Definition at line 403 of file qplaintestlogger.cpp.

◆ ~QPlainTestLogger()

QPlainTestLogger::~QPlainTestLogger ( )
default

Member Function Documentation

◆ addBenchmarkResult()

void QPlainTestLogger::addBenchmarkResult ( const QBenchmarkResult & result)
inlinefinaloverridevirtual

This virtual method is called after a benchmark has been run enough times to produce usable data.

It is passed the median result from all cycles of the code controlled by the test's QBENCHMARK loop.

Every logging implementation must implement this method.

See also
addIncident(), addMessage()

Implements QAbstractTestLogger.

Definition at line 36 of file qplaintestlogger_p.h.

◆ addBenchmarkResults()

void QPlainTestLogger::addBenchmarkResults ( const QList< QBenchmarkResult > & results)
overridevirtual

Reimplemented from QAbstractTestLogger.

Definition at line 470 of file qplaintestlogger.cpp.

References QList< T >::first(), QList< T >::isEmpty(), results, and QTestLog::verboseLevel().

+ Here is the call graph for this function:

◆ addIncident()

void QPlainTestLogger::addIncident ( IncidentTypes type,
const char * description,
const char * file = nullptr,
int line = 0 )
overridevirtual

This virtual method is called when an event occurs that relates to the resolution of the test.

The type indicates whether this was a pass, a fail or a skip, whether a failure was expected, and whether the test being run is blacklisted. The description may be empty (for a pass) or a message describing the nature of the incident. Where the location in code of the incident is known, it is indicated by file and line; otherwise, these are nullptr and 0, respectively.

Every logging implementation must implement this method. Note that there are circumstances where more than one incident may be reported, in this way, for a single run of a test on a single dataset. It is the implementation's responsibility to recognize such cases and decide what to do about them. For purposes of counting resolutions of tests in the "Totals" report at the end of a test run, QtTest considers the first incident (excluding XFail and its blacklisted variant) decisive.

See also
addMessage(), addBenchmarkResult()

Implements QAbstractTestLogger.

Definition at line 459 of file qplaintestlogger.cpp.

References QAbstractTestLogger::BlacklistedPass, QAbstractTestLogger::BlacklistedXFail, file, line, QAbstractTestLogger::Pass, QTest::ptIncidentType2String(), QTestLog::verboseLevel(), and QAbstractTestLogger::XFail.

+ Here is the call graph for this function:

◆ addMessage() [1/2]

void QPlainTestLogger::addMessage ( MessageTypes type,
const QString & message,
const char * file = nullptr,
int line = 0 )
overridevirtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

This virtual method is called, via its QtMsgType overload, from the custom message handler QtTest installs. It is also used to warn about various situations detected by QtTest itself, such as failure to see a message anticipated by QTest::ignoreMessage() and, particularly when verbosity options have been enabled via the command-line, to log some extra information.

Every logging implementation must implement this method. The type indicates the category of message and the message is the content to be reported. When the message is associated with specific code, the name of the file and line number within it are also supplied; otherwise, these are \nullptr and 0, respectively.

See also
QTest::ignoreMessage(), addIncident()

Implements QAbstractTestLogger.

Definition at line 485 of file qplaintestlogger.cpp.

References file, line, QTest::ptMessageType2String(), QAbstractTestLogger::QFatal, qPrintable, and QTestLog::verboseLevel().

+ Here is the call graph for this function:

◆ addMessage() [2/2]

void QPlainTestLogger::addMessage ( QtMsgType type,
const QMessageLogContext & context,
const QString & message )
overridevirtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This virtual method is called from the custom message handler QtTest installs in place of Qt's default message handler for the duration of testing, unless QTest::ignoreMessage() was used to ignore it, or too many messages have previously been processed.

(The limiting number of messages is controlled by the -maxwarnings option to a test and defaults to 2002.)

Logging implementations should not normally need to override this method. The base implementation converts type to the matching \l MessageType, formats the given message suitably for the specified context, and forwards the converted type and formatted message to the overload that takes MessageType and QString.

See also
QTest::ignoreMessage(), addIncident()

Reimplemented from QAbstractTestLogger.

Definition at line 480 of file qplaintestlogger.cpp.

References QAbstractTestLogger::addMessage(), and context.

+ Here is the call graph for this function:

◆ enterTestFunction()

void QPlainTestLogger::enterTestFunction ( const char * function)
overridevirtual

This virtual method is called before each test function is invoked.

It is passed the name of the test function (without its class prefix) as function. It is likewise called for {initTestCase()} at the start of testing, after \l startLogging(), and for {cleanupTestCase()} at the end of testing, in each case passing the name of the function. It is also called with \nullptr as function after the last of these functions, or in the event of an early end to testing, before \l stopLogging().

For data-driven test functions, this is called only once, before the data function is called to set up the table of datasets and the test is run with its first dataset.

Every logging implementation must implement this method. It shall typically need to record the name of the function for later use in log messages.

See also
leaveTestFunction(), enterTestData()

Implements QAbstractTestLogger.

Definition at line 449 of file qplaintestlogger.cpp.

References QAbstractTestLogger::Info, QTest::ptMessageType2String(), and QTestLog::verboseLevel().

+ Here is the call graph for this function:

◆ isRepeatSupported()

bool QPlainTestLogger::isRepeatSupported ( ) const
overridevirtual

Returns true if the logger supports repeated test runs.

Repetition of test runs is disabled by default, and can be enabled only for test loggers that support it. Even if the logger may create syntactically correct test reports, log-file analyzers may assume that test names are unique within one report file.

Reimplemented from QAbstractTestLogger.

Definition at line 495 of file qplaintestlogger.cpp.

◆ leaveTestFunction()

void QPlainTestLogger::leaveTestFunction ( )
overridevirtual

This virtual method is called after a test function has completed, to match \l enterTestFunction().

For data-driven test functions, this is called only once, after the test is run with its last dataset.

Every logging implementation must implement this method. In some cases it may be called more than once without an intervening call to \l enterTestFunction(). In such cases, the implementation should ignore these later calls, until the next call to enterTestFunction().

See also
enterTestFunction(), enterTestData()

Implements QAbstractTestLogger.

Definition at line 455 of file qplaintestlogger.cpp.

◆ startLogging()

void QPlainTestLogger::startLogging ( )
overridevirtual

Called before the start of a test run.

This virtual method is called before the first tests are run. A logging implementation might open a file, write some preamble, or prepare in other ways, such as setting up initial values of variables. It can use the usual Qt logging infrastucture, since it is also called before QtTest installs its own custom message handler.

See also
stopLogging()

Reimplemented from QAbstractTestLogger.

Definition at line 410 of file qplaintestlogger.cpp.

References QLibraryInfo::build(), QTestResult::currentTestObjectName(), QSysInfo::productType(), QSysInfo::productVersion(), qPrintable, qsnprintf(), QTEST_VERSION_STR, QAbstractTestLogger::startLogging(), and QTestLog::verboseLevel().

+ Here is the call graph for this function:

◆ stopLogging()

void QPlainTestLogger::stopLogging ( )
overridevirtual

Called after the end of a test run.

This virtual method is called after all tests have run. A logging implementation might collate information gathered from the run, write a summary, or close a file. It can use the usual Qt logging infrastucture, since it is also called after QtTest has restored the default message handler it replaced with its own custom message handler.

See also
startLogging()

Reimplemented from QAbstractTestLogger.

Definition at line 427 of file qplaintestlogger.cpp.

References QTestLog::blacklistCount(), QTestResult::currentTestObjectName(), QTestLog::failCount(), QTestLog::msecsTotalTime(), QTestLog::passCount(), qRound(), qsnprintf(), QTestLog::skipCount(), QAbstractTestLogger::stopLogging(), and QTestLog::verboseLevel().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: