Merge "[vts-core] add VtsHalSoundtriggerV2_*TargetTest to vts-core"

This commit is contained in:
Treehugger Robot
2019-11-13 02:32:46 +00:00
committed by Gerrit Code Review
6 changed files with 50 additions and 111 deletions

View File

@@ -19,5 +19,5 @@ cc_test {
defaults: ["VtsHalTargetTestDefaults"], defaults: ["VtsHalTargetTestDefaults"],
srcs: ["VtsHalSoundtriggerV2_0TargetTest.cpp"], srcs: ["VtsHalSoundtriggerV2_0TargetTest.cpp"],
static_libs: ["android.hardware.soundtrigger@2.0"], static_libs: ["android.hardware.soundtrigger@2.0"],
test_suites: ["general-tests"], test_suites: ["general-tests", "vts-core"],
} }

View File

@@ -23,15 +23,15 @@
#include <android/log.h> #include <android/log.h>
#include <cutils/native_handle.h> #include <cutils/native_handle.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
#include <hidl/ServiceManagement.h>
#include <log/log.h> #include <log/log.h>
#include <android/hardware/audio/common/2.0/types.h> #include <android/hardware/audio/common/2.0/types.h>
#include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h> #include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h>
#include <android/hardware/soundtrigger/2.0/types.h> #include <android/hardware/soundtrigger/2.0/types.h>
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#define SHORT_TIMEOUT_PERIOD (1) #define SHORT_TIMEOUT_PERIOD (1)
using ::android::hardware::audio::common::V2_0::AudioDevice; using ::android::hardware::audio::common::V2_0::AudioDevice;
@@ -86,27 +86,11 @@ class Monitor {
int mCount; 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. // The main test class for Sound Trigger HIDL HAL.
class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { class SoundTriggerHidlTest : public ::testing::TestWithParam<std::string> {
public: public:
virtual void SetUp() override { virtual void SetUp() override {
mSoundTriggerHal = ::testing::VtsHalHidlTargetTestBase::getService<ISoundTriggerHw>( mSoundTriggerHal = ISoundTriggerHw::getService(GetParam());
SoundTriggerHidlEnvironment::Instance()->getServiceName<ISoundTriggerHw>());
ASSERT_NE(nullptr, mSoundTriggerHal.get()); ASSERT_NE(nullptr, mSoundTriggerHal.get());
mCallback = new SoundTriggerHwCallback(*this); mCallback = new SoundTriggerHwCallback(*this);
ASSERT_NE(nullptr, mCallback.get()); 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 one sound model and one key phrase
* - the implementation supports at least VOICE_TRIGGER recognition mode * - the implementation supports at least VOICE_TRIGGER recognition mode
*/ */
TEST_F(SoundTriggerHidlTest, GetProperties) { TEST_P(SoundTriggerHidlTest, GetProperties) {
ISoundTriggerHw::Properties halProperties; ISoundTriggerHw::Properties halProperties;
Return<void> hidlReturn; Return<void> hidlReturn;
int ret = -ENODEV; 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 * There is no way to verify that implementation actually can load a sound model because each
* sound model is vendor specific. * sound model is vendor specific.
*/ */
TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) { TEST_P(SoundTriggerHidlTest, LoadInvalidModelFail) {
Return<void> hidlReturn; Return<void> hidlReturn;
int ret = -ENODEV; int ret = -ENODEV;
ISoundTriggerHw::PhraseSoundModel model; ISoundTriggerHw::PhraseSoundModel model;
@@ -220,7 +204,7 @@ TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) {
* Verifies that: * Verifies that:
* - the implementation returns error when passed a sound model with random data. * - the implementation returns error when passed a sound model with random data.
*/ */
TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) { TEST_P(SoundTriggerHidlTest, LoadGenericSoundModelFail) {
int ret = -ENODEV; int ret = -ENODEV;
ISoundTriggerHw::SoundModel model; ISoundTriggerHw::SoundModel model;
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
@@ -251,7 +235,7 @@ TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) {
* - the implementation returns an error when called without a valid loaded sound model * - 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); Return<int32_t> hidlReturn(0);
SoundModelHandle halHandle = 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 * There is no way to verify that implementation actually starts recognition because no model can
* be loaded. * be loaded.
*/ */
TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) { TEST_P(SoundTriggerHidlTest, StartRecognitionNoModelFail) {
Return<int32_t> hidlReturn(0); Return<int32_t> hidlReturn(0);
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
PhraseRecognitionExtra phrase; PhraseRecognitionExtra phrase;
@@ -299,7 +283,7 @@ TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) {
* - the implementation returns an error when called without an active recognition running * - 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); Return<int32_t> hidlReturn(0);
SoundModelHandle handle = 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 * - the implementation implements this optional method or indicates it is not support by
* returning -ENOSYS * returning -ENOSYS
*/ */
TEST_F(SoundTriggerHidlTest, stopAllRecognitions) { TEST_P(SoundTriggerHidlTest, stopAllRecognitions) {
Return<int32_t> hidlReturn(0); Return<int32_t> hidlReturn(0);
hidlReturn = mSoundTriggerHal->stopAllRecognitions(); hidlReturn = mSoundTriggerHal->stopAllRecognitions();
@@ -325,11 +309,7 @@ TEST_F(SoundTriggerHidlTest, stopAllRecognitions) {
EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS); EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS);
} }
int main(int argc, char** argv) { INSTANTIATE_TEST_SUITE_P(
::testing::AddGlobalTestEnvironment(SoundTriggerHidlEnvironment::Instance()); PerInstance, SoundTriggerHidlTest,
::testing::InitGoogleTest(&argc, argv); testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISoundTriggerHw::descriptor)),
SoundTriggerHidlEnvironment::Instance()->init(&argc, argv); android::hardware::PrintInstanceNameToString);
int status = RUN_ALL_TESTS();
ALOGI("Test result = %d", status);
return status;
}

View File

@@ -25,5 +25,5 @@ cc_test {
"android.hardware.soundtrigger@2.1", "android.hardware.soundtrigger@2.1",
"libhidlmemory" "libhidlmemory"
], ],
test_suites: ["general-tests"], test_suites: ["general-tests", "vts-core"],
} }

View File

@@ -23,6 +23,9 @@
#include <android/log.h> #include <android/log.h>
#include <cutils/native_handle.h> #include <cutils/native_handle.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
#include <hidl/ServiceManagement.h>
#include <log/log.h> #include <log/log.h>
#include <android/hardware/audio/common/2.0/types.h> #include <android/hardware/audio/common/2.0/types.h>
@@ -32,9 +35,6 @@
#include <android/hidl/allocator/1.0/IAllocator.h> #include <android/hidl/allocator/1.0/IAllocator.h>
#include <hidlmemory/mapping.h> #include <hidlmemory/mapping.h>
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#define SHORT_TIMEOUT_PERIOD (1) #define SHORT_TIMEOUT_PERIOD (1)
using ::android::sp; using ::android::sp;
@@ -94,27 +94,11 @@ class Monitor {
int mCount; 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. // The main test class for Sound Trigger HIDL HAL.
class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { class SoundTriggerHidlTest : public ::testing::TestWithParam<std::string> {
public: public:
virtual void SetUp() override { virtual void SetUp() override {
mSoundTriggerHal = ::testing::VtsHalHidlTargetTestBase::getService<ISoundTriggerHw>( mSoundTriggerHal = ISoundTriggerHw::getService(GetParam());
SoundTriggerHidlEnvironment::Instance()->getServiceName<ISoundTriggerHw>());
ASSERT_NE(nullptr, mSoundTriggerHal.get()); ASSERT_NE(nullptr, mSoundTriggerHal.get());
mCallback = new SoundTriggerHwCallback(*this); mCallback = new SoundTriggerHwCallback(*this);
ASSERT_NE(nullptr, mCallback.get()); 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 one sound model and one key phrase
* - the implementation supports at least VOICE_TRIGGER recognition mode * - the implementation supports at least VOICE_TRIGGER recognition mode
*/ */
TEST_F(SoundTriggerHidlTest, GetProperties) { TEST_P(SoundTriggerHidlTest, GetProperties) {
ISoundTriggerHw::Properties halProperties; ISoundTriggerHw::Properties halProperties;
Return<void> hidlReturn; Return<void> hidlReturn;
int ret = -ENODEV; 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 * There is no way to verify that implementation actually can load a sound model because each
* sound model is vendor specific. * sound model is vendor specific.
*/ */
TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) { TEST_P(SoundTriggerHidlTest, LoadInvalidModelFail) {
Return<void> hidlReturn; Return<void> hidlReturn;
int ret = -ENODEV; int ret = -ENODEV;
V2_0_ISoundTriggerHw::PhraseSoundModel model; 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 * There is no way to verify that implementation actually can load a sound model because each
* sound model is vendor specific. * sound model is vendor specific.
*/ */
TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail_2_1) { TEST_P(SoundTriggerHidlTest, LoadInvalidModelFail_2_1) {
Return<void> hidlReturn; Return<void> hidlReturn;
int ret = -ENODEV; int ret = -ENODEV;
ISoundTriggerHw::PhraseSoundModel model; ISoundTriggerHw::PhraseSoundModel model;
@@ -277,7 +261,7 @@ TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail_2_1) {
* Verifies that: * Verifies that:
* - the implementation returns an error when passed an empty sound model * - the implementation returns an error when passed an empty sound model
*/ */
TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail) { TEST_P(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail) {
int ret = -ENODEV; int ret = -ENODEV;
V2_0_ISoundTriggerHw::SoundModel model; V2_0_ISoundTriggerHw::SoundModel model;
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
@@ -301,7 +285,7 @@ TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail) {
* Verifies that: * Verifies that:
* - the implementation returns error when passed a sound model with random data. * - the implementation returns error when passed a sound model with random data.
*/ */
TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) { TEST_P(SoundTriggerHidlTest, LoadGenericSoundModelFail) {
int ret = -ENODEV; int ret = -ENODEV;
V2_0_ISoundTriggerHw::SoundModel model; V2_0_ISoundTriggerHw::SoundModel model;
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
@@ -329,7 +313,7 @@ TEST_F(SoundTriggerHidlTest, LoadGenericSoundModelFail) {
* Verifies that: * Verifies that:
* - the implementation returns error when passed a sound model with random data. * - 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; int ret = -ENODEV;
ISoundTriggerHw::SoundModel model; ISoundTriggerHw::SoundModel model;
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
@@ -353,7 +337,7 @@ TEST_F(SoundTriggerHidlTest, LoadEmptyGenericSoundModelFail_2_1) {
* Verifies that: * Verifies that:
* - the implementation returns error when passed a sound model with random data. * - 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; int ret = -ENODEV;
ISoundTriggerHw::SoundModel model; ISoundTriggerHw::SoundModel model;
SoundModelHandle handle = 0; 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 * - 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); Return<int32_t> hidlReturn(0);
SoundModelHandle halHandle = 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 * There is no way to verify that implementation actually starts recognition because no model can
* be loaded. * be loaded.
*/ */
TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) { TEST_P(SoundTriggerHidlTest, StartRecognitionNoModelFail) {
Return<int32_t> hidlReturn(0); Return<int32_t> hidlReturn(0);
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
PhraseRecognitionExtra phrase; 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 * There is no way to verify that implementation actually starts recognition because no model can
* be loaded. * be loaded.
*/ */
TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail_2_1) { TEST_P(SoundTriggerHidlTest, StartRecognitionNoModelFail_2_1) {
Return<int32_t> hidlReturn(0); Return<int32_t> hidlReturn(0);
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
PhraseRecognitionExtra phrase; PhraseRecognitionExtra phrase;
@@ -472,7 +456,7 @@ TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail_2_1) {
* - the implementation returns an error when called without an active recognition running * - 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); Return<int32_t> hidlReturn(0);
SoundModelHandle handle = 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 * - the implementation implements this optional method or indicates it is not supported by
* returning -ENOSYS * returning -ENOSYS
*/ */
TEST_F(SoundTriggerHidlTest, stopAllRecognitions) { TEST_P(SoundTriggerHidlTest, stopAllRecognitions) {
Return<int32_t> hidlReturn(0); Return<int32_t> hidlReturn(0);
hidlReturn = mSoundTriggerHal->stopAllRecognitions(); hidlReturn = mSoundTriggerHal->stopAllRecognitions();
@@ -498,11 +482,7 @@ TEST_F(SoundTriggerHidlTest, stopAllRecognitions) {
EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS); EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS);
} }
int main(int argc, char** argv) { INSTANTIATE_TEST_SUITE_P(
::testing::AddGlobalTestEnvironment(SoundTriggerHidlEnvironment::Instance()); PerInstance, SoundTriggerHidlTest,
::testing::InitGoogleTest(&argc, argv); testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISoundTriggerHw::descriptor)),
SoundTriggerHidlEnvironment::Instance()->init(&argc, argv); android::hardware::PrintInstanceNameToString);
int status = RUN_ALL_TESTS();
ALOGI("Test result = %d", status);
return status;
}

View File

@@ -23,5 +23,5 @@ cc_test {
"android.hardware.soundtrigger@2.1", "android.hardware.soundtrigger@2.1",
"android.hardware.soundtrigger@2.2", "android.hardware.soundtrigger@2.2",
], ],
test_suites: ["general-tests"], test_suites: ["general-tests", "vts-core"],
} }

View File

@@ -23,42 +23,26 @@
#include <android/log.h> #include <android/log.h>
#include <cutils/native_handle.h> #include <cutils/native_handle.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
#include <hidl/ServiceManagement.h>
#include <log/log.h> #include <log/log.h>
#include <android/hardware/audio/common/2.0/types.h> #include <android/hardware/audio/common/2.0/types.h>
#include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h> #include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h>
#include <android/hardware/soundtrigger/2.2/ISoundTriggerHw.h> #include <android/hardware/soundtrigger/2.2/ISoundTriggerHw.h>
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
using ::android::sp; using ::android::sp;
using ::android::hardware::Return; using ::android::hardware::Return;
using ::android::hardware::soundtrigger::V2_0::ISoundTriggerHwCallback; using ::android::hardware::soundtrigger::V2_0::ISoundTriggerHwCallback;
using ::android::hardware::soundtrigger::V2_0::SoundModelHandle; using ::android::hardware::soundtrigger::V2_0::SoundModelHandle;
using ::android::hardware::soundtrigger::V2_2::ISoundTriggerHw; 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. // The main test class for Sound Trigger HIDL HAL.
class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase { class SoundTriggerHidlTest : public ::testing::TestWithParam<std::string> {
public: public:
void SetUp() override { void SetUp() override {
mSoundTriggerHal = ::testing::VtsHalHidlTargetTestBase::getService<ISoundTriggerHw>( mSoundTriggerHal = ISoundTriggerHw::getService(GetParam());
SoundTriggerHidlEnvironment::Instance()->getServiceName<ISoundTriggerHw>());
ASSERT_NE(nullptr, mSoundTriggerHal.get()); ASSERT_NE(nullptr, mSoundTriggerHal.get());
} }
@@ -77,18 +61,13 @@ class SoundTriggerHidlTest : public ::testing::VtsHalHidlTargetTestBase {
* - the implementation returns -ENOSYS with invalid model handle * - the implementation returns -ENOSYS with invalid model handle
* *
*/ */
TEST_F(SoundTriggerHidlTest, GetModelStateInvalidModel) { TEST_P(SoundTriggerHidlTest, GetModelStateInvalidModel) {
SoundModelHandle handle = 0; SoundModelHandle handle = 0;
Return<int32_t> hidlReturn = mSoundTriggerHal->getModelState(handle); Return<int32_t> hidlReturn = mSoundTriggerHal->getModelState(handle);
EXPECT_TRUE(hidlReturn.isOk()); EXPECT_TRUE(hidlReturn.isOk());
EXPECT_EQ(-ENOSYS, hidlReturn); EXPECT_EQ(-ENOSYS, hidlReturn);
} }
INSTANTIATE_TEST_SUITE_P(
int main(int argc, char** argv) { PerInstance, SoundTriggerHidlTest,
::testing::AddGlobalTestEnvironment(SoundTriggerHidlEnvironment::Instance()); testing::ValuesIn(android::hardware::getAllHalInstanceNames(ISoundTriggerHw::descriptor)),
::testing::InitGoogleTest(&argc, argv); android::hardware::PrintInstanceNameToString);
SoundTriggerHidlEnvironment::Instance()->init(&argc, argv);
int status = RUN_ALL_TESTS();
ALOGI("Test result = %d", status);
return status;
}