From 301ed096f863e1ee54ad95045d1558b6cd0b23e2 Mon Sep 17 00:00:00 2001 From: Kurt Korbatits Date: Mon, 9 Jul 2012 09:13:29 +1000 Subject: [PATCH] Updated QAudioOutput and QAudioInput system tests - Updated tests with volume checking. - Updated reset function in QAudioInput test. (Checking bytesReady() in pull mode is not valid) (Checking state after writing one byte doesn't guarantee going to active state) - Improved stability in CI system Change-Id: I8018bfbc163971bcb3d5f7b7a1ece6306e75ed07 Reviewed-by: Michael Goddard --- .../integration/qaudioinput/tst_qaudioinput.cpp | 29 ++++++++++------------ .../integration/qaudiooutput/tst_qaudiooutput.cpp | 25 +++++++++++++++++++ 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp b/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp index c716d57..b593e41 100755 --- a/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp +++ b/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp @@ -465,7 +465,7 @@ void tst_QAudioInput::pull() audioInput.stop(); QTest::qWait(40); - QVERIFY2((stateSignal.count() == 1), + QTRY_VERIFY2((stateSignal.count() == 1), QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData()); QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()"); @@ -563,7 +563,7 @@ void tst_QAudioInput::pullSuspendResume() audioInput.stop(); QTest::qWait(40); - QVERIFY2((stateSignal.count() == 1), + QTRY_VERIFY2((stateSignal.count() == 1), QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData()); QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()"); @@ -646,7 +646,7 @@ void tst_QAudioInput::push() audioInput.stop(); QTest::qWait(40); - QVERIFY2((stateSignal.count() == 1), + QTRY_VERIFY2((stateSignal.count() == 1), QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData()); QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()"); @@ -698,7 +698,7 @@ void tst_QAudioInput::pushSuspendResume() // Check that 'elapsed' increases QTest::qWait(40); - QVERIFY2((audioInput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()"); + QTRY_VERIFY2((audioInput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()"); qint64 totalBytesRead = 0; bool firstBuffer = true; @@ -814,12 +814,10 @@ void tst_QAudioInput::reset() QVERIFY2((audioInput.state() == QAudio::IdleState), "didn't transition to IdleState after start()"); QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()"); QVERIFY(audioInput.periodSize() > 0); - QTRY_VERIFY2((audioInput.bytesReady() > 0), "no bytes available after starting"); + QTRY_VERIFY2((audioInput.bytesReady() > audioInput.periodSize()), "no bytes available after starting"); // Trigger a read - QByteArray data = device->read(1); - - QTRY_VERIFY2((audioInput.state() == QAudio::ActiveState), "didn't transition to ActiveState after read()"); + QByteArray data = device->read(audioInput.periodSize()); QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()"); stateSignal.clear(); @@ -850,7 +848,6 @@ void tst_QAudioInput::reset() QTRY_VERIFY2((audioInput.state() == QAudio::ActiveState), "didn't transition to ActiveState after start()"); QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()"); QVERIFY(audioInput.periodSize() > 0); - QTRY_VERIFY2((audioInput.bytesReady() > 0), "no bytes available after starting"); stateSignal.clear(); audioInput.reset(); @@ -874,18 +871,18 @@ void tst_QAudioInput::volume() qreal volume = audioInput.volume(); audioInput.setVolume(half); - QVERIFY(qFuzzyCompare(audioInput.volume(), half) || qFuzzyCompare(audioInput.volume(), one)); - + QTRY_VERIFY(qRound(audioInput.volume()*10.0f) == 5); // Wait a while to see if this changes QTest::qWait(500); - QVERIFY(qFuzzyCompare(audioInput.volume(), half) || qFuzzyCompare(audioInput.volume(), one)); - - audioInput.setVolume(volume); - QVERIFY(qFuzzyCompare(audioInput.volume(), volume)); + QTRY_VERIFY(qRound(audioInput.volume()*10.0f) == 5); + audioInput.setVolume(one); + QTRY_VERIFY(qRound(audioInput.volume()*10.0f) == 10); // Wait a while to see if this changes QTest::qWait(500); - QVERIFY(qFuzzyCompare(audioInput.volume(), volume)); + QTRY_VERIFY(qRound(audioInput.volume()*10.0f) == 10); + + audioInput.setVolume(volume); } } diff --git a/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp b/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp index aa226c2..8aece0c 100755 --- a/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp +++ b/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp @@ -100,6 +100,8 @@ private slots: void pushSuspendResume(); void pushUnderrun(); + void volume(); + private: typedef QSharedPointer FilePtr; @@ -981,6 +983,29 @@ void tst_QAudioOutput::pushUnderrun() } } +void tst_QAudioOutput::volume() +{ + QAudioOutput audioOutput(audioDevice.preferredFormat(), this); + + audioOutput.setVolume(0.3f); + QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 3); + // Wait a while to see if this changes + QTest::qWait(500); + QTRY_VERIFY(qRound(audioOutput.volume()*10.0f) == 3); + + 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) #include "tst_qaudiooutput.moc" -- 2.7.4