diff options
author | nelsonli <nelsonli@google.com> | 2019-11-12 14:47:12 +0800 |
---|---|---|
committer | nelsonli <nelsonli@google.com> | 2019-11-12 15:04:09 +0800 |
commit | 4aa11b163747747a05bc54ee3e18e1fcc78426c7 (patch) | |
tree | fde308f6bf8efcc859d5ba742ff5842c617a7c98 /soundtrigger | |
parent | a7e5d5fd5b6b9a01a17a74976f571f73014002e4 (diff) | |
download | platform_hardware_interfaces-4aa11b163747747a05bc54ee3e18e1fcc78426c7.tar.gz platform_hardware_interfaces-4aa11b163747747a05bc54ee3e18e1fcc78426c7.tar.bz2 platform_hardware_interfaces-4aa11b163747747a05bc54ee3e18e1fcc78426c7.zip |
[vts-core] add VtsHalSoundtriggerV2_*TargetTest to vts-core
Convert VtsHalSoundtriggerV2_*TargetTest to be parameterized test
and add it to vts-core
Bug: 142397658
Test: $atest VtsHalSoundtriggerV2_0TargetTest
$atest VtsHalSoundtriggerV2_1TargetTest
$atest VtsHalSoundtriggerV2_2TargetTest
Change-Id: Ibd9dec2b1aaa5ea0f5ca3fe2976b500048b3e426
Diffstat (limited to 'soundtrigger')
6 files changed, 50 insertions, 111 deletions
diff --git a/soundtrigger/2.0/vts/functional/Android.bp b/soundtrigger/2.0/vts/functional/Android.bp index f6207c4b27..13dcdec69e 100644 --- a/soundtrigger/2.0/vts/functional/Android.bp +++ b/soundtrigger/2.0/vts/functional/Android.bp @@ -19,5 +19,5 @@ cc_test { defaults: ["VtsHalTargetTestDefaults"], srcs: ["VtsHalSoundtriggerV2_0TargetTest.cpp"], static_libs: ["android.hardware.soundtrigger@2.0"], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/soundtrigger/2.0/vts/functional/VtsHalSoundtriggerV2_0TargetTest.cpp b/soundtrigger/2.0/vts/functional/VtsHalSoundtriggerV2_0TargetTest.cpp index 59ac13e0e6..d7a7d08728 100644 --- a/soundtrigger/2.0/vts/functional/VtsHalSoundtriggerV2_0TargetTest.cpp +++ b/soundtrigger/2.0/vts/functional/VtsHalSoundtriggerV2_0TargetTest.cpp @@ -23,15 +23,15 @@ #include <android/log.h> #include <cutils/native_handle.h> +#include <gtest/gtest.h> +#include <hidl/GtestPrinter.h> +#include <hidl/ServiceManagement.h> #include <log/log.h> #include <android/hardware/audio/common/2.0/types.h> #include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h> #include <android/hardware/soundtrigger/2.0/types.h> -#include <VtsHalHidlTargetTestBase.h> -#include <VtsHalHidlTargetTestEnvBase.h> - #define SHORT_TIMEOUT_PERIOD (1) using ::android::hardware::audio::common::V2_0::AudioDevice; @@ -86,27 +86,11 @@ class Monitor { int mCount; }; -// Test environment for SoundTrigger HIDL HAL. -class SoundTriggerHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { - public: - // get the test environment singleton - static SoundTriggerHidlEnvironment* Instance() { - static SoundTriggerHidlEnvironment* instance = new SoundTriggerHidlEnvironment; - return instance; - } - - virtual void registerTestServices() override { registerTestService<ISoundTriggerHw>(); } - - private: - SoundTriggerHidlEnvironment() {} -}; - // The main test class for Sound Trigger HIDL HAL. -class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { +class SoundTriggerHidlTest : public ::testing::TestWithParam<std::string> { public: virtual void SetUp() override { - mSoundTriggerHal = ::testing::VtsHalHidlTargetTestBase::getService<ISoundTriggerHw>( - SoundTriggerHidlEnvironment::Instance()->getServiceName<ISoundTriggerHw>()); + mSoundTriggerHal = ISoundTriggerHw::getService(GetParam()); ASSERT_NE(nullptr, mSoundTriggerHal.get()); mCallback = new SoundTriggerHwCallback(*this); ASSERT_NE(nullptr, mCallback.get()); @@ -167,7 +151,7 @@ class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { * - the implementation supports at least one sound model and one key phrase * - the implementation supports at least VOICE_TRIGGER recognition mode */ -TEST_F(SoundTriggerHidlTest, GetProperties) { +TEST_P(SoundTriggerHidlTest, GetProperties) { ISoundTriggerHw::Properties halProperties; Return<void> hidlReturn; int ret = -ENODEV; @@ -194,7 +178,7 @@ TEST_F(SoundTriggerHidlTest, GetProperties) { * There is no way to verify that implementation actually can load a sound model because each * sound model is vendor specific. */ -TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) { +TEST_P(SoundTriggerHidlTest, LoadInvalidModelFail) { Return<void> hidlReturn; int ret = -ENODEV; ISoundTriggerHw::PhraseSoundModel model; @@ -220,7 +204,7 @@ TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) { * Verifies that: * - the implementation returns error when passed a sound model with random data. */ -TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) { +TEST_P(SoundTriggerHidlTest, LoadGenericSoundModelFail) { int ret = -ENODEV; ISoundTriggerHw::SoundModel model; SoundModelHandle handle = 0; @@ -251,7 +235,7 @@ TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) { * - the implementation returns an error when called without a valid loaded sound model * */ -TEST_F(SoundTriggerHidlTest, UnloadModelNoModelFail) { +TEST_P(SoundTriggerHidlTest, UnloadModelNoModelFail) { Return<int32_t> hidlReturn(0); SoundModelHandle halHandle = 0; @@ -271,7 +255,7 @@ TEST_F(SoundTriggerHidlTest, UnloadModelNoModelFail) { * There is no way to verify that implementation actually starts recognition because no model can * be loaded. */ -TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) { +TEST_P(SoundTriggerHidlTest, StartRecognitionNoModelFail) { Return<int32_t> hidlReturn(0); SoundModelHandle handle = 0; PhraseRecognitionExtra phrase; @@ -299,7 +283,7 @@ TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) { * - the implementation returns an error when called without an active recognition running * */ -TEST_F(SoundTriggerHidlTest, StopRecognitionNoAStartFail) { +TEST_P(SoundTriggerHidlTest, StopRecognitionNoAStartFail) { Return<int32_t> hidlReturn(0); SoundModelHandle handle = 0; @@ -316,7 +300,7 @@ TEST_F(SoundTriggerHidlTest, StopRecognitionNoAStartFail) { * - the implementation implements this optional method or indicates it is not support by * returning -ENOSYS */ -TEST_F(SoundTriggerHidlTest, stopAllRecognitions) { +TEST_P(SoundTriggerHidlTest, stopAllRecognitions) { Return<int32_t> hidlReturn(0); hidlReturn = mSoundTriggerHal->stopAllRecognitions(); @@ -325,11 +309,7 @@ TEST_F(SoundTriggerHidlTest, stopAllRecognitions) { EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS); } -int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(SoundTriggerHidlEnvironment::Instance()); - ::testing::InitGoogleTest(&argc, argv); - SoundTriggerHidlEnvironment::Instance()->init(&argc, argv); - int status = RUN_ALL_TESTS(); - ALOGI("Test result = %d", status); - return status; -} +INSTANTIATE_TEST_SUITE_P( + PerInstance, SoundTriggerHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISoundTriggerHw::descriptor)), + android::hardware::PrintInstanceNameToString); diff --git a/soundtrigger/2.1/vts/functional/Android.bp b/soundtrigger/2.1/vts/functional/Android.bp index f1eb35d320..7830fe2602 100644 --- a/soundtrigger/2.1/vts/functional/Android.bp +++ b/soundtrigger/2.1/vts/functional/Android.bp @@ -25,5 +25,5 @@ cc_test { "android.hardware.soundtrigger@2.1", "libhidlmemory" ], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/soundtrigger/2.1/vts/functional/VtsHalSoundtriggerV2_1TargetTest.cpp b/soundtrigger/2.1/vts/functional/VtsHalSoundtriggerV2_1TargetTest.cpp index 0a2eeacad0..7f06ed9199 100644 --- a/soundtrigger/2.1/vts/functional/VtsHalSoundtriggerV2_1TargetTest.cpp +++ b/soundtrigger/2.1/vts/functional/VtsHalSoundtriggerV2_1TargetTest.cpp @@ -23,6 +23,9 @@ #include <android/log.h> #include <cutils/native_handle.h> +#include <gtest/gtest.h> +#include <hidl/GtestPrinter.h> +#include <hidl/ServiceManagement.h> #include <log/log.h> #include <android/hardware/audio/common/2.0/types.h> @@ -32,9 +35,6 @@ #include <android/hidl/allocator/1.0/IAllocator.h> #include <hidlmemory/mapping.h> -#include <VtsHalHidlTargetTestBase.h> -#include <VtsHalHidlTargetTestEnvBase.h> - #define SHORT_TIMEOUT_PERIOD (1) using ::android::sp; @@ -94,27 +94,11 @@ class Monitor { int mCount; }; -// Test environment for SoundTrigger HIDL HAL. -class SoundTriggerHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { - public: - // get the test environment singleton - static SoundTriggerHidlEnvironment* Instance() { - static SoundTriggerHidlEnvironment* instance = new SoundTriggerHidlEnvironment; - return instance; - } - - virtual void registerTestServices() override { registerTestService<ISoundTriggerHw>(); } - - private: - SoundTriggerHidlEnvironment() {} -}; - // The main test class for Sound Trigger HIDL HAL. -class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { +class SoundTriggerHidlTest : public ::testing::TestWithParam<std::string> { public: virtual void SetUp() override { - mSoundTriggerHal = ::testing::VtsHalHidlTargetTestBase::getService<ISoundTriggerHw>( - SoundTriggerHidlEnvironment::Instance()->getServiceName<ISoundTriggerHw>()); + mSoundTriggerHal = ISoundTriggerHw::getService(GetParam()); ASSERT_NE(nullptr, mSoundTriggerHal.get()); mCallback = new SoundTriggerHwCallback(*this); ASSERT_NE(nullptr, mCallback.get()); @@ -196,7 +180,7 @@ class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { * - the implementation supports at least one sound model and one key phrase * - the implementation supports at least VOICE_TRIGGER recognition mode */ -TEST_F(SoundTriggerHidlTest, GetProperties) { +TEST_P(SoundTriggerHidlTest, GetProperties) { ISoundTriggerHw::Properties halProperties; Return<void> hidlReturn; int ret = -ENODEV; @@ -223,7 +207,7 @@ TEST_F(SoundTriggerHidlTest, GetProperties) { * There is no way to verify that implementation actually can load a sound model because each * sound model is vendor specific. */ -TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) { +TEST_P(SoundTriggerHidlTest, LoadInvalidModelFail) { Return<void> hidlReturn; int ret = -ENODEV; V2_0_ISoundTriggerHw::PhraseSoundModel model; @@ -252,7 +236,7 @@ TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) { * There is no way to verify that implementation actually can load a sound model because each * sound model is vendor specific. */ -TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail_2_1) { +TEST_P(SoundTriggerHidlTest, LoadInvalidModelFail_2_1) { Return<void> hidlReturn; int ret = -ENODEV; ISoundTriggerHw::PhraseSoundModel model; @@ -277,7 +261,7 @@ TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail_2_1) { * Verifies that: * - the implementation returns an error when passed an empty sound model */ -TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail) { +TEST_P(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail) { int ret = -ENODEV; V2_0_ISoundTriggerHw::SoundModel model; SoundModelHandle handle = 0; @@ -301,7 +285,7 @@ TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail) { * Verifies that: * - the implementation returns error when passed a sound model with random data. */ -TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) { +TEST_P(SoundTriggerHidlTest, LoadGenericSoundModelFail) { int ret = -ENODEV; V2_0_ISoundTriggerHw::SoundModel model; SoundModelHandle handle = 0; @@ -329,7 +313,7 @@ TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) { * Verifies that: * - the implementation returns error when passed a sound model with random data. */ -TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail_2_1) { +TEST_P(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail_2_1) { int ret = -ENODEV; ISoundTriggerHw::SoundModel model; SoundModelHandle handle = 0; @@ -353,7 +337,7 @@ TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail_2_1) { * Verifies that: * - the implementation returns error when passed a sound model with random data. */ -TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail_2_1) { +TEST_P(SoundTriggerHidlTest, LoadGenericSoundModelFail_2_1) { int ret = -ENODEV; ISoundTriggerHw::SoundModel model; SoundModelHandle handle = 0; @@ -394,7 +378,7 @@ TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail_2_1) { * - the implementation returns an error when called without a valid loaded sound model * */ -TEST_F(SoundTriggerHidlTest, UnloadModelNoModelFail) { +TEST_P(SoundTriggerHidlTest, UnloadModelNoModelFail) { Return<int32_t> hidlReturn(0); SoundModelHandle halHandle = 0; @@ -414,7 +398,7 @@ TEST_F(SoundTriggerHidlTest, UnloadModelNoModelFail) { * There is no way to verify that implementation actually starts recognition because no model can * be loaded. */ -TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) { +TEST_P(SoundTriggerHidlTest, StartRecognitionNoModelFail) { Return<int32_t> hidlReturn(0); SoundModelHandle handle = 0; PhraseRecognitionExtra phrase; @@ -444,7 +428,7 @@ TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) { * There is no way to verify that implementation actually starts recognition because no model can * be loaded. */ -TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail_2_1) { +TEST_P(SoundTriggerHidlTest, StartRecognitionNoModelFail_2_1) { Return<int32_t> hidlReturn(0); SoundModelHandle handle = 0; PhraseRecognitionExtra phrase; @@ -472,7 +456,7 @@ TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail_2_1) { * - the implementation returns an error when called without an active recognition running * */ -TEST_F(SoundTriggerHidlTest, StopRecognitionNoAStartFail) { +TEST_P(SoundTriggerHidlTest, StopRecognitionNoAStartFail) { Return<int32_t> hidlReturn(0); SoundModelHandle handle = 0; @@ -489,7 +473,7 @@ TEST_F(SoundTriggerHidlTest, StopRecognitionNoAStartFail) { * - the implementation implements this optional method or indicates it is not supported by * returning -ENOSYS */ -TEST_F(SoundTriggerHidlTest, stopAllRecognitions) { +TEST_P(SoundTriggerHidlTest, stopAllRecognitions) { Return<int32_t> hidlReturn(0); hidlReturn = mSoundTriggerHal->stopAllRecognitions(); @@ -498,11 +482,7 @@ TEST_F(SoundTriggerHidlTest, stopAllRecognitions) { EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS); } -int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(SoundTriggerHidlEnvironment::Instance()); - ::testing::InitGoogleTest(&argc, argv); - SoundTriggerHidlEnvironment::Instance()->init(&argc, argv); - int status = RUN_ALL_TESTS(); - ALOGI("Test result = %d", status); - return status; -} +INSTANTIATE_TEST_SUITE_P( + PerInstance, SoundTriggerHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISoundTriggerHw::descriptor)), + android::hardware::PrintInstanceNameToString); diff --git a/soundtrigger/2.2/vts/functional/Android.bp b/soundtrigger/2.2/vts/functional/Android.bp index 08ccd7b09d..b5d241d263 100644 --- a/soundtrigger/2.2/vts/functional/Android.bp +++ b/soundtrigger/2.2/vts/functional/Android.bp @@ -23,5 +23,5 @@ cc_test { "android.hardware.soundtrigger@2.1", "android.hardware.soundtrigger@2.2", ], - test_suites: ["general-tests"], + test_suites: ["general-tests", "vts-core"], } diff --git a/soundtrigger/2.2/vts/functional/VtsHalSoundtriggerV2_2TargetTest.cpp b/soundtrigger/2.2/vts/functional/VtsHalSoundtriggerV2_2TargetTest.cpp index 0f37816e47..1cce5a1d78 100644 --- a/soundtrigger/2.2/vts/functional/VtsHalSoundtriggerV2_2TargetTest.cpp +++ b/soundtrigger/2.2/vts/functional/VtsHalSoundtriggerV2_2TargetTest.cpp @@ -23,42 +23,26 @@ #include <android/log.h> #include <cutils/native_handle.h> +#include <gtest/gtest.h> +#include <hidl/GtestPrinter.h> +#include <hidl/ServiceManagement.h> #include <log/log.h> #include <android/hardware/audio/common/2.0/types.h> #include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h> #include <android/hardware/soundtrigger/2.2/ISoundTriggerHw.h> -#include <VtsHalHidlTargetTestBase.h> -#include <VtsHalHidlTargetTestEnvBase.h> - using ::android::sp; using ::android::hardware::Return; using ::android::hardware::soundtrigger::V2_0::ISoundTriggerHwCallback; using ::android::hardware::soundtrigger::V2_0::SoundModelHandle; using ::android::hardware::soundtrigger::V2_2::ISoundTriggerHw; -// Test environment for SoundTrigger HIDL HAL. -class SoundTriggerHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { - public: - // get the test environment singleton - static SoundTriggerHidlEnvironment* Instance() { - static SoundTriggerHidlEnvironment* instance = new SoundTriggerHidlEnvironment; - return instance; - } - - void registerTestServices() override { registerTestService<ISoundTriggerHw>(); } - - private: - SoundTriggerHidlEnvironment() {} -}; - // The main test class for Sound Trigger HIDL HAL. -class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { +class SoundTriggerHidlTest : public ::testing::TestWithParam<std::string> { public: void SetUp() override { - mSoundTriggerHal = ::testing::VtsHalHidlTargetTestBase::getService<ISoundTriggerHw>( - SoundTriggerHidlEnvironment::Instance()->getServiceName<ISoundTriggerHw>()); + mSoundTriggerHal = ISoundTriggerHw::getService(GetParam()); ASSERT_NE(nullptr, mSoundTriggerHal.get()); } @@ -77,18 +61,13 @@ class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { * - the implementation returns -ENOSYS with invalid model handle * */ -TEST_F(SoundTriggerHidlTest, GetModelStateInvalidModel) { +TEST_P(SoundTriggerHidlTest, GetModelStateInvalidModel) { SoundModelHandle handle = 0; Return<int32_t> hidlReturn = mSoundTriggerHal->getModelState(handle); EXPECT_TRUE(hidlReturn.isOk()); EXPECT_EQ(-ENOSYS, hidlReturn); } - -int main(int argc, char** argv) { - ::testing::AddGlobalTestEnvironment(SoundTriggerHidlEnvironment::Instance()); - ::testing::InitGoogleTest(&argc, argv); - SoundTriggerHidlEnvironment::Instance()->init(&argc, argv); - int status = RUN_ALL_TESTS(); - ALOGI("Test result = %d", status); - return status; -} +INSTANTIATE_TEST_SUITE_P( + PerInstance, SoundTriggerHidlTest, + testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISoundTriggerHw::descriptor)), + android::hardware::PrintInstanceNameToString); |