QFile-test: Do not fail when run with redirected stdout/stderr.

Check whether stdout/stderr is sequential.

Change-Id: Ia6311e265f0da03dce5b05d78a2058e0c2098bbf
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
This commit is contained in:
Friedemann Kleint 2011-12-08 16:11:13 +01:00 committed by Qt by Nokia
parent 04cac41e58
commit 2509a5b5a4

View File

@ -2971,29 +2971,35 @@ void tst_QFile::openStandardStreamsFileDescriptors()
//it does not have functions to simply open them like below .
QSKIP("Opening standard streams on Windows CE via descriptor not implemented");
#endif
// Using file descriptors
/* in/out/err.isSequential() are only true when run in a console (CI);
* it is false when they are redirected from/to files.
* Prevent failures in case someone runs tests with stdout/stderr redirected. */
{
QFile in;
in.open(STDIN_FILENO, QIODevice::ReadOnly);
if (!in.isSequential())
QSKIP("Standard input redirected.");
QCOMPARE( in.pos(), (qint64)0 );
QCOMPARE( in.size(), (qint64)0 );
QVERIFY( in.isSequential() );
}
{
QFile out;
out.open(STDOUT_FILENO, QIODevice::WriteOnly);
QVERIFY(out.open(STDOUT_FILENO, QIODevice::WriteOnly));
if (!out.isSequential())
QSKIP("Standard output redirected.");
QCOMPARE( out.pos(), (qint64)0 );
QCOMPARE( out.size(), (qint64)0 );
QVERIFY( out.isSequential() );
}
{
QFile err;
err.open(STDERR_FILENO, QIODevice::WriteOnly);
if (!err.isSequential())
QSKIP("Standard error redirected.");
QCOMPARE( err.pos(), (qint64)0 );
QCOMPARE( err.size(), (qint64)0 );
QVERIFY( err.isSequential() );
}
}