Added data driven integration tests for qaudiooutput.
Change-Id: Ifde39817405557b073fbe60d612d01f48b9ec3ed Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
1ac9318645
commit
0e550eaae9
@@ -84,22 +84,34 @@ private slots:
|
|||||||
void invalidFormat_data();
|
void invalidFormat_data();
|
||||||
void invalidFormat();
|
void invalidFormat();
|
||||||
|
|
||||||
|
void bufferSize_data();
|
||||||
void bufferSize();
|
void bufferSize();
|
||||||
|
|
||||||
|
void notifyInterval_data();
|
||||||
void notifyInterval();
|
void notifyInterval();
|
||||||
|
|
||||||
void disableNotifyInterval();
|
void disableNotifyInterval();
|
||||||
|
|
||||||
void stopWhileStopped();
|
void stopWhileStopped();
|
||||||
void suspendWhileStopped();
|
void suspendWhileStopped();
|
||||||
void resumeWhileStopped();
|
void resumeWhileStopped();
|
||||||
|
|
||||||
|
void pull_data(){generate_audiofile_testrows();}
|
||||||
void pull();
|
void pull();
|
||||||
|
|
||||||
|
void pullSuspendResume_data(){generate_audiofile_testrows();}
|
||||||
void pullSuspendResume();
|
void pullSuspendResume();
|
||||||
|
|
||||||
|
void push_data(){generate_audiofile_testrows();}
|
||||||
void push();
|
void push();
|
||||||
|
|
||||||
|
void pushSuspendResume_data(){generate_audiofile_testrows();}
|
||||||
void pushSuspendResume();
|
void pushSuspendResume();
|
||||||
|
|
||||||
|
void pushUnderrun_data(){generate_audiofile_testrows();}
|
||||||
void pushUnderrun();
|
void pushUnderrun();
|
||||||
|
|
||||||
|
void volume_data();
|
||||||
void volume();
|
void volume();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -108,6 +120,8 @@ private:
|
|||||||
QString formatToFileName(const QAudioFormat &format);
|
QString formatToFileName(const QAudioFormat &format);
|
||||||
void createSineWaveData(const QAudioFormat &format, qint64 length, int sampleRate = 440);
|
void createSineWaveData(const QAudioFormat &format, qint64 length, int sampleRate = 440);
|
||||||
|
|
||||||
|
void generate_audiofile_testrows();
|
||||||
|
|
||||||
QAudioDeviceInfo audioDevice;
|
QAudioDeviceInfo audioDevice;
|
||||||
QList<QAudioFormat> testFormats;
|
QList<QAudioFormat> testFormats;
|
||||||
QList<FilePtr> audioFiles;
|
QList<FilePtr> audioFiles;
|
||||||
@@ -180,6 +194,21 @@ void tst_QAudioOutput::createSineWaveData(const QAudioFormat &format, qint64 len
|
|||||||
Q_ASSERT(m_buffer->open(QIODevice::ReadOnly));
|
Q_ASSERT(m_buffer->open(QIODevice::ReadOnly));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QAudioOutput::generate_audiofile_testrows()
|
||||||
|
{
|
||||||
|
QTest::addColumn<FilePtr>("audioFile");
|
||||||
|
QTest::addColumn<QAudioFormat>("audioFormat");
|
||||||
|
|
||||||
|
for (int i=0; i<audioFiles.count(); i++) {
|
||||||
|
QTest::newRow(QString("Audio File %1").arg(i).toLocal8Bit().constData())
|
||||||
|
<< audioFiles.at(i) << testFormats.at(i);
|
||||||
|
|
||||||
|
// Only run first format in CI system to reduce test times
|
||||||
|
if (m_inCISystem)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::initTestCase()
|
void tst_QAudioOutput::initTestCase()
|
||||||
{
|
{
|
||||||
qRegisterMetaType<QAudioFormat>();
|
qRegisterMetaType<QAudioFormat>();
|
||||||
@@ -329,53 +358,47 @@ void tst_QAudioOutput::invalidFormat()
|
|||||||
QTRY_VERIFY2((audioOutput.error() == QAudio::OpenError),"error() was not set to QAudio::OpenError after start()");
|
QTRY_VERIFY2((audioOutput.error() == QAudio::OpenError),"error() was not set to QAudio::OpenError after start()");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QAudioOutput::bufferSize_data()
|
||||||
|
{
|
||||||
|
QTest::addColumn<int>("bufferSize");
|
||||||
|
QTest::newRow("Buffer size 512") << 512;
|
||||||
|
QTest::newRow("Buffer size 4096") << 4096;
|
||||||
|
QTest::newRow("Buffer size 8192") << 8192;
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::bufferSize()
|
void tst_QAudioOutput::bufferSize()
|
||||||
{
|
{
|
||||||
|
QFETCH(int, bufferSize);
|
||||||
QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
|
QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
|
||||||
|
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), QString("error() was not set to QAudio::NoError on creation(%1)").arg(bufferSize).toLocal8Bit().constData());
|
||||||
|
|
||||||
audioOutput.setBufferSize(512);
|
audioOutput.setBufferSize(bufferSize);
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(512)");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize");
|
||||||
QVERIFY2((audioOutput.bufferSize() == 512),
|
QVERIFY2((audioOutput.bufferSize() == bufferSize),
|
||||||
QString("bufferSize: requested=512, actual=%2").arg(audioOutput.bufferSize()).toLocal8Bit().constData());
|
QString("bufferSize: requested=%1, actual=%2").arg(bufferSize).arg(audioOutput.bufferSize()).toLocal8Bit().constData());
|
||||||
|
}
|
||||||
|
|
||||||
audioOutput.setBufferSize(4096);
|
void tst_QAudioOutput::notifyInterval_data()
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(4096)");
|
{
|
||||||
QVERIFY2((audioOutput.bufferSize() == 4096),
|
QTest::addColumn<int>("interval");
|
||||||
QString("bufferSize: requested=4096, actual=%2").arg(audioOutput.bufferSize()).toLocal8Bit().constData());
|
QTest::newRow("Notify interval 50") << 50;
|
||||||
|
QTest::newRow("Notify interval 100") << 100;
|
||||||
audioOutput.setBufferSize(8192);
|
QTest::newRow("Notify interval 250") << 250;
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(8192)");
|
QTest::newRow("Notify interval 1000") << 1000;
|
||||||
QVERIFY2((audioOutput.bufferSize() == 8192),
|
|
||||||
QString("bufferSize: requested=8192, actual=%2").arg(audioOutput.bufferSize()).toLocal8Bit().constData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::notifyInterval()
|
void tst_QAudioOutput::notifyInterval()
|
||||||
{
|
{
|
||||||
|
QFETCH(int, interval);
|
||||||
QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
|
QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
|
||||||
|
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(50);
|
audioOutput.setNotifyInterval(interval);
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(50)");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), QString("error() is not QAudio::NoError after setNotifyInterval(%1)").arg(interval).toLocal8Bit().constData());
|
||||||
QVERIFY2((audioOutput.notifyInterval() == 50),
|
QVERIFY2((audioOutput.notifyInterval() == interval),
|
||||||
QString("notifyInterval: requested=50, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
|
QString("notifyInterval: requested=%1, actual=%2").arg(interval).arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(100);
|
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(100)");
|
|
||||||
QVERIFY2((audioOutput.notifyInterval() == 100),
|
|
||||||
QString("notifyInterval: requested=100, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
|
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(250);
|
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(250)");
|
|
||||||
QVERIFY2((audioOutput.notifyInterval() == 250),
|
|
||||||
QString("notifyInterval: requested=250, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
|
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(1000);
|
|
||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(1000)");
|
|
||||||
QVERIFY2((audioOutput.notifyInterval() == 1000),
|
|
||||||
QString("notifyInterval: requested=1000, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::disableNotifyInterval()
|
void tst_QAudioOutput::disableNotifyInterval()
|
||||||
@@ -479,8 +502,10 @@ void tst_QAudioOutput::resumeWhileStopped()
|
|||||||
|
|
||||||
void tst_QAudioOutput::pull()
|
void tst_QAudioOutput::pull()
|
||||||
{
|
{
|
||||||
for(int i=0; i<audioFiles.count(); i++) {
|
QFETCH(FilePtr, audioFile);
|
||||||
QAudioOutput audioOutput(testFormats.at(i), this);
|
QFETCH(QAudioFormat, audioFormat);
|
||||||
|
|
||||||
|
QAudioOutput audioOutput(audioFormat, this);
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(100);
|
audioOutput.setNotifyInterval(100);
|
||||||
audioOutput.setVolume(0.1f);
|
audioOutput.setVolume(0.1f);
|
||||||
@@ -493,12 +518,11 @@ void tst_QAudioOutput::pull()
|
|||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
||||||
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
||||||
|
|
||||||
QFile *audioFile = audioFiles.at(i).data();
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
audioFile->open(QIODevice::ReadOnly);
|
audioFile->open(QIODevice::ReadOnly);
|
||||||
audioFile->seek(WavHeader::headerLength());
|
audioFile->seek(WavHeader::headerLength());
|
||||||
|
|
||||||
audioOutput.start(audioFile);
|
audioOutput.start(audioFile.data());
|
||||||
|
|
||||||
// Check that QAudioOutput immediately transitions to ActiveState
|
// Check that QAudioOutput immediately transitions to ActiveState
|
||||||
QTRY_VERIFY2((stateSignal.count() == 1),
|
QTRY_VERIFY2((stateSignal.count() == 1),
|
||||||
@@ -536,11 +560,6 @@ void tst_QAudioOutput::pull()
|
|||||||
QVERIFY2(notifySignal.count() > 0, "not emitting notify() signal");
|
QVERIFY2(notifySignal.count() > 0, "not emitting notify() signal");
|
||||||
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
|
|
||||||
// Only run first format in CI system to reduce test times
|
|
||||||
if (m_inCISystem)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::pullSuspendResume()
|
void tst_QAudioOutput::pullSuspendResume()
|
||||||
@@ -549,8 +568,9 @@ void tst_QAudioOutput::pullSuspendResume()
|
|||||||
if (m_inCISystem)
|
if (m_inCISystem)
|
||||||
QSKIP("QTBUG-26504 Fails 20% of time with pulseaudio backend");
|
QSKIP("QTBUG-26504 Fails 20% of time with pulseaudio backend");
|
||||||
#endif
|
#endif
|
||||||
for(int i=0; i<audioFiles.count(); i++) {
|
QFETCH(FilePtr, audioFile);
|
||||||
QAudioOutput audioOutput(testFormats.at(i), this);
|
QFETCH(QAudioFormat, audioFormat);
|
||||||
|
QAudioOutput audioOutput(audioFormat, this);
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(100);
|
audioOutput.setNotifyInterval(100);
|
||||||
audioOutput.setVolume(0.1f);
|
audioOutput.setVolume(0.1f);
|
||||||
@@ -563,12 +583,11 @@ void tst_QAudioOutput::pullSuspendResume()
|
|||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
||||||
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
||||||
|
|
||||||
QFile *audioFile = audioFiles.at(i).data();
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
audioFile->open(QIODevice::ReadOnly);
|
audioFile->open(QIODevice::ReadOnly);
|
||||||
audioFile->seek(WavHeader::headerLength());
|
audioFile->seek(WavHeader::headerLength());
|
||||||
|
|
||||||
audioOutput.start(audioFile);
|
audioOutput.start(audioFile.data());
|
||||||
// Check that QAudioOutput immediately transitions to ActiveState
|
// Check that QAudioOutput immediately transitions to ActiveState
|
||||||
QTRY_VERIFY2((stateSignal.count() == 1),
|
QTRY_VERIFY2((stateSignal.count() == 1),
|
||||||
QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
|
QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
|
||||||
@@ -634,17 +653,14 @@ void tst_QAudioOutput::pullSuspendResume()
|
|||||||
QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
|
QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
|
||||||
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
|
|
||||||
// Only run first format in CI system to reduce test times
|
|
||||||
if (m_inCISystem)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::push()
|
void tst_QAudioOutput::push()
|
||||||
{
|
{
|
||||||
for(int i=0; i<audioFiles.count(); i++) {
|
QFETCH(FilePtr, audioFile);
|
||||||
QAudioOutput audioOutput(testFormats.at(i), this);
|
QFETCH(QAudioFormat, audioFormat);
|
||||||
|
|
||||||
|
QAudioOutput audioOutput(audioFormat, this);
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(100);
|
audioOutput.setNotifyInterval(100);
|
||||||
audioOutput.setVolume(0.1f);
|
audioOutput.setVolume(0.1f);
|
||||||
@@ -657,7 +673,6 @@ void tst_QAudioOutput::push()
|
|||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
||||||
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
||||||
|
|
||||||
QFile *audioFile = audioFiles.at(i).data();
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
audioFile->open(QIODevice::ReadOnly);
|
audioFile->open(QIODevice::ReadOnly);
|
||||||
audioFile->seek(WavHeader::headerLength());
|
audioFile->seek(WavHeader::headerLength());
|
||||||
@@ -725,11 +740,6 @@ void tst_QAudioOutput::push()
|
|||||||
QVERIFY2(notifySignal.count() > 0, "not emitting notify signal");
|
QVERIFY2(notifySignal.count() > 0, "not emitting notify signal");
|
||||||
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
|
|
||||||
// Only run first format in CI system to reduce test times
|
|
||||||
if (m_inCISystem)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::pushSuspendResume()
|
void tst_QAudioOutput::pushSuspendResume()
|
||||||
@@ -738,8 +748,10 @@ void tst_QAudioOutput::pushSuspendResume()
|
|||||||
if (m_inCISystem)
|
if (m_inCISystem)
|
||||||
QSKIP("QTBUG-26504 Fails 20% of time with pulseaudio backend");
|
QSKIP("QTBUG-26504 Fails 20% of time with pulseaudio backend");
|
||||||
#endif
|
#endif
|
||||||
for(int i=0; i<audioFiles.count(); i++) {
|
QFETCH(FilePtr, audioFile);
|
||||||
QAudioOutput audioOutput(testFormats.at(i), this);
|
QFETCH(QAudioFormat, audioFormat);
|
||||||
|
|
||||||
|
QAudioOutput audioOutput(audioFormat, this);
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(100);
|
audioOutput.setNotifyInterval(100);
|
||||||
audioOutput.setVolume(0.1f);
|
audioOutput.setVolume(0.1f);
|
||||||
@@ -752,7 +764,6 @@ void tst_QAudioOutput::pushSuspendResume()
|
|||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
||||||
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
||||||
|
|
||||||
QFile *audioFile = audioFiles.at(i).data();
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
audioFile->open(QIODevice::ReadOnly);
|
audioFile->open(QIODevice::ReadOnly);
|
||||||
audioFile->seek(WavHeader::headerLength());
|
audioFile->seek(WavHeader::headerLength());
|
||||||
@@ -861,17 +872,14 @@ void tst_QAudioOutput::pushSuspendResume()
|
|||||||
QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
|
QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
|
||||||
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
|
|
||||||
// Only run first format in CI system to reduce test times
|
|
||||||
if (m_inCISystem)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::pushUnderrun()
|
void tst_QAudioOutput::pushUnderrun()
|
||||||
{
|
{
|
||||||
for(int i=0; i<audioFiles.count(); i++) {
|
QFETCH(FilePtr, audioFile);
|
||||||
QAudioOutput audioOutput(testFormats.at(i), this);
|
QFETCH(QAudioFormat, audioFormat);
|
||||||
|
|
||||||
|
QAudioOutput audioOutput(audioFormat, this);
|
||||||
|
|
||||||
audioOutput.setNotifyInterval(100);
|
audioOutput.setNotifyInterval(100);
|
||||||
audioOutput.setVolume(0.1f);
|
audioOutput.setVolume(0.1f);
|
||||||
@@ -884,7 +892,6 @@ void tst_QAudioOutput::pushUnderrun()
|
|||||||
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
|
||||||
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
|
||||||
|
|
||||||
QFile *audioFile = audioFiles.at(i).data();
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
audioFile->open(QIODevice::ReadOnly);
|
audioFile->open(QIODevice::ReadOnly);
|
||||||
audioFile->seek(WavHeader::headerLength());
|
audioFile->seek(WavHeader::headerLength());
|
||||||
@@ -982,34 +989,28 @@ void tst_QAudioOutput::pushUnderrun()
|
|||||||
QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
|
QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
|
||||||
|
|
||||||
audioFile->close();
|
audioFile->close();
|
||||||
|
|
||||||
// Only run first format in CI system to reduce test times
|
|
||||||
if (m_inCISystem)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QAudioOutput::volume_data()
|
||||||
|
{
|
||||||
|
QTest::addColumn<float>("actualFloat");
|
||||||
|
QTest::addColumn<int>("expectedInt");
|
||||||
|
QTest::newRow("Volume 0.3") << 0.3f << 3;
|
||||||
|
QTest::newRow("Volume 0.6") << 0.6f << 6;
|
||||||
|
QTest::newRow("Volume 0.9") << 0.9f << 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QAudioOutput::volume()
|
void tst_QAudioOutput::volume()
|
||||||
{
|
{
|
||||||
|
QFETCH(float, actualFloat);
|
||||||
|
QFETCH(int, expectedInt);
|
||||||
QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
|
QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
|
||||||
|
|
||||||
audioOutput.setVolume(0.3f);
|
audioOutput.setVolume(actualFloat);
|
||||||
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 3);
|
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == expectedInt);
|
||||||
// Wait a while to see if this changes
|
// Wait a while to see if this changes
|
||||||
QTest::qWait(500);
|
QTest::qWait(500);
|
||||||
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 3);
|
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == expectedInt);
|
||||||
|
|
||||||
audioOutput.setVolume(0.6f);
|
|
||||||
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 6);
|
|
||||||
// Wait a while to see if this changes
|
|
||||||
QTest::qWait(500);
|
|
||||||
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 6);
|
|
||||||
|
|
||||||
audioOutput.setVolume(0.9f);
|
|
||||||
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 9);
|
|
||||||
// Wait a while to see if this changes
|
|
||||||
QTest::qWait(500);
|
|
||||||
QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 9);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QTEST_MAIN(tst_QAudioOutput)
|
QTEST_MAIN(tst_QAudioOutput)
|
||||||
|
|||||||
Reference in New Issue
Block a user