diff options
34 files changed, 257 insertions, 467 deletions
diff --git a/audio/effect/2.0/vts/functional/VtsHalAudioEffectV2_0TargetTest.cpp b/audio/effect/2.0/vts/functional/VtsHalAudioEffectV2_0TargetTest.cpp index f069c467c..c90c4fab2 100644 --- a/audio/effect/2.0/vts/functional/VtsHalAudioEffectV2_0TargetTest.cpp +++ b/audio/effect/2.0/vts/functional/VtsHalAudioEffectV2_0TargetTest.cpp @@ -27,6 +27,7 @@ #include <android/hidl/memory/1.0/IMemory.h> #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> using android::hardware::audio::common::V2_0::AudioDevice; using android::hardware::audio::common::V2_0::AudioHandleConsts; @@ -59,13 +60,26 @@ using android::sp; #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a))) #endif +// Test environment for Audio Effects Factory HIDL HAL. +class AudioEffectsFactoryHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static AudioEffectsFactoryHidlEnvironment* Instance() { + static AudioEffectsFactoryHidlEnvironment* instance = + new AudioEffectsFactoryHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IEffectsFactory>(); } +}; + // The main test class for Audio Effects Factory HIDL HAL. class AudioEffectsFactoryHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: void SetUp() override { - effectsFactory = - ::testing::VtsHalHidlTargetTestBase::getService<IEffectsFactory>(); - ASSERT_NE(effectsFactory, nullptr); + effectsFactory = ::testing::VtsHalHidlTargetTestBase::getService<IEffectsFactory>( + AudioEffectsFactoryHidlEnvironment::Instance()->getServiceName<IEffectsFactory>()); + ASSERT_NE(effectsFactory, nullptr); } void TearDown() override { effectsFactory.clear(); } @@ -824,3 +838,12 @@ TEST_F(LoudnessEnhancerAudioEffectHidlTest, GetSetTargetGain) { EXPECT_EQ(Result::OK, retval); EXPECT_EQ(gain, actualGain); } + +int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(AudioEffectsFactoryHidlEnvironment::Instance()); + ::testing::InitGoogleTest(&argc, argv); + AudioEffectsFactoryHidlEnvironment::Instance()->init(&argc, argv); + int status = RUN_ALL_TESTS(); + LOG(INFO) << "Test result = " << status; + return status; +} diff --git a/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp b/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp index 638af9f51..a7f40319a 100644 --- a/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp +++ b/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp @@ -16,12 +16,13 @@ #define LOG_TAG "fingerprint_hidl_hal_test" +#include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> #include <android-base/logging.h> #include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprint.h> #include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprintClientCallback.h> #include <hidl/HidlSupport.h> #include <hidl/HidlTransportSupport.h> -#include <VtsHalHidlTargetTestBase.h> #include <cinttypes> #include <future> @@ -179,10 +180,23 @@ class RemoveCallback : public FingerprintCallbackBase { std::promise<void> promise; }; +// Test environment for Fingerprint HIDL HAL. +class FingerprintHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static FingerprintHidlEnvironment* Instance() { + static FingerprintHidlEnvironment* instance = new FingerprintHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IBiometricsFingerprint>(); } +}; + class FingerprintHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: virtual void SetUp() override { - mService = ::testing::VtsHalHidlTargetTestBase::getService<IBiometricsFingerprint>(); + mService = ::testing::VtsHalHidlTargetTestBase::getService<IBiometricsFingerprint>( + FingerprintHidlEnvironment::Instance()->getServiceName<IBiometricsFingerprint>()); ASSERT_FALSE(mService == nullptr); // Create an active group @@ -454,7 +468,9 @@ TEST_F(FingerprintHidlTest, CancelRemoveAllTest) { } // anonymous namespace int main(int argc, char **argv) { + ::testing::AddGlobalTestEnvironment(FingerprintHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + FingerprintHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); LOG(INFO) << "Test result = " << status; return status; diff --git a/broadcastradio/1.2/default/Android.bp b/broadcastradio/1.1/default/Android.bp index bd4be774f..52fb45b49 100644 --- a/broadcastradio/1.2/default/Android.bp +++ b/broadcastradio/1.1/default/Android.bp @@ -15,8 +15,8 @@ // cc_binary { - name: "android.hardware.broadcastradio@1.2-service", - init_rc: ["android.hardware.broadcastradio@1.2-service.rc"], + name: "android.hardware.broadcastradio@1.1-service", + init_rc: ["android.hardware.broadcastradio@1.1-service.rc"], vendor: true, relative_install_path: "hw", cflags: [ @@ -39,7 +39,6 @@ cc_binary { shared_libs: [ "android.hardware.broadcastradio@1.0", "android.hardware.broadcastradio@1.1", - "android.hardware.broadcastradio@1.2", "libbase", "libhidlbase", "libhidltransport", diff --git a/broadcastradio/1.2/default/BroadcastRadio.cpp b/broadcastradio/1.1/default/BroadcastRadio.cpp index 74f65894e..2933aa7dd 100644 --- a/broadcastradio/1.2/default/BroadcastRadio.cpp +++ b/broadcastradio/1.1/default/BroadcastRadio.cpp @@ -25,7 +25,7 @@ namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { using V1_0::Band; @@ -190,7 +190,7 @@ Return<void> BroadcastRadio::getImage(int32_t id, getImage_cb _hidl_cb) { } } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android diff --git a/broadcastradio/1.2/default/BroadcastRadio.h b/broadcastradio/1.1/default/BroadcastRadio.h index 94d62b9bc..bdf3b8745 100644 --- a/broadcastradio/1.2/default/BroadcastRadio.h +++ b/broadcastradio/1.1/default/BroadcastRadio.h @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIO_H -#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIO_H +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIO_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIO_H #include "Tuner.h" #include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h> -#include <android/hardware/broadcastradio/1.2/types.h> +#include <android/hardware/broadcastradio/1.1/types.h> namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { struct AmFmBandConfig { V1_0::Band type; - uint32_t lowerLimit; // kHz - uint32_t upperLimit; // kHz + uint32_t lowerLimit; // kHz + uint32_t upperLimit; // kHz std::vector<uint32_t> spacings; // kHz }; @@ -73,9 +73,9 @@ struct BroadcastRadio : public V1_1::IBroadcastRadio { }; } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIO_H +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIO_H diff --git a/broadcastradio/1.2/default/BroadcastRadioFactory.cpp b/broadcastradio/1.1/default/BroadcastRadioFactory.cpp index 8f17aff70..aecc96745 100644 --- a/broadcastradio/1.2/default/BroadcastRadioFactory.cpp +++ b/broadcastradio/1.1/default/BroadcastRadioFactory.cpp @@ -25,7 +25,7 @@ namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { using V1_0::Class; @@ -57,7 +57,7 @@ Return<void> BroadcastRadioFactory::connectModule(Class classId, connectModule_c } } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android diff --git a/broadcastradio/1.2/default/BroadcastRadioFactory.h b/broadcastradio/1.1/default/BroadcastRadioFactory.h index c365ae0b7..62b65bc8e 100644 --- a/broadcastradio/1.2/default/BroadcastRadioFactory.h +++ b/broadcastradio/1.1/default/BroadcastRadioFactory.h @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIOFACTORY_H -#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIOFACTORY_H +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIOFACTORY_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIOFACTORY_H #include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h> -#include <android/hardware/broadcastradio/1.2/IBroadcastRadioFactory.h> -#include <android/hardware/broadcastradio/1.2/types.h> +#include <android/hardware/broadcastradio/1.1/IBroadcastRadioFactory.h> +#include <android/hardware/broadcastradio/1.1/types.h> namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { struct BroadcastRadioFactory : public IBroadcastRadioFactory { @@ -37,9 +37,9 @@ struct BroadcastRadioFactory : public IBroadcastRadioFactory { }; } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIOFACTORY_H +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIOFACTORY_H diff --git a/broadcastradio/1.2/default/OWNERS b/broadcastradio/1.1/default/OWNERS index 136b607b9..136b607b9 100644 --- a/broadcastradio/1.2/default/OWNERS +++ b/broadcastradio/1.1/default/OWNERS diff --git a/broadcastradio/1.2/default/Tuner.cpp b/broadcastradio/1.1/default/Tuner.cpp index e95a13255..2be070d96 100644 --- a/broadcastradio/1.2/default/Tuner.cpp +++ b/broadcastradio/1.1/default/Tuner.cpp @@ -17,8 +17,8 @@ #define LOG_TAG "BroadcastRadioDefault.tuner" #define LOG_NDEBUG 0 -#include "BroadcastRadio.h" #include "Tuner.h" +#include "BroadcastRadio.h" #include <broadcastradio-utils-1x/Utils.h> #include <log/log.h> @@ -26,7 +26,7 @@ namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { using namespace std::chrono_literals; @@ -35,13 +35,13 @@ using V1_0::Band; using V1_0::BandConfig; using V1_0::Class; using V1_0::Direction; +using V1_1::IdentifierType; using V1_1::ProgramInfo; using V1_1::ProgramInfoFlags; using V1_1::ProgramListResult; using V1_1::ProgramSelector; using V1_1::ProgramType; using V1_1::VendorKeyValue; -using V1_2::IdentifierType; using utils::HalRevision; using std::chrono::milliseconds; @@ -62,7 +62,6 @@ Tuner::Tuner(V1_0::Class classId, const sp<V1_0::ITunerCallback>& callback) : mClassId(classId), mCallback(callback), mCallback1_1(V1_1::ITunerCallback::castFrom(callback).withDefault(nullptr)), - mCallback1_2(V1_2::ITunerCallback::castFrom(callback).withDefault(nullptr)), mVirtualRadio(getRadio(classId)), mIsAnalogForced(false) {} @@ -130,9 +129,7 @@ static ProgramInfo makeDummyProgramInfo(const ProgramSelector& selector) { } HalRevision Tuner::getHalRev() const { - if (mCallback1_2 != nullptr) { - return HalRevision::V1_2; - } else if (mCallback1_1 != nullptr) { + if (mCallback1_1 != nullptr) { return HalRevision::V1_1; } else { return HalRevision::V1_0; @@ -282,7 +279,7 @@ Return<Result> Tuner::tuneByProgramSelector(const ProgramSelector& sel) { return Result::INVALID_ARGUMENTS; } } else if (programType == ProgramType::DAB) { - if (!utils::hasId(sel, IdentifierType::DAB_SID_EXT)) return Result::INVALID_ARGUMENTS; + if (!utils::hasId(sel, IdentifierType::DAB_SIDECC)) return Result::INVALID_ARGUMENTS; } else if (programType == ProgramType::DRMO) { if (!utils::hasId(sel, IdentifierType::DRMO_SERVICE_ID)) return Result::INVALID_ARGUMENTS; } else if (programType == ProgramType::SXM) { @@ -386,24 +383,8 @@ Return<void> Tuner::isAnalogForced(isAnalogForced_cb _hidl_cb) { return {}; } -Return<void> Tuner::setParameters(const hidl_vec<VendorKeyValue>& /* parameters */, - setParameters_cb _hidl_cb) { - ALOGV("%s", __func__); - - _hidl_cb({}); - return {}; -} - -Return<void> Tuner::getParameters(const hidl_vec<hidl_string>& /* keys */, - getParameters_cb _hidl_cb) { - ALOGV("%s", __func__); - - _hidl_cb({}); - return {}; -} - } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android diff --git a/broadcastradio/1.2/default/Tuner.h b/broadcastradio/1.1/default/Tuner.h index 7e683545f..764d5b3d2 100644 --- a/broadcastradio/1.2/default/Tuner.h +++ b/broadcastradio/1.1/default/Tuner.h @@ -13,19 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_TUNER_H -#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_TUNER_H +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_TUNER_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_TUNER_H #include "VirtualRadio.h" -#include <android/hardware/broadcastradio/1.2/ITuner.h> -#include <android/hardware/broadcastradio/1.2/ITunerCallback.h> +#include <android/hardware/broadcastradio/1.1/ITuner.h> +#include <android/hardware/broadcastradio/1.1/ITunerCallback.h> #include <broadcastradio-utils/WorkerThread.h> namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { struct Tuner : public ITuner { @@ -33,7 +33,7 @@ struct Tuner : public ITuner { void forceClose(); - // V1_2::ITuner methods + // V1_1::ITuner methods virtual Return<Result> setConfiguration(const V1_0::BandConfig& config) override; virtual Return<void> getConfiguration(getConfiguration_cb _hidl_cb) override; virtual Return<Result> scan(V1_0::Direction direction, bool skipSubChannel) override; @@ -49,10 +49,6 @@ struct Tuner : public ITuner { getProgramList_cb _hidl_cb) override; virtual Return<Result> setAnalogForced(bool isForced) override; virtual Return<void> isAnalogForced(isAnalogForced_cb _hidl_cb) override; - virtual Return<void> setParameters(const hidl_vec<V1_1::VendorKeyValue>& parameters, - setParameters_cb _hidl_cb) override; - virtual Return<void> getParameters(const hidl_vec<hidl_string>& keys, - getParameters_cb _hidl_cb) override; private: std::mutex mMut; @@ -62,7 +58,6 @@ struct Tuner : public ITuner { V1_0::Class mClassId; const sp<V1_0::ITunerCallback> mCallback; const sp<V1_1::ITunerCallback> mCallback1_1; - const sp<V1_2::ITunerCallback> mCallback1_2; std::reference_wrapper<VirtualRadio> mVirtualRadio; bool mIsAmfmConfigSet = false; @@ -77,9 +72,9 @@ struct Tuner : public ITuner { }; } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_TUNER_H +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_TUNER_H diff --git a/broadcastradio/1.2/default/VirtualProgram.cpp b/broadcastradio/1.1/default/VirtualProgram.cpp index 3594f6440..20dc1f5b5 100644 --- a/broadcastradio/1.2/default/VirtualProgram.cpp +++ b/broadcastradio/1.1/default/VirtualProgram.cpp @@ -22,7 +22,7 @@ namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { using std::vector; @@ -30,9 +30,9 @@ using std::vector; using V1_0::MetaData; using V1_0::MetadataKey; using V1_0::MetadataType; +using V1_1::IdentifierType; using V1_1::ProgramInfo; using V1_1::VendorKeyValue; -using V1_2::IdentifierType; using utils::HalRevision; static MetaData createDemoBitmap(MetadataKey key, HalRevision halRev) { @@ -96,7 +96,7 @@ vector<ProgramInfo> getProgramInfoVector(const vector<VirtualProgram>& vec, HalR } } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android diff --git a/broadcastradio/1.2/default/VirtualProgram.h b/broadcastradio/1.1/default/VirtualProgram.h index c0b20f0a7..fd7a5e773 100644 --- a/broadcastradio/1.2/default/VirtualProgram.h +++ b/broadcastradio/1.1/default/VirtualProgram.h @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALPROGRAM_H -#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALPROGRAM_H +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALPROGRAM_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALPROGRAM_H -#include <android/hardware/broadcastradio/1.2/types.h> +#include <android/hardware/broadcastradio/1.1/types.h> #include <broadcastradio-utils-1x/Utils.h> namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { /** @@ -47,9 +47,9 @@ std::vector<V1_1::ProgramInfo> getProgramInfoVector(const std::vector<VirtualPro utils::HalRevision halRev); } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALPROGRAM_H +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALPROGRAM_H diff --git a/broadcastradio/1.2/default/VirtualRadio.cpp b/broadcastradio/1.1/default/VirtualRadio.cpp index 898808006..5b7915552 100644 --- a/broadcastradio/1.2/default/VirtualRadio.cpp +++ b/broadcastradio/1.1/default/VirtualRadio.cpp @@ -24,7 +24,7 @@ namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { using V1_0::Band; @@ -100,7 +100,7 @@ VirtualRadio& getDigitalRadio() { } } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android diff --git a/broadcastradio/1.2/default/VirtualRadio.h b/broadcastradio/1.1/default/VirtualRadio.h index 8cfaefeb4..176b1b2fb 100644 --- a/broadcastradio/1.2/default/VirtualRadio.h +++ b/broadcastradio/1.1/default/VirtualRadio.h @@ -13,8 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALRADIO_H -#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALRADIO_H +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALRADIO_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALRADIO_H #include "VirtualProgram.h" @@ -24,7 +24,7 @@ namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { /** @@ -72,9 +72,9 @@ VirtualRadio& getSatRadio(); VirtualRadio& getDigitalRadio(); } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALRADIO_H +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALRADIO_H diff --git a/broadcastradio/1.2/default/android.hardware.broadcastradio@1.2-service.rc b/broadcastradio/1.1/default/android.hardware.broadcastradio@1.1-service.rc index 3741f21aa..7c57135fc 100644 --- a/broadcastradio/1.2/default/android.hardware.broadcastradio@1.2-service.rc +++ b/broadcastradio/1.1/default/android.hardware.broadcastradio@1.1-service.rc @@ -1,4 +1,4 @@ -service broadcastradio-hal /vendor/bin/hw/android.hardware.broadcastradio@1.2-service +service broadcastradio-hal /vendor/bin/hw/android.hardware.broadcastradio@1.1-service class hal user audioserver group audio diff --git a/broadcastradio/1.2/default/resources.h b/broadcastradio/1.1/default/resources.h index b383c278e..b7e709f95 100644 --- a/broadcastradio/1.2/default/resources.h +++ b/broadcastradio/1.1/default/resources.h @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_RESOURCES_H -#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_RESOURCES_H +#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_RESOURCES_H +#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_RESOURCES_H namespace android { namespace hardware { namespace broadcastradio { -namespace V1_2 { +namespace V1_1 { namespace implementation { namespace resources { @@ -38,9 +38,9 @@ constexpr uint8_t demoPng[] = { } // namespace resources } // namespace implementation -} // namespace V1_2 +} // namespace V1_1 } // namespace broadcastradio } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_RESOURCES_H +#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_RESOURCES_H diff --git a/broadcastradio/1.2/default/service.cpp b/broadcastradio/1.1/default/service.cpp index ea86fbaf3..f8af0b78c 100644 --- a/broadcastradio/1.2/default/service.cpp +++ b/broadcastradio/1.1/default/service.cpp @@ -22,7 +22,7 @@ using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; -using android::hardware::broadcastradio::V1_2::implementation::BroadcastRadioFactory; +using android::hardware::broadcastradio::V1_1::implementation::BroadcastRadioFactory; int main(int /* argc */, char** /* argv */) { configureRpcThreadpool(4, true); diff --git a/broadcastradio/1.2/vts/OWNERS b/broadcastradio/1.2/vts/OWNERS deleted file mode 100644 index 12adf5762..000000000 --- a/broadcastradio/1.2/vts/OWNERS +++ /dev/null @@ -1,7 +0,0 @@ -# Automotive team -egranata@google.com -twasilczyk@google.com - -# VTS team -yuexima@google.com -yim@google.com diff --git a/broadcastradio/1.2/vts/functional/Android.bp b/broadcastradio/1.2/vts/functional/Android.bp deleted file mode 100644 index fd1c25430..000000000 --- a/broadcastradio/1.2/vts/functional/Android.bp +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright (C) 2017 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -cc_test { - name: "VtsHalBroadcastradioV1_2TargetTest", - defaults: ["VtsHalTargetTestDefaults"], - srcs: ["VtsHalBroadcastradioV1_2TargetTest.cpp"], - static_libs: [ - "android.hardware.broadcastradio@1.0", - "android.hardware.broadcastradio@1.1", - "android.hardware.broadcastradio@1.2", - "android.hardware.broadcastradio@vts-utils-lib", - "libgmock", - ], -} diff --git a/broadcastradio/1.2/vts/functional/VtsHalBroadcastradioV1_2TargetTest.cpp b/broadcastradio/1.2/vts/functional/VtsHalBroadcastradioV1_2TargetTest.cpp deleted file mode 100644 index 085206b2d..000000000 --- a/broadcastradio/1.2/vts/functional/VtsHalBroadcastradioV1_2TargetTest.cpp +++ /dev/null @@ -1,293 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "broadcastradio.vts" - -#include <VtsHalHidlTargetTestBase.h> -#include <android-base/logging.h> -#include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h> -#include <android/hardware/broadcastradio/1.2/IBroadcastRadioFactory.h> -#include <android/hardware/broadcastradio/1.2/ITuner.h> -#include <android/hardware/broadcastradio/1.2/ITunerCallback.h> -#include <android/hardware/broadcastradio/1.2/types.h> -#include <broadcastradio-vts-utils/call-barrier.h> -#include <broadcastradio-vts-utils/mock-timeout.h> -#include <broadcastradio-vts-utils/pointer-utils.h> -#include <cutils/native_handle.h> -#include <cutils/properties.h> -#include <gmock/gmock.h> -#include <hidl/HidlTransportSupport.h> -#include <utils/threads.h> - -#include <chrono> - -namespace android { -namespace hardware { -namespace broadcastradio { -namespace V1_2 { -namespace vts { - -using namespace std::chrono_literals; - -using testing::_; -using testing::AnyNumber; -using testing::ByMove; -using testing::DoAll; -using testing::Invoke; -using testing::SaveArg; - -using broadcastradio::vts::CallBarrier; -using V1_0::BandConfig; -using V1_0::Class; -using V1_0::MetaData; -using V1_0::MetadataKey; -using V1_0::MetadataType; -using V1_1::IBroadcastRadio; -using V1_1::ProgramInfo; -using V1_1::ProgramListResult; -using V1_1::ProgramSelector; -using V1_1::Properties; - -using broadcastradio::vts::clearAndWait; - -static constexpr auto kConfigTimeout = 10s; -static constexpr auto kConnectModuleTimeout = 1s; - -static void printSkipped(std::string msg) { - std::cout << "[ SKIPPED ] " << msg << std::endl; -} - -struct TunerCallbackMock : public ITunerCallback { - TunerCallbackMock() { EXPECT_CALL(*this, hardwareFailure()).Times(0); } - - MOCK_METHOD0(hardwareFailure, Return<void>()); - MOCK_TIMEOUT_METHOD2(configChange, Return<void>(Result, const BandConfig&)); - MOCK_METHOD2(tuneComplete, Return<void>(Result, const V1_0::ProgramInfo&)); - MOCK_TIMEOUT_METHOD2(tuneComplete_1_1, Return<void>(Result, const ProgramSelector&)); - MOCK_METHOD1(afSwitch, Return<void>(const V1_0::ProgramInfo&)); - MOCK_METHOD1(antennaStateChange, Return<void>(bool connected)); - MOCK_METHOD1(trafficAnnouncement, Return<void>(bool active)); - MOCK_METHOD1(emergencyAnnouncement, Return<void>(bool active)); - MOCK_METHOD3(newMetadata, Return<void>(uint32_t ch, uint32_t subCh, const hidl_vec<MetaData>&)); - MOCK_METHOD1(backgroundScanAvailable, Return<void>(bool)); - MOCK_TIMEOUT_METHOD1(backgroundScanComplete, Return<void>(ProgramListResult)); - MOCK_METHOD0(programListChanged, Return<void>()); - MOCK_TIMEOUT_METHOD1(currentProgramInfoChanged, Return<void>(const ProgramInfo&)); - MOCK_METHOD1(parametersUpdated, Return<void>(const hidl_vec<VendorKeyValue>& parameters)); -}; - -class BroadcastRadioHalTest : public ::testing::VtsHalHidlTargetTestBase, - public ::testing::WithParamInterface<Class> { - protected: - virtual void SetUp() override; - virtual void TearDown() override; - - bool openTuner(); - - Class radioClass; - bool skipped = false; - - sp<IBroadcastRadio> mRadioModule; - sp<ITuner> mTuner; - sp<TunerCallbackMock> mCallback = new TunerCallbackMock(); - - private: - const BandConfig& getBand(unsigned idx); - - hidl_vec<BandConfig> mBands; -}; - -void BroadcastRadioHalTest::SetUp() { - radioClass = GetParam(); - - // lookup HIDL service - auto factory = getService<IBroadcastRadioFactory>(); - ASSERT_NE(nullptr, factory.get()); - - // connect radio module - Result connectResult; - CallBarrier onConnect; - factory->connectModule(radioClass, [&](Result ret, const sp<V1_0::IBroadcastRadio>& radio) { - connectResult = ret; - if (ret == Result::OK) mRadioModule = IBroadcastRadio::castFrom(radio); - onConnect.call(); - }); - ASSERT_TRUE(onConnect.waitForCall(kConnectModuleTimeout)); - - if (connectResult == Result::INVALID_ARGUMENTS) { - printSkipped("This device class is not supported."); - skipped = true; - return; - } - ASSERT_EQ(connectResult, Result::OK); - ASSERT_NE(nullptr, mRadioModule.get()); - - // get module properties - Properties prop11; - auto& prop10 = prop11.base; - auto propResult = - mRadioModule->getProperties_1_1([&](const Properties& properties) { prop11 = properties; }); - - ASSERT_TRUE(propResult.isOk()); - EXPECT_EQ(radioClass, prop10.classId); - EXPECT_GT(prop10.numTuners, 0u); - EXPECT_GT(prop11.supportedProgramTypes.size(), 0u); - EXPECT_GT(prop11.supportedIdentifierTypes.size(), 0u); - if (radioClass == Class::AM_FM) { - EXPECT_GT(prop10.bands.size(), 0u); - } - mBands = prop10.bands; -} - -void BroadcastRadioHalTest::TearDown() { - mTuner.clear(); - mRadioModule.clear(); - clearAndWait(mCallback, 1s); -} - -bool BroadcastRadioHalTest::openTuner() { - EXPECT_EQ(nullptr, mTuner.get()); - - if (radioClass == Class::AM_FM) { - EXPECT_TIMEOUT_CALL(*mCallback, configChange, Result::OK, _); - } - - Result halResult = Result::NOT_INITIALIZED; - auto openCb = [&](Result result, const sp<V1_0::ITuner>& tuner) { - halResult = result; - if (result != Result::OK) return; - mTuner = ITuner::castFrom(tuner); - }; - auto hidlResult = mRadioModule->openTuner(getBand(0), true, mCallback, openCb); - - EXPECT_TRUE(hidlResult.isOk()); - EXPECT_EQ(Result::OK, halResult); - EXPECT_NE(nullptr, mTuner.get()); - if (radioClass == Class::AM_FM && mTuner != nullptr) { - EXPECT_TIMEOUT_CALL_WAIT(*mCallback, configChange, kConfigTimeout); - - BandConfig halConfig; - Result halResult = Result::NOT_INITIALIZED; - mTuner->getConfiguration([&](Result result, const BandConfig& config) { - halResult = result; - halConfig = config; - }); - EXPECT_EQ(Result::OK, halResult); - EXPECT_TRUE(halConfig.antennaConnected); - } - - EXPECT_NE(nullptr, mTuner.get()); - return nullptr != mTuner.get(); -} - -const BandConfig& BroadcastRadioHalTest::getBand(unsigned idx) { - static const BandConfig dummyBandConfig = {}; - - if (radioClass != Class::AM_FM) { - ALOGD("Not AM/FM radio, returning dummy band config"); - return dummyBandConfig; - } - - EXPECT_GT(mBands.size(), idx); - if (mBands.size() <= idx) { - ALOGD("Band index out of bound, returning dummy band config"); - return dummyBandConfig; - } - - auto& band = mBands[idx]; - ALOGD("Returning %s band", toString(band.type).c_str()); - return band; -} - -/** - * Test IBroadcastRadio::get|setParameters() methods called with no parameters. - * - * Verifies that: - * - callback is called for empty parameters set. - */ -TEST_P(BroadcastRadioHalTest, NoParameters) { - if (skipped) return; - - ASSERT_TRUE(openTuner()); - - hidl_vec<VendorKeyValue> halResults = {}; - bool wasCalled = false; - auto cb = [&](hidl_vec<VendorKeyValue> results) { - wasCalled = true; - halResults = results; - }; - - auto hidlResult = mTuner->setParameters({}, cb); - ASSERT_TRUE(hidlResult.isOk()); - ASSERT_TRUE(wasCalled); - ASSERT_EQ(0u, halResults.size()); - - wasCalled = false; - hidlResult = mTuner->getParameters({}, cb); - ASSERT_TRUE(hidlResult.isOk()); - ASSERT_TRUE(wasCalled); - ASSERT_EQ(0u, halResults.size()); -} - -/** - * Test IBroadcastRadio::get|setParameters() methods called with unknown parameters. - * - * Verifies that: - * - unknown parameters are ignored; - * - callback is called also for empty results set. - */ -TEST_P(BroadcastRadioHalTest, UnknownParameters) { - if (skipped) return; - - ASSERT_TRUE(openTuner()); - - hidl_vec<VendorKeyValue> halResults = {}; - bool wasCalled = false; - auto cb = [&](hidl_vec<VendorKeyValue> results) { - wasCalled = true; - halResults = results; - }; - - auto hidlResult = mTuner->setParameters({{"com.google.unknown", "dummy"}}, cb); - ASSERT_TRUE(hidlResult.isOk()); - ASSERT_TRUE(wasCalled); - ASSERT_EQ(0u, halResults.size()); - - wasCalled = false; - hidlResult = mTuner->getParameters({{"com.google.unknown*", "dummy"}}, cb); - ASSERT_TRUE(hidlResult.isOk()); - ASSERT_TRUE(wasCalled); - ASSERT_EQ(0u, halResults.size()); -} - -// TODO(b/69860743): implement VerifyIdentifiersFormat test when -// the new program list fetching mechanism is implemented - -INSTANTIATE_TEST_CASE_P(BroadcastRadioHalTestCases, BroadcastRadioHalTest, - ::testing::Values(Class::AM_FM, Class::SAT, Class::DT)); - -} // namespace vts -} // namespace V1_2 -} // namespace broadcastradio -} // namespace hardware -} // namespace android - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - int status = RUN_ALL_TESTS(); - ALOGI("Test result = %d", status); - return status; -} diff --git a/broadcastradio/common/tests/Android.bp b/broadcastradio/common/tests/Android.bp index f6a3b6f4d..3ba31db11 100644 --- a/broadcastradio/common/tests/Android.bp +++ b/broadcastradio/common/tests/Android.bp @@ -33,7 +33,7 @@ cc_test { "android.hardware.broadcastradio@common-utils-2x-lib", ], shared_libs: [ - "android.hardware.broadcastradio@1.2", + "android.hardware.broadcastradio@1.1", "android.hardware.broadcastradio@2.0", ], } diff --git a/broadcastradio/common/utils1x/Android.bp b/broadcastradio/common/utils1x/Android.bp index 127c15a15..443dca158 100644 --- a/broadcastradio/common/utils1x/Android.bp +++ b/broadcastradio/common/utils1x/Android.bp @@ -28,6 +28,6 @@ cc_library_static { ], export_include_dirs: ["include"], shared_libs: [ - "android.hardware.broadcastradio@1.2", + "android.hardware.broadcastradio@1.1", ], } diff --git a/broadcastradio/common/utils1x/Utils.cpp b/broadcastradio/common/utils1x/Utils.cpp index 7a59d6a13..9c2cc3d51 100644 --- a/broadcastradio/common/utils1x/Utils.cpp +++ b/broadcastradio/common/utils1x/Utils.cpp @@ -26,10 +26,10 @@ namespace broadcastradio { namespace utils { using V1_0::Band; +using V1_1::IdentifierType; using V1_1::ProgramIdentifier; using V1_1::ProgramSelector; using V1_1::ProgramType; -using V1_2::IdentifierType; static bool isCompatibleProgramType(const uint32_t ia, const uint32_t ib) { auto a = static_cast<ProgramType>(ia); @@ -86,7 +86,7 @@ bool tunesTo(const ProgramSelector& a, const ProgramSelector& b) { return haveEqualIds(a, b, IdentifierType::AMFM_FREQUENCY); case ProgramType::DAB: - return haveEqualIds(a, b, IdentifierType::DAB_SID_EXT); + return haveEqualIds(a, b, IdentifierType::DAB_SIDECC); case ProgramType::DRMO: return haveEqualIds(a, b, IdentifierType::DRMO_SERVICE_ID); case ProgramType::SXM: @@ -126,35 +126,21 @@ bool isFm(const Band band) { static bool maybeGetId(const ProgramSelector& sel, const IdentifierType type, uint64_t* val) { auto itype = static_cast<uint32_t>(type); - auto itypeAlt = itype; - if (type == IdentifierType::DAB_SIDECC) { - itypeAlt = static_cast<uint32_t>(IdentifierType::DAB_SID_EXT); - } - if (type == IdentifierType::DAB_SID_EXT) { - itypeAlt = static_cast<uint32_t>(IdentifierType::DAB_SIDECC); - } - if (sel.primaryId.type == itype || sel.primaryId.type == itypeAlt) { + if (sel.primaryId.type == itype) { if (val) *val = sel.primaryId.value; return true; } // not optimal, but we don't care in default impl - bool gotAlt = false; for (auto&& id : sel.secondaryIds) { if (id.type == itype) { if (val) *val = id.value; return true; } - // alternative identifier is a backup, we prefer original value - if (id.type == itypeAlt) { - if (val) *val = id.value; - gotAlt = true; - continue; - } } - return gotAlt; + return false; } bool hasId(const ProgramSelector& sel, const IdentifierType type) { diff --git a/broadcastradio/common/utils1x/include/broadcastradio-utils-1x/Utils.h b/broadcastradio/common/utils1x/include/broadcastradio-utils-1x/Utils.h index 5884b5ad6..8ad710992 100644 --- a/broadcastradio/common/utils1x/include/broadcastradio-utils-1x/Utils.h +++ b/broadcastradio/common/utils1x/include/broadcastradio-utils-1x/Utils.h @@ -16,7 +16,7 @@ #ifndef ANDROID_HARDWARE_BROADCASTRADIO_COMMON_UTILS_1X_H #define ANDROID_HARDWARE_BROADCASTRADIO_COMMON_UTILS_1X_H -#include <android/hardware/broadcastradio/1.2/types.h> +#include <android/hardware/broadcastradio/1.1/types.h> #include <chrono> #include <queue> #include <thread> @@ -29,7 +29,7 @@ namespace utils { enum class HalRevision : uint32_t { V1_0 = 1, V1_1, - V1_2, + V1_2, // TODO(b/62945293): remove }; /** @@ -50,21 +50,21 @@ bool isAmFm(const V1_1::ProgramType type); bool isAm(const V1_0::Band band); bool isFm(const V1_0::Band band); -bool hasId(const V1_1::ProgramSelector& sel, const V1_2::IdentifierType type); +bool hasId(const V1_1::ProgramSelector& sel, const V1_1::IdentifierType type); /** * Returns ID (either primary or secondary) for a given program selector. * * If the selector does not contain given type, returns 0 and emits a warning. */ -uint64_t getId(const V1_1::ProgramSelector& sel, const V1_2::IdentifierType type); +uint64_t getId(const V1_1::ProgramSelector& sel, const V1_1::IdentifierType type); /** * Returns ID (either primary or secondary) for a given program selector. * * If the selector does not contain given type, returns default value. */ -uint64_t getId(const V1_1::ProgramSelector& sel, const V1_2::IdentifierType type, uint64_t defval); +uint64_t getId(const V1_1::ProgramSelector& sel, const V1_1::IdentifierType type, uint64_t defval); V1_1::ProgramSelector make_selector(V1_0::Band band, uint32_t channel, uint32_t subChannel = 0); diff --git a/cas/1.0/vts/functional/VtsHalCasV1_0TargetTest.cpp b/cas/1.0/vts/functional/VtsHalCasV1_0TargetTest.cpp index 193253ac7..053d37ae3 100644 --- a/cas/1.0/vts/functional/VtsHalCasV1_0TargetTest.cpp +++ b/cas/1.0/vts/functional/VtsHalCasV1_0TargetTest.cpp @@ -17,6 +17,7 @@ #define LOG_TAG "mediacas_hidl_hal_test" #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> #include <android-base/logging.h> #include <android/hardware/cas/1.0/ICas.h> #include <android/hardware/cas/1.0/ICasListener.h> @@ -206,10 +207,23 @@ void MediaCasListener::testEventEcho(sp<ICas>& mediaCas, int32_t& event, int32_t EXPECT_TRUE(mEventData == eventData); } +// Test environment for Cas HIDL HAL. +class CasHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static CasHidlEnvironment* Instance() { + static CasHidlEnvironment* instance = new CasHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IMediaCasService>(); } +}; + class MediaCasHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: virtual void SetUp() override { - mService = ::testing::VtsHalHidlTargetTestBase::getService<IMediaCasService>(); + mService = ::testing::VtsHalHidlTargetTestBase::getService<IMediaCasService>( + CasHidlEnvironment::Instance()->getServiceName<IMediaCasService>()); ASSERT_NE(mService, nullptr); } @@ -843,7 +857,9 @@ TEST_F(MediaCasHidlTest, TestClearKeyOobFails) { } // anonymous namespace int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(CasHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + CasHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); LOG(INFO) << "Test result = " << status; return status; diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index 1c86f1108..71253dac7 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -61,8 +61,9 @@ LOCAL_MODULE_STEM := compatibility_matrix.empty.xml LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) LOCAL_ADD_VBMETA_VERSION := true LOCAL_ASSEMBLE_VINTF_ENV_VARS := \ - POLICYVERS \ - BOARD_SEPOLICY_VERS + POLICYVERS \ + PLATFORM_SEPOLICY_VERSION \ + PLATFORM_SEPOLICY_COMPAT_VERSIONS include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) diff --git a/compatibility_matrices/compatibility_matrix.mk b/compatibility_matrices/compatibility_matrix.mk index 14c60ab97..96815b83e 100644 --- a/compatibility_matrices/compatibility_matrix.mk +++ b/compatibility_matrices/compatibility_matrix.mk @@ -78,7 +78,7 @@ my_matrix_src_files := \ $(GEN): PRIVATE_SRC_FILES := $(my_matrix_src_files) $(GEN): $(my_matrix_src_files) $(HOST_OUT_EXECUTABLES)/assemble_vintf - $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)=$($(varname))) \ + $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)="$($(varname))") \ $(HOST_OUT_EXECUTABLES)/assemble_vintf \ -i $(call normalize-path-list,$(PRIVATE_SRC_FILES)) \ -o $@ \ diff --git a/dumpstate/1.0/vts/functional/VtsHalDumpstateV1_0TargetTest.cpp b/dumpstate/1.0/vts/functional/VtsHalDumpstateV1_0TargetTest.cpp index 9e866e7bd..57ebf2a88 100644 --- a/dumpstate/1.0/vts/functional/VtsHalDumpstateV1_0TargetTest.cpp +++ b/dumpstate/1.0/vts/functional/VtsHalDumpstateV1_0TargetTest.cpp @@ -24,15 +24,29 @@ #include <log/log.h> #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> using ::android::hardware::dumpstate::V1_0::IDumpstateDevice; using ::android::hardware::Return; using ::android::sp; +// Test environment for Dumpstate HIDL HAL. +class DumpstateHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static DumpstateHidlEnvironment* Instance() { + static DumpstateHidlEnvironment* instance = new DumpstateHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IDumpstateDevice>(); } +}; + class DumpstateHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: virtual void SetUp() override { - dumpstate = ::testing::VtsHalHidlTargetTestBase::getService<IDumpstateDevice>(); + dumpstate = ::testing::VtsHalHidlTargetTestBase::getService<IDumpstateDevice>( + DumpstateHidlEnvironment::Instance()->getServiceName<IDumpstateDevice>()); ASSERT_NE(dumpstate, nullptr) << "Could not get HIDL instance"; } @@ -98,7 +112,9 @@ TEST_F(DumpstateHidlTest, TestHandleWithTwoFds) { } int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(DumpstateHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + DumpstateHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); ALOGI("Test result = %d", status); return status; diff --git a/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp b/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp index 0b27922c7..264a11db8 100644 --- a/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp +++ b/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp @@ -429,23 +429,26 @@ TEST_F(GnssHalTest, GnssDebugValuesSanityTest) { EXPECT_GE(data.position.bearingDegrees, -360); EXPECT_LE(data.position.bearingDegrees, 360); - EXPECT_GE(data.position.horizontalAccuracyMeters, 0); + EXPECT_GT(data.position.horizontalAccuracyMeters, 0); EXPECT_LE(data.position.horizontalAccuracyMeters, 20000000); - EXPECT_GE(data.position.verticalAccuracyMeters, 0); + EXPECT_GT(data.position.verticalAccuracyMeters, 0); EXPECT_LE(data.position.verticalAccuracyMeters, 20000); - EXPECT_GE(data.position.speedAccuracyMetersPerSecond, 0); + EXPECT_GT(data.position.speedAccuracyMetersPerSecond, 0); EXPECT_LE(data.position.speedAccuracyMetersPerSecond, 500); - EXPECT_GE(data.position.bearingAccuracyDegrees, 0); + EXPECT_GT(data.position.bearingAccuracyDegrees, 0); EXPECT_LE(data.position.bearingAccuracyDegrees, 180); EXPECT_GE(data.position.ageSeconds, 0); } EXPECT_GE(data.time.timeEstimate, 1514764800000); // Jan 01 2018 00:00:00 + EXPECT_GT(data.time.timeUncertaintyNs, 0); + EXPECT_GT(data.time.frequencyUncertaintyNsPerSec, 0); + EXPECT_LE(data.time.frequencyUncertaintyNsPerSec, 2.0e5); // 200 ppm } } diff --git a/oemlock/1.0/vts/functional/VtsHalOemLockV1_0TargetTest.cpp b/oemlock/1.0/vts/functional/VtsHalOemLockV1_0TargetTest.cpp index a924feca3..05462a80c 100644 --- a/oemlock/1.0/vts/functional/VtsHalOemLockV1_0TargetTest.cpp +++ b/oemlock/1.0/vts/functional/VtsHalOemLockV1_0TargetTest.cpp @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - #include <android/hardware/oemlock/1.0/IOemLock.h> #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> using ::android::hardware::oemlock::V1_0::IOemLock; using ::android::hardware::oemlock::V1_0::OemLockStatus; @@ -25,9 +25,22 @@ using ::android::hardware::hidl_string; using ::android::hardware::hidl_vec; using ::android::sp; +// Test environment for OemLock HIDL HAL. +class OemLockHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static OemLockHidlEnvironment* Instance() { + static OemLockHidlEnvironment* instance = new OemLockHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IOemLock>(); } +}; + struct OemLockHidlTest : public ::testing::VtsHalHidlTargetTestBase { virtual void SetUp() override { - oemlock = ::testing::VtsHalHidlTargetTestBase::getService<IOemLock>(); + oemlock = ::testing::VtsHalHidlTargetTestBase::getService<IOemLock>( + OemLockHidlEnvironment::Instance()->getServiceName<IOemLock>()); ASSERT_NE(oemlock, nullptr); } @@ -187,3 +200,12 @@ TEST_F(OemLockHidlTest, CarrierUnlock) { ASSERT_EQ(status, OemLockStatus::OK); ASSERT_EQ(allowed, originallyAllowed); }; + +int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(OemLockHidlEnvironment::Instance()); + ::testing::InitGoogleTest(&argc, argv); + OemLockHidlEnvironment::Instance()->init(&argc, argv); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} diff --git a/usb/1.0/vts/functional/VtsHalUsbV1_0TargetTest.cpp b/usb/1.0/vts/functional/VtsHalUsbV1_0TargetTest.cpp index e01b974ab..ee7ef1beb 100644 --- a/usb/1.0/vts/functional/VtsHalUsbV1_0TargetTest.cpp +++ b/usb/1.0/vts/functional/VtsHalUsbV1_0TargetTest.cpp @@ -22,6 +22,7 @@ #include <android/hardware/usb/1.0/types.h> #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> #include <log/log.h> #include <stdlib.h> #include <chrono> @@ -48,6 +49,18 @@ using ::android::hardware::Return; using ::android::hardware::Void; using ::android::sp; +// Test environment for Usb HIDL HAL. +class UsbHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static UsbHidlEnvironment* Instance() { + static UsbHidlEnvironment* instance = new UsbHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IUsb>(); } +}; + // The main test class for the USB hidl HAL class UsbHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: @@ -96,7 +109,8 @@ class UsbHidlTest : public ::testing::VtsHalHidlTargetTestBase { virtual void SetUp() override { ALOGI("Setup"); - usb = ::testing::VtsHalHidlTargetTestBase::getService<IUsb>(); + usb = ::testing::VtsHalHidlTargetTestBase::getService<IUsb>( + UsbHidlEnvironment::Instance()->getServiceName<IUsb>()); ASSERT_NE(usb, nullptr); usb_cb_2 = new UsbCallback(*this, 2); @@ -343,7 +357,9 @@ TEST_F(UsbHidlTest, switchDataRole) { } int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(UsbHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + UsbHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); ALOGI("Test result = %d", status); return status; diff --git a/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp b/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp index 8a309930a..c990b237f 100644 --- a/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp +++ b/usb/1.1/vts/functional/VtsHalUsbV1_1TargetTest.cpp @@ -24,6 +24,7 @@ #include <VtsHalHidlTargetCallbackBase.h> #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> #include <log/log.h> #include <stdlib.h> #include <chrono> @@ -113,12 +114,25 @@ class UsbCallback : public ::testing::VtsHalHidlTargetCallbackBase<UsbClientCall }; }; +// Test environment for Usb HIDL HAL. +class UsbHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static UsbHidlEnvironment* Instance() { + static UsbHidlEnvironment* instance = new UsbHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IUsb>(); } +}; + // The main test class for the USB hidl HAL class UsbHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: virtual void SetUp() override { ALOGI(__FUNCTION__); - usb = ::testing::VtsHalHidlTargetTestBase::getService<IUsb>(); + usb = ::testing::VtsHalHidlTargetTestBase::getService<IUsb>( + UsbHidlEnvironment::Instance()->getServiceName<IUsb>()); ASSERT_NE(usb, nullptr); usb_cb_2 = new UsbCallback(2); @@ -169,7 +183,9 @@ TEST_F(UsbHidlTest, queryPortStatus) { } int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(UsbHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + UsbHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); ALOGI("Test result = %d", status); return status; diff --git a/vr/1.0/vts/functional/VtsHalVrV1_0TargetTest.cpp b/vr/1.0/vts/functional/VtsHalVrV1_0TargetTest.cpp index 23f4c71df..b1656130e 100644 --- a/vr/1.0/vts/functional/VtsHalVrV1_0TargetTest.cpp +++ b/vr/1.0/vts/functional/VtsHalVrV1_0TargetTest.cpp @@ -16,6 +16,7 @@ #define LOG_TAG "vr_hidl_hal_test" #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> #include <android-base/logging.h> #include <android/hardware/vr/1.0/IVr.h> #include <hardware/vr.h> @@ -26,11 +27,24 @@ using ::android::hardware::Return; using ::android::hardware::Void; using ::android::sp; +// Test environment for Vr HIDL HAL. +class VrHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static VrHidlEnvironment* Instance() { + static VrHidlEnvironment* instance = new VrHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IVr>(); } +}; + // The main test class for VR HIDL HAL. class VrHidlTest : public ::testing::VtsHalHidlTargetTestBase { public: void SetUp() override { - vr = ::testing::VtsHalHidlTargetTestBase::getService<IVr>(); + vr = ::testing::VtsHalHidlTargetTestBase::getService<IVr>( + VrHidlEnvironment::Instance()->getServiceName<IVr>()); ASSERT_NE(vr, nullptr); } @@ -39,16 +53,6 @@ class VrHidlTest : public ::testing::VtsHalHidlTargetTestBase { sp<IVr> vr; }; - -// A class for test environment setup (kept since this file is a template). -class VrHidlEnvironment : public ::testing::Environment { - public: - void SetUp() {} - void TearDown() {} - - private: -}; - // Sanity check that Vr::init does not crash. TEST_F(VrHidlTest, Init) { EXPECT_TRUE(vr->init().isOk()); @@ -72,8 +76,9 @@ TEST_F(VrHidlTest, ReInit) { } int main(int argc, char **argv) { - ::testing::AddGlobalTestEnvironment(new VrHidlEnvironment); + ::testing::AddGlobalTestEnvironment(VrHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); + VrHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); ALOGI("Test result = %d", status); return status; diff --git a/weaver/1.0/vts/functional/VtsHalWeaverV1_0TargetTest.cpp b/weaver/1.0/vts/functional/VtsHalWeaverV1_0TargetTest.cpp index 372d78715..de2a1de86 100644 --- a/weaver/1.0/vts/functional/VtsHalWeaverV1_0TargetTest.cpp +++ b/weaver/1.0/vts/functional/VtsHalWeaverV1_0TargetTest.cpp @@ -19,6 +19,7 @@ #include <limits> #include <VtsHalHidlTargetTestBase.h> +#include <VtsHalHidlTargetTestEnvBase.h> using ::android::hardware::weaver::V1_0::IWeaver; using ::android::hardware::weaver::V1_0::WeaverConfig; @@ -33,9 +34,22 @@ const std::vector<uint8_t> WRONG_KEY{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 const std::vector<uint8_t> VALUE{16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; const std::vector<uint8_t> OTHER_VALUE{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 255, 255}; +// Test environment for Weaver HIDL HAL. +class WeaverHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { + public: + // get the test environment singleton + static WeaverHidlEnvironment* Instance() { + static WeaverHidlEnvironment* instance = new WeaverHidlEnvironment; + return instance; + } + + virtual void registerTestServices() override { registerTestService<IWeaver>(); } +}; + struct WeaverHidlTest : public ::testing::VtsHalHidlTargetTestBase { virtual void SetUp() override { - weaver = ::testing::VtsHalHidlTargetTestBase::getService<IWeaver>(); + weaver = ::testing::VtsHalHidlTargetTestBase::getService<IWeaver>( + WeaverHidlEnvironment::Instance()->getServiceName<IWeaver>()); ASSERT_NE(weaver, nullptr); } @@ -334,3 +348,12 @@ TEST_F(WeaverHidlTest, ReadWithTooLargeKeyFails) { EXPECT_TRUE(readValue.empty()); EXPECT_EQ(timeout, 0u); } + +int main(int argc, char** argv) { + ::testing::AddGlobalTestEnvironment(WeaverHidlEnvironment::Instance()); + ::testing::InitGoogleTest(&argc, argv); + WeaverHidlEnvironment::Instance()->init(&argc, argv); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} |
