alsa_util_unittest.cc 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "media/audio/alsa/alsa_util.h"
  5. #include "media/audio/alsa/mock_alsa_wrapper.h"
  6. #include "testing/gtest/include/gtest/gtest.h"
  7. namespace alsa_util {
  8. namespace {
  9. using ::testing::_;
  10. using ::testing::InSequence;
  11. using ::testing::Invoke;
  12. using ::testing::Return;
  13. } // namespace
  14. TEST(AlsaUtilTest, FreeHwParams) {
  15. InSequence seq;
  16. media::MockAlsaWrapper mock_alsa_wrapper;
  17. snd_pcm_hw_params_t* params_ptr = (snd_pcm_hw_params_t*)malloc(1);
  18. EXPECT_CALL(mock_alsa_wrapper, PcmOpen(_, _, _, _)).WillOnce(Return(0));
  19. EXPECT_CALL(mock_alsa_wrapper, PcmSetParams(_, _, _, _, _, _, _))
  20. .WillOnce(Return(-1));
  21. EXPECT_CALL(mock_alsa_wrapper, StrError(_)).WillOnce(Return("error"));
  22. EXPECT_CALL(mock_alsa_wrapper, PcmHwParamsMalloc(_))
  23. .WillOnce(Invoke([params_ptr](snd_pcm_hw_params_t** params) {
  24. *params = params_ptr;
  25. return 0;
  26. }));
  27. EXPECT_CALL(mock_alsa_wrapper, PcmHwParamsAny(_, _)).WillOnce(Return(-1));
  28. EXPECT_CALL(mock_alsa_wrapper, StrError(_)).WillOnce(Return("error"));
  29. EXPECT_CALL(mock_alsa_wrapper, PcmHwParamsFree(params_ptr));
  30. EXPECT_CALL(mock_alsa_wrapper, PcmName(_)).WillOnce(Return("default"));
  31. EXPECT_CALL(mock_alsa_wrapper, PcmClose(_)).WillOnce(Return(0));
  32. snd_pcm_t* handle = OpenCaptureDevice(&mock_alsa_wrapper, "default", 2, 48000,
  33. SND_PCM_FORMAT_S16, 40000, 10000);
  34. EXPECT_EQ(handle, nullptr);
  35. free(params_ptr);
  36. }
  37. } // namespace alsa_util