Allow for some error in volume testing.
BUG=616 TESTED=voe_auto_test:VolumeTest.* now passes on a MacBook Review URL: https://webrtc-codereview.appspot.com/1028005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3348 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
d005468e9b
commit
08d660f08e
@ -10,6 +10,20 @@
|
|||||||
|
|
||||||
#include "after_streaming_fixture.h"
|
#include "after_streaming_fixture.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
void ExpectVolumeNear(int expected, int actual) {
|
||||||
|
// The hardware volume may be more coarsely quantized than [0, 255], so
|
||||||
|
// it is not always reasonable to expect to get exactly what we set. This
|
||||||
|
// allows for some error.
|
||||||
|
const int kMaxVolumeError = 10;
|
||||||
|
EXPECT_NEAR(expected, actual, kMaxVolumeError);
|
||||||
|
EXPECT_GE(actual, 0);
|
||||||
|
EXPECT_LE(actual, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
class VolumeTest : public AfterStreamingFixture {
|
class VolumeTest : public AfterStreamingFixture {
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -33,20 +47,20 @@ TEST_F(VolumeTest, SetVolumeBeforePlayoutWorks) {
|
|||||||
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(200));
|
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(200));
|
||||||
unsigned int volume;
|
unsigned int volume;
|
||||||
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
||||||
EXPECT_EQ(200u, volume);
|
ExpectVolumeNear(200u, volume);
|
||||||
|
|
||||||
PausePlaying();
|
PausePlaying();
|
||||||
ResumePlaying();
|
ResumePlaying();
|
||||||
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
||||||
// Ensure the volume has not changed after resuming playout.
|
// Ensure the volume has not changed after resuming playout.
|
||||||
EXPECT_EQ(200u, volume);
|
ExpectVolumeNear(200u, volume);
|
||||||
|
|
||||||
PausePlaying();
|
PausePlaying();
|
||||||
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(100));
|
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(100));
|
||||||
ResumePlaying();
|
ResumePlaying();
|
||||||
// Ensure the volume set while paused is retained.
|
// Ensure the volume set while paused is retained.
|
||||||
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
||||||
EXPECT_EQ(100u, volume);
|
ExpectVolumeNear(100u, volume);
|
||||||
|
|
||||||
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(original_volume));
|
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(original_volume));
|
||||||
}
|
}
|
||||||
@ -60,20 +74,20 @@ TEST_F(VolumeTest, ManualSetVolumeWorks) {
|
|||||||
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(0));
|
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(0));
|
||||||
unsigned int volume;
|
unsigned int volume;
|
||||||
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
||||||
EXPECT_EQ(0u, volume);
|
ExpectVolumeNear(0u, volume);
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
|
|
||||||
TEST_LOG("Setting speaker volume to 100 out of 255.\n");
|
TEST_LOG("Setting speaker volume to 100 out of 255.\n");
|
||||||
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(100));
|
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(100));
|
||||||
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
||||||
EXPECT_EQ(100u, volume);
|
ExpectVolumeNear(100u, volume);
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
|
|
||||||
// Set the volume to 255 very briefly so we don't blast the poor user
|
// Set the volume to 255 very briefly so we don't blast the poor user
|
||||||
// listening to this. This is just to test the call succeeds.
|
// listening to this. This is just to test the call succeeds.
|
||||||
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(255));
|
EXPECT_EQ(0, voe_volume_control_->SetSpeakerVolume(255));
|
||||||
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
EXPECT_EQ(0, voe_volume_control_->GetSpeakerVolume(volume));
|
||||||
EXPECT_EQ(255u, volume);
|
ExpectVolumeNear(255u, volume);
|
||||||
|
|
||||||
TEST_LOG("Setting speaker volume to the original %d out of 255.\n",
|
TEST_LOG("Setting speaker volume to the original %d out of 255.\n",
|
||||||
original_volume);
|
original_volume);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user