API unit tests from Maemo API test team.

A large number of tweaks and changes to original tests, and refactor
a lot of the mock backends to reduce duplication.

Changed viewfinder test case to use mock service and provider so
that it matches the image capture test case.

Reviewed-by: Jonas Rabbe
(cherry picked from commit e40bef5508a4165cec4a46b97115aed461027fa5)

Also licence header fix:
(cherry picked from commit e9ee9e8c48b45b97d62ee4a82e400fa9d8ea8107)

Change-Id: Ic59891d75563bb2e008a336eea859e8c44d8d831
Reviewed-on: http://codereview.qt.nokia.com/2078
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This commit is contained in:
Michael Goddard
2011-07-25 15:02:51 +10:00
committed by Qt by Nokia
parent 1e4dda9710
commit a6128410da
94 changed files with 8814 additions and 2396 deletions

View File

@@ -83,6 +83,10 @@ private slots:
void imageDetach();
void formatConversion_data();
void formatConversion();
void isMapped();
void isReadable();
void isWritable();
};
Q_DECLARE_METATYPE(QImage::Format)
@@ -344,6 +348,27 @@ void tst_QVideoFrame::copy_data()
<< QVideoFrame::TopField
<< qint64(63641740)
<< qint64(63641954);
QTest::newRow("64x64 ARGB32")
<< QAbstractVideoBuffer::GLTextureHandle
<< QSize(64, 64)
<< QVideoFrame::Format_ARGB32
<< QVideoFrame::BottomField
<< qint64(63641740)
<< qint64(63641954);
QTest::newRow("32x256 YUV420P")
<< QAbstractVideoBuffer::UserHandle
<< QSize(32, 256)
<< QVideoFrame::Format_YUV420P
<< QVideoFrame::InterlacedFrame
<< qint64(12345)
<< qint64(12389);
QTest::newRow("1052x756 ARGB32")
<< QAbstractVideoBuffer::NoHandle
<< QSize(1052, 756)
<< QVideoFrame::Format_ARGB32
<< QVideoFrame::ProgressiveFrame
<< qint64(12345)
<< qint64(12389);
QTest::newRow("32x256 YUV420P")
<< QAbstractVideoBuffer::UserHandle
<< QSize(32, 256)
@@ -399,7 +424,7 @@ void tst_QVideoFrame::copy()
QVERIFY(!buffer.isNull());
QVERIFY(otherFrame.isValid());
QVERIFY(otherFrame.isValid());
QCOMPARE(otherFrame.handleType(), handleType);
QCOMPARE(otherFrame.pixelFormat(), pixelFormat);
QCOMPARE(otherFrame.size(), size);
@@ -782,12 +807,98 @@ void tst_QVideoFrame::formatConversion()
QFETCH(QVideoFrame::PixelFormat, pixelFormat);
QCOMPARE(QVideoFrame::pixelFormatFromImageFormat(imageFormat) == pixelFormat,
imageFormat != QImage::Format_Invalid);
imageFormat != QImage::Format_Invalid);
QCOMPARE(QVideoFrame::imageFormatFromPixelFormat(pixelFormat) == imageFormat,
pixelFormat != QVideoFrame::Format_Invalid);
}
#define TEST_MAPPED(frame, mode) \
do { \
QVERIFY(frame.bits()); \
QVERIFY(frame.isMapped()); \
QCOMPARE(frame.mappedBytes(), 16384); \
QCOMPARE(frame.bytesPerLine(), 256); \
QCOMPARE(frame.mapMode(), mode); \
} while (0)
#define TEST_UNMAPPED(frame) \
do { \
QVERIFY(!frame.bits()); \
QVERIFY(!frame.isMapped()); \
QCOMPARE(frame.mappedBytes(), 0); \
QCOMPARE(frame.bytesPerLine(), 0); \
QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped); \
} while (0)
void tst_QVideoFrame::isMapped()
{
QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32);
TEST_UNMAPPED(frame);
QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly));
TEST_MAPPED(frame, QAbstractVideoBuffer::ReadOnly);
frame.unmap();
TEST_UNMAPPED(frame);
QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly));
TEST_MAPPED(frame, QAbstractVideoBuffer::WriteOnly);
frame.unmap();
TEST_UNMAPPED(frame);
QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
TEST_MAPPED(frame, QAbstractVideoBuffer::ReadWrite);
frame.unmap();
TEST_UNMAPPED(frame);
}
void tst_QVideoFrame::isReadable()
{
QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32);
QVERIFY(!frame.isMapped());
QVERIFY(!frame.isReadable());
QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly));
QVERIFY(frame.isMapped());
QVERIFY(frame.isReadable());
frame.unmap();
QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly));
QVERIFY(frame.isMapped());
QVERIFY(!frame.isReadable());
frame.unmap();
QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
QVERIFY(frame.isMapped());
QVERIFY(frame.isReadable());
frame.unmap();
}
void tst_QVideoFrame::isWritable()
{
QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32);
QVERIFY(!frame.isMapped());
QVERIFY(!frame.isWritable());
QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly));
QVERIFY(frame.isMapped());
QVERIFY(!frame.isWritable());
frame.unmap();
QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly));
QVERIFY(frame.isMapped());
QVERIFY(frame.isWritable());
frame.unmap();
QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
QVERIFY(frame.isMapped());
QVERIFY(frame.isWritable());
frame.unmap();
}
QTEST_MAIN(tst_QVideoFrame)
#include "tst_qvideoframe.moc"