Merge "audiohal: Re-implement stream read and write using FMQ"
diff --git a/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/AndroidTest.xml b/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/AndroidTest.xml
index f0af67a..60a2cd0 100644
--- a/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/AndroidTest.xml
+++ b/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/AndroidTest.xml
@@ -24,6 +24,7 @@
_32bit::DATA/nativetest/audio_effect_hidl_hal_test/audio_effect_hidl_hal_test,
_64bit::DATA/nativetest64/audio_effect_hidl_hal_test/audio_effect_hidl_hal_test,
"/>
+ <option name="test-config-path" value="vts/testcases/hal/audio/effect/hidl/target/HalAudioEffectHidlTargetBasicTest.config" />
<option name="binary-test-type" value="gtest" />
<option name="test-timeout" value="1m" />
</test>
diff --git a/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/HalAudioEffectHidlTargetBasicTest.config b/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/HalAudioEffectHidlTargetBasicTest.config
new file mode 100644
index 0000000..495fda9
--- /dev/null
+++ b/audio/effect/2.0/vts/functional/vts/testcases/hal/audio/effect/hidl/target/HalAudioEffectHidlTargetBasicTest.config
@@ -0,0 +1,11 @@
+{
+ "use_gae_db": true,
+ "coverage": true,
+ "modules": [{
+ "module_name": "system/lib64/hw/android.hardware.audio.effect@2.0-impl",
+ "git_project": {
+ "name": "platform/hardware/interfaces",
+ "path": "hardware/interfaces"
+ }
+ }]
+}
diff --git a/evs/1.0/default/EvsEnumerator.cpp b/evs/1.0/default/EvsEnumerator.cpp
index 9f38041..ba8da00 100644
--- a/evs/1.0/default/EvsEnumerator.cpp
+++ b/evs/1.0/default/EvsEnumerator.cpp
@@ -62,8 +62,7 @@
return Void();
}
-Return<void> EvsEnumerator::openCamera(const hidl_string& cameraId,
- openCamera_cb callback) {
+Return<sp<IEvsCamera>> EvsEnumerator::openCamera(const hidl_string& cameraId) {
ALOGD("openCamera");
// Find the named camera
@@ -78,20 +77,18 @@
if (!pRecord) {
ALOGE("Requested camera %s not found", cameraId.c_str());
- callback(nullptr);
+ return nullptr;
}
else if (pRecord->inUse) {
ALOGE("Cannot open camera %s which is already in use", cameraId.c_str());
- callback(nullptr);
+ return nullptr;
}
else {
/* TODO(b/33492405): Do this, When HIDL can give us back a recognizable pointer
pRecord->inUse = true;
*/
- callback(pRecord->pCamera);
+ return(pRecord->pCamera);
}
-
- return Void();
}
Return<void> EvsEnumerator::closeCamera(const ::android::sp<IEvsCamera>& camera) {
@@ -112,22 +109,20 @@
return Void();
}
-Return<void> EvsEnumerator::openDisplay(openDisplay_cb callback) {
+Return<sp<IEvsDisplay>> EvsEnumerator::openDisplay() {
ALOGD("openDisplay");
// If we already have a display active, then this request must be denied
if (mActiveDisplay != nullptr) {
ALOGW("Rejecting openDisplay request the display is already in use.");
- callback(nullptr);
+ return nullptr;
}
else {
// Create a new display interface and return it
mActiveDisplay = new EvsDisplay();
ALOGD("Returning new EvsDisplay object %p", mActiveDisplay.get());
- callback(mActiveDisplay);
+ return mActiveDisplay;
}
-
- return Void();
}
Return<void> EvsEnumerator::closeDisplay(const ::android::sp<IEvsDisplay>& display) {
diff --git a/evs/1.0/default/EvsEnumerator.h b/evs/1.0/default/EvsEnumerator.h
index 69caa17..90df837 100644
--- a/evs/1.0/default/EvsEnumerator.h
+++ b/evs/1.0/default/EvsEnumerator.h
@@ -34,9 +34,9 @@
public:
// Methods from ::android::hardware::evs::V1_0::IEvsEnumerator follow.
Return<void> getCameraList(getCameraList_cb _hidl_cb) override;
- Return<void> openCamera(const hidl_string& cameraId, openCamera_cb callback) override;
+ Return<sp<IEvsCamera>> openCamera(const hidl_string& cameraId) override;
Return<void> closeCamera(const ::android::sp<IEvsCamera>& carCamera) override;
- Return<void> openDisplay(openDisplay_cb callback) override;
+ Return<sp<IEvsDisplay>> openDisplay() override;
Return<void> closeDisplay(const ::android::sp<IEvsDisplay>& display) override;
// Implementation details
diff --git a/gnss/1.0/default/Gnss.cpp b/gnss/1.0/default/Gnss.cpp
index 66be37e..5e6e65d 100644
--- a/gnss/1.0/default/Gnss.cpp
+++ b/gnss/1.0/default/Gnss.cpp
@@ -385,7 +385,7 @@
preferredTimeMs) == 0);
}
-Return<void> Gnss::getExtensionAGnssRil(getExtensionAGnssRil_cb _hidl_cb) {
+Return<sp<IAGnssRil>> Gnss::getExtensionAGnssRil() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -397,11 +397,10 @@
mGnssRil = new AGnssRil(agpsRilIface);
}
}
- _hidl_cb(mGnssRil);
- return Void();
+ return mGnssRil;
}
-Return<void> Gnss::getExtensionGnssConfiguration(getExtensionGnssConfiguration_cb _hidl_cb) {
+Return<sp<IGnssConfiguration>> Gnss::getExtensionGnssConfiguration() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -415,10 +414,9 @@
mGnssConfig = new GnssConfiguration(gnssConfigIface);
}
}
- _hidl_cb(mGnssConfig);
- return Void();
+ return mGnssConfig;
}
-Return<void> Gnss::getExtensionGnssGeofencing(getExtensionGnssGeofencing_cb _hidl_cb) {
+Return<sp<IGnssGeofencing>> Gnss::getExtensionGnssGeofencing() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -433,11 +431,10 @@
}
}
- _hidl_cb(mGnssGeofencingIface);
- return Void();
+ return mGnssGeofencingIface;
}
-Return<void> Gnss::getExtensionAGnss(getExtensionAGnss_cb _hidl_cb) {
+Return<sp<IAGnss>> Gnss::getExtensionAGnss() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -449,11 +446,10 @@
mAGnssIface = new AGnss(agpsIface);
}
}
- _hidl_cb(mAGnssIface);
- return Void();
+ return mAGnssIface;
}
-Return<void> Gnss::getExtensionGnssNi(getExtensionGnssNi_cb _hidl_cb) {
+Return<sp<IGnssNi>> Gnss::getExtensionGnssNi() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -465,11 +461,10 @@
mGnssNi = new GnssNi(gpsNiIface);
}
}
- _hidl_cb(mGnssNi);
- return Void();
+ return mGnssNi;
}
-Return<void> Gnss::getExtensionGnssMeasurement(getExtensionGnssMeasurement_cb _hidl_cb) {
+Return<sp<IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -483,12 +478,10 @@
mGnssMeasurement = new GnssMeasurement(gpsMeasurementIface);
}
}
- _hidl_cb(mGnssMeasurement);
- return Void();
+ return mGnssMeasurement;
}
-Return<void> Gnss::getExtensionGnssNavigationMessage(
- getExtensionGnssNavigationMessage_cb _hidl_cb) {
+Return<sp<IGnssNavigationMessage>> Gnss::getExtensionGnssNavigationMessage() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -504,11 +497,10 @@
}
}
- _hidl_cb(mGnssNavigationMessage);
- return Void();
+ return mGnssNavigationMessage;
}
-Return<void> Gnss::getExtensionXtra(getExtensionXtra_cb _hidl_cb) {
+Return<sp<IGnssXtra>> Gnss::getExtensionXtra() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -522,11 +514,10 @@
}
}
- _hidl_cb(mGnssXtraIface);
- return Void();
+ return mGnssXtraIface;
}
-Return<void> Gnss::getExtensionGnssDebug(getExtensionGnssDebug_cb _hidl_cb) {
+Return<sp<IGnssDebug>> Gnss::getExtensionGnssDebug() {
if (mGnssIface == nullptr) {
ALOGE("%s: Gnss interface is unavailable", __func__);
} else {
@@ -540,8 +531,7 @@
}
}
- _hidl_cb(mGnssDebug);
- return Void();
+ return mGnssDebug;
}
IGnss* HIDL_FETCH_IGnss(const char* hal) {
diff --git a/gnss/1.0/default/Gnss.h b/gnss/1.0/default/Gnss.h
index a2c8676..e12ac12 100644
--- a/gnss/1.0/default/Gnss.h
+++ b/gnss/1.0/default/Gnss.h
@@ -74,16 +74,15 @@
uint32_t minIntervalMs,
uint32_t preferredAccuracyMeters,
uint32_t preferredTimeMs) override;
- Return<void> getExtensionAGnssRil(getExtensionAGnssRil_cb _hidl_cb) override;
- Return<void> getExtensionGnssGeofencing(getExtensionGnssGeofencing_cb _hidl_cb) override;
- Return<void> getExtensionAGnss(getExtensionAGnss_cb _hidl_cb) override;
- Return<void> getExtensionGnssNi(getExtensionGnssNi_cb _hidl_cb) override;
- Return<void> getExtensionGnssMeasurement(getExtensionGnssMeasurement_cb _hidl_cb) override;
- Return<void> getExtensionGnssNavigationMessage(
- getExtensionGnssNavigationMessage_cb _hidl_cb) override;
- Return<void> getExtensionXtra(getExtensionXtra_cb _hidl_cb) override;
- Return<void> getExtensionGnssDebug(getExtensionGnssDebug_cb _hidl_cb) override;
- Return<void> getExtensionGnssConfiguration(getExtensionGnssConfiguration_cb _hidl_cb) override;
+ Return<sp<IAGnssRil>> getExtensionAGnssRil() override;
+ Return<sp<IGnssGeofencing>> getExtensionGnssGeofencing() override;
+ Return<sp<IAGnss>> getExtensionAGnss() override;
+ Return<sp<IGnssNi>> getExtensionGnssNi() override;
+ Return<sp<IGnssMeasurement>> getExtensionGnssMeasurement() override;
+ Return<sp<IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override;
+ Return<sp<IGnssXtra>> getExtensionXtra() override;
+ Return<sp<IGnssConfiguration>> getExtensionGnssConfiguration() override;
+ Return<sp<IGnssDebug>> getExtensionGnssDebug() override;
/*
* Callback methods to be passed into the conventional GNSS HAL by the default
diff --git a/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/AndroidTest.xml b/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/AndroidTest.xml
index 240f1f0..94a942b 100644
--- a/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/AndroidTest.xml
+++ b/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/AndroidTest.xml
@@ -24,6 +24,7 @@
_32bit::DATA/nativetest/light_hidl_hal_test/light_hidl_hal_test,
_64bit::DATA/nativetest64/light_hidl_hal_test/light_hidl_hal_test,
"/>
+ <option name="test-config-path" value="vts/testcases/hal/light/hidl/target/HalLightHidlTargetBasicTest.config" />
<option name="binary-test-type" value="gtest" />
<option name="test-timeout" value="1m" />
</test>
diff --git a/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/HalLightHidlTargetBasicTest.config b/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/HalLightHidlTargetBasicTest.config
new file mode 100644
index 0000000..cb572aa
--- /dev/null
+++ b/light/2.0/vts/functional/vts/testcases/hal/light/hidl/target/HalLightHidlTargetBasicTest.config
@@ -0,0 +1,33 @@
+{
+ "coverage": true,
+ "modules": [
+ {
+ "module_name": "system/lib64/hw/lights.bullhead",
+ "git_project": {
+ "name": "device/lge/bullhead",
+ "path": "device/lge/bullhead"
+ }
+ },
+ {
+ "module_name": "system/lib64/hw/lights.marlin",
+ "git_project": {
+ "name": "device/google/marlin",
+ "path": "device/google/marlin"
+ }
+ },
+ {
+ "module_name": "system/lib64/hw/lights.sailfish",
+ "git_project": {
+ "name": "device/google/marlin",
+ "path": "device/google/marlin"
+ }
+ },
+ {
+ "module_name": "system/lib64/hw/android.hardware.light@2.0-impl",
+ "git_project": {
+ "name": "platform/hardware/interfaces",
+ "path": "hardware/interfaces"
+ }
+ }
+ ]
+}
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/NfcHidlBasicTest.py b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/NfcHidlBasicTest.py
index 136704a..de01f43 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/NfcHidlBasicTest.py
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/NfcHidlBasicTest.py
@@ -47,13 +47,14 @@
self.dut.shell.one.Execute(
"setprop vts.hal.vts.hidl.get_stub false")
- self.dut.hal.InitHidlHal(target_type="nfc",
- target_basepaths=["/system/lib64"],
- target_version=1.0,
- target_package="android.hardware.nfc",
- target_component_name="INfc",
- hw_binder_service_name="nfc_nci",
- bits=64)
+ self.dut.hal.InitHidlHal(
+ target_type="nfc",
+ target_basepaths=self.dut.libPaths,
+ target_version=1.0,
+ target_package="android.hardware.nfc",
+ target_component_name="INfc",
+ hw_binder_service_name="nfc_nci",
+ bits=64 if self.dut.is64Bit else 32)
def tearDownClass(self):
"""Turns off the framework-layer NFC service."""
diff --git a/radio/1.0/types.hal b/radio/1.0/types.hal
index 6475b4f..49ba30e 100644
--- a/radio/1.0/types.hal
+++ b/radio/1.0/types.hal
@@ -1089,8 +1089,7 @@
int32_t gsmUmtsSubscriptionAppIndex; // value < RadioConst:CARD_MAX_APPS, -1 if none
int32_t cdmaSubscriptionAppIndex; // value < RadioConst:CARD_MAX_APPS, -1 if none
int32_t imsSubscriptionAppIndex; // value < RadioConst:CARD_MAX_APPS, -1 if none
- int32_t numApplications; // value <= RadioConst:CARD_MAX_APPS
- AppStatus[RadioConst:CARD_MAX_APPS] applications;
+ vec<AppStatus> applications; // size <= RadioConst:CARD_MAX_APPS
};
/*
diff --git a/sensors/1.0/vts/functional/vts/testcases/hal/sensors/hidl/host/SensorsHidlTest.py b/sensors/1.0/vts/functional/vts/testcases/hal/sensors/hidl/host/SensorsHidlTest.py
index 88fe675..de764af 100644
--- a/sensors/1.0/vts/functional/vts/testcases/hal/sensors/hidl/host/SensorsHidlTest.py
+++ b/sensors/1.0/vts/functional/vts/testcases/hal/sensors/hidl/host/SensorsHidlTest.py
@@ -48,11 +48,11 @@
self.dut.hal.InitHidlHal(
target_type="sensors",
- target_basepaths=["/system/lib64"],
+ target_basepaths=self.dut.libPaths,
target_version=1.0,
target_package="android.hardware.sensors",
target_component_name="ISensors",
- bits=64)
+ bits=64 if self.dut.is64Bit else 32)
def tearDownClass(self):
""" If profiling is enabled for the test, collect the profiling data
diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp
index 4152bb9..16c0235 100644
--- a/tests/bar/1.0/default/Bar.cpp
+++ b/tests/bar/1.0/default/Bar.cpp
@@ -165,10 +165,8 @@
return Void();
}
-Return<void> Bar::haveAInterface(const sp<ISimple> &in,
- haveAInterface_cb _hidl_cb) {
- _hidl_cb(in);
- return Void();
+Return<sp<ISimple>> Bar::haveAInterface(const sp<ISimple> &in) {
+ return in;
}
diff --git a/tests/bar/1.0/default/Bar.h b/tests/bar/1.0/default/Bar.h
index 70bffe7..b276823 100644
--- a/tests/bar/1.0/default/Bar.h
+++ b/tests/bar/1.0/default/Bar.h
@@ -71,8 +71,7 @@
Return<void> takeAMask(BitField bf, uint8_t first, const MyMask& second, uint8_t third,
takeAMask_cb _hidl_cb) override;
- Return<void> haveAInterface(const sp<ISimple> &in,
- haveAInterface_cb _hidl_cb) override;
+ Return<sp<ISimple>> haveAInterface(const sp<ISimple> &in);
private:
sp<IFoo> mFoo;
diff --git a/tests/foo/1.0/default/Android.bp b/tests/foo/1.0/default/Android.bp
index 76a4656..952f25d 100644
--- a/tests/foo/1.0/default/Android.bp
+++ b/tests/foo/1.0/default/Android.bp
@@ -5,7 +5,6 @@
relative_install_path: "hw",
srcs: [
"Foo.cpp",
- "FooCallback.cpp",
],
shared_libs: [
diff --git a/tests/foo/1.0/default/Foo.cpp b/tests/foo/1.0/default/Foo.cpp
index cdfdecc..a860ce7 100644
--- a/tests/foo/1.0/default/Foo.cpp
+++ b/tests/foo/1.0/default/Foo.cpp
@@ -2,7 +2,6 @@
#define LOG_TAG "hidl_test"
#include "Foo.h"
-#include "FooCallback.h"
#include <android-base/logging.h>
#include <hidl-test/FooHelper.h>
#include <inttypes.h>
diff --git a/tests/foo/1.0/default/FooCallback.cpp b/tests/foo/1.0/default/FooCallback.cpp
deleted file mode 100644
index ff3a545..0000000
--- a/tests/foo/1.0/default/FooCallback.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-#define LOG_TAG "hidl_test"
-
-#include "FooCallback.h"
-#include <android/log.h>
-#include <hidl-test/FooHelper.h>
-#include <inttypes.h>
-#include <utils/Timers.h>
-
-namespace android {
-namespace hardware {
-namespace tests {
-namespace foo {
-namespace V1_0 {
-namespace implementation {
-
-enum {
- NOT_REPORTED = -1LL
-};
-
-FooCallback::FooCallback()
- : mLock{}, mCond{} {
- for (size_t i = 0; i < invokeInfo.size(); i++) {
- invokeInfo[i].invoked = false;
- invokeInfo[i].timeNs = NOT_REPORTED;
- invokeInfo[i].callerBlockedNs = NOT_REPORTED;
- }
-}
-
-Return<void> FooCallback::heyItsYou(
- const sp<IFooCallback> &_cb) {
- nsecs_t start = systemTime();
- ALOGI("SERVER(FooCallback) 1: heyItsYou cb = %p", _cb.get());
- nsecs_t end = systemTime();
- {
- Mutex::Autolock lock(mLock);
- invokeInfo[0].invoked = true;
- invokeInfo[0].timeNs = end - start;
- mCond.signal();
- }
- ALOGI("SERVER(FooCallback) 2: heyItsYou returned");
- return Void();
-}
-
-Return<bool> FooCallback::heyItsYouIsntIt(const sp<IFooCallback> &_cb) {
- nsecs_t start = systemTime();
- ALOGI("SERVER(FooCallback) 3: heyItsYouIsntIt cb = %p sleeping for %" PRId64 " seconds", _cb.get(), DELAY_S);
- sleep(DELAY_S);
- ALOGI("SERVER(FooCallback) 4: heyItsYouIsntIt cb = %p responding", _cb.get());
- nsecs_t end = systemTime();
- {
- Mutex::Autolock lock(mLock);
- invokeInfo[1].invoked = true;
- invokeInfo[1].timeNs = end - start;
- mCond.signal();
- }
- ALOGI("SERVER(FooCallback) 5: heyItsYouIsntIt cb = %p responding", _cb.get());
- return true;
-}
-
-Return<void> FooCallback::heyItsTheMeaningOfLife(uint8_t tmol) {
- nsecs_t start = systemTime();
- ALOGI("SERVER(FooCallback) 6.1: heyItsTheMeaningOfLife = %d sleeping for %" PRId64 " seconds", tmol, DELAY_S);
- sleep(DELAY_S);
- ALOGI("SERVER(FooCallback) 6.2: heyItsTheMeaningOfLife = %d done sleeping", tmol);
- nsecs_t end = systemTime();
- {
- Mutex::Autolock lock(mLock);
- invokeInfo[2].invoked = true;
- invokeInfo[2].timeNs = end - start;
- mCond.signal();
- }
- ALOGI("SERVER(FooCallback) 6.3: heyItsTheMeaningOfLife returned");
- return Void();
-}
-
-Return<void> FooCallback::reportResults(int64_t ns, reportResults_cb cb) {
- ALOGI("SERVER(FooCallback) 8.1: reportResults(%" PRId64 " seconds)", nanoseconds_to_seconds(ns));
- nsecs_t leftToWaitNs = ns;
- bool cond;
- {
- Mutex::Autolock lock(mLock);
- while ((cond = ((!invokeInfo[0].invoked ||
- !invokeInfo[1].invoked ||
- !invokeInfo[2].invoked ||
- invokeInfo[0].callerBlockedNs == NOT_REPORTED ||
- invokeInfo[1].callerBlockedNs == NOT_REPORTED ||
- invokeInfo[2].callerBlockedNs == NOT_REPORTED) &&
- leftToWaitNs > 0))) {
- nsecs_t start = systemTime();
- ::android::status_t rc = mCond.waitRelative(mLock, leftToWaitNs);
- if (rc != ::android::OK) {
- ALOGW("SERVER(FooCallback)::reportResults(%" PRId64 " ns) Condition::waitRelative(%" PRId64 ") returned error (%d)", ns, leftToWaitNs, rc);
- if (rc == -ETIMEDOUT) {
- // time's up
- leftToWaitNs = -1;
- }
- break;
- }
- ALOGI("SERVER(FooCallback)::reportResults(%" PRId64 " ns) Condition::waitRelative was signalled", ns);
- leftToWaitNs -= systemTime() - start;
- }
- }
- ALOGI("SERVER(FooCallback) 8.2: reportResults returned;"
- "invoked? %d, %d, %d; leftToWaitNs = %" PRId64 "; cond = %d",
- invokeInfo[0].invoked, invokeInfo[1].invoked, invokeInfo[2].invoked,
- leftToWaitNs, cond);
- cb(leftToWaitNs, invokeInfo);
- return Void();
-}
-
-Return<void> FooCallback::youBlockedMeFor(const hidl_array<int64_t, 3> &ns) {
- ALOGI("SERVER(FooCallback) 7.1: youBlockedMeFor");
- {
- Mutex::Autolock lock(mLock);
- for (size_t i = 0; i < 3; i++) {
- invokeInfo[i].callerBlockedNs = ns[i];
- }
- mCond.signal();
- }
- ALOGI("SERVER(FooCallback) 7.2: returned");
- return Void();
-}
-
-IFooCallback* HIDL_FETCH_IFooCallback(const char* /* name */) {
- return new FooCallback();
-}
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace foo
-} // namespace tests
-} // namespace hardware
-} // namespace android
diff --git a/tests/foo/1.0/default/FooCallback.h b/tests/foo/1.0/default/FooCallback.h
deleted file mode 100644
index 3164a9d..0000000
--- a/tests/foo/1.0/default/FooCallback.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef ANDROID_HARDWARE_TESTS_FOO_V1_0_FOOCALLBACK_H
-#define ANDROID_HARDWARE_TESTS_FOO_V1_0_FOOCALLBACK_H
-
-#include <android/hardware/tests/foo/1.0/IFooCallback.h>
-#include <hidl/Status.h>
-#include <hidl/MQDescriptor.h>
-
-#include <utils/Condition.h>
-namespace android {
-namespace hardware {
-namespace tests {
-namespace foo {
-namespace V1_0 {
-namespace implementation {
-
-using ::android::hardware::tests::foo::V1_0::IFooCallback;
-using ::android::hardware::Return;
-using ::android::hardware::Void;
-using ::android::hardware::hidl_vec;
-using ::android::hardware::hidl_string;
-using ::android::sp;
-
-struct FooCallback : public IFooCallback {
- FooCallback();
- // Methods from ::android::hardware::tests::foo::V1_0::IFooCallback follow.
- Return<void> heyItsYou(const sp<IFooCallback>& cb) override;
- Return<bool> heyItsYouIsntIt(const sp<IFooCallback>& cb) override;
- Return<void> heyItsTheMeaningOfLife(uint8_t tmol) override;
- Return<void> reportResults(int64_t ns, reportResults_cb _hidl_cb) override;
- Return<void> youBlockedMeFor(const hidl_array<int64_t, 3 /* 3 */>& callerBlockedInfo) override;
-
- hidl_array<InvokeInfo, 3> invokeInfo;
- Mutex mLock;
- Condition mCond;
-};
-
-extern "C" IFooCallback* HIDL_FETCH_IFooCallback(const char* name);
-
-} // namespace implementation
-} // namespace V1_0
-} // namespace foo
-} // namespace tests
-} // namespace hardware
-} // namespace android
-
-#endif // ANDROID_HARDWARE_TESTS_FOO_V1_0_FOOCALLBACK_H
diff --git a/tests/inheritance/1.0/default/Fetcher.cpp b/tests/inheritance/1.0/default/Fetcher.cpp
index f3b576b..7094f07 100644
--- a/tests/inheritance/1.0/default/Fetcher.cpp
+++ b/tests/inheritance/1.0/default/Fetcher.cpp
@@ -17,8 +17,7 @@
CHECK(!mPrecious->isRemote());
}
-template <typename CB>
-Return<void> selectService(bool sendRemote, CB &_hidl_cb, sp<IChild> &local) {
+sp<IChild> selectService(bool sendRemote, sp<IChild> &local) {
sp<IChild> toSend;
if (sendRemote) {
toSend = IChild::getService("child");
@@ -29,21 +28,20 @@
toSend = local;
}
LOG(INFO) << "SERVER(Fetcher) selectService returning " << toSend.get();
- _hidl_cb(toSend);
- return Void();
+ return toSend;
}
// Methods from ::android::hardware::tests::inheritance::V1_0::IFetcher follow.
-Return<void> Fetcher::getGrandparent(bool sendRemote, getGrandparent_cb _hidl_cb) {
- return selectService(sendRemote, _hidl_cb, mPrecious);
+Return<sp<IGrandparent>> Fetcher::getGrandparent(bool sendRemote) {
+ return selectService(sendRemote, mPrecious);
}
-Return<void> Fetcher::getParent(bool sendRemote, getParent_cb _hidl_cb) {
- return selectService(sendRemote, _hidl_cb, mPrecious);
+Return<sp<IParent>> Fetcher::getParent(bool sendRemote) {
+ return selectService(sendRemote, mPrecious);
}
-Return<void> Fetcher::getChild(bool sendRemote, getChild_cb _hidl_cb) {
- return selectService(sendRemote, _hidl_cb, mPrecious);
+Return<sp<IChild>> Fetcher::getChild(bool sendRemote) {
+ return selectService(sendRemote, mPrecious);
}
IFetcher* HIDL_FETCH_IFetcher(const char* /* name */) {
diff --git a/tests/inheritance/1.0/default/Fetcher.h b/tests/inheritance/1.0/default/Fetcher.h
index da9b153..979b47f 100644
--- a/tests/inheritance/1.0/default/Fetcher.h
+++ b/tests/inheritance/1.0/default/Fetcher.h
@@ -25,9 +25,9 @@
Fetcher();
// Methods from ::android::hardware::tests::inheritance::V1_0::IFetcher follow.
- Return<void> getGrandparent(bool sendRemote, getGrandparent_cb _hidl_cb) override;
- Return<void> getParent(bool sendRemote, getParent_cb _hidl_cb) override;
- Return<void> getChild(bool sendRemote, getChild_cb _hidl_cb) override;
+ Return<sp<IGrandparent>> getGrandparent(bool sendRemote) override;
+ Return<sp<IParent>> getParent(bool sendRemote) override;
+ Return<sp<IChild>> getChild(bool sendRemote) override;
private:
sp<IChild> mPrecious;
diff --git a/tests/msgq/1.0/ITestMsgQ.hal b/tests/msgq/1.0/ITestMsgQ.hal
index 933e39b..e000f55 100644
--- a/tests/msgq/1.0/ITestMsgQ.hal
+++ b/tests/msgq/1.0/ITestMsgQ.hal
@@ -91,4 +91,14 @@
*
*/
oneway requestBlockingRead(int32_t count);
+
+ /*
+ * This method requests the service to repeatedly trigger blocking reads.
+ *
+ * @param count Number of messages to read in a single blocking read.
+ * @param numIter Number of blocking reads to trigger.
+ *
+ */
+ oneway requestBlockingReadRepeat(int32_t count, int32_t numIter);
+
};
diff --git a/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py b/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py
index cd2374a..dcf21c9 100644
--- a/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py
+++ b/tv/cec/1.0/vts/functional/vts/testcases/hal/tv_cec/hidl/host/TvCecHidlTest.py
@@ -37,13 +37,14 @@
self.dut.shell.one.Execute(
"setprop vts.hal.vts.hidl.get_stub true")
- self.dut.hal.InitHidlHal(target_type="tv_cec",
- target_basepaths=["/system/lib64"],
- target_version=1.0,
- target_package="android.hardware.tv.cec",
- target_component_name="IHdmiCec",
- hw_binder_service_name="tv.cec",
- bits=64)
+ self.dut.hal.InitHidlHal(
+ target_type="tv_cec",
+ target_basepaths=self.dut.libPaths,
+ target_version=1.0,
+ target_package="android.hardware.tv.cec",
+ target_component_name="IHdmiCec",
+ hw_binder_service_name="tv.cec",
+ bits=64 if self.dut.is64Bit else 32)
def testGetCecVersion1(self):
"""A simple test case which queries the cec version."""
diff --git a/vehicle/2.0/vts/functional/vts/testcases/hal/vehicle/hidl/host/VehicleHidlTest.py b/vehicle/2.0/vts/functional/vts/testcases/hal/vehicle/hidl/host/VehicleHidlTest.py
index 37f24c4..e17c72d 100644
--- a/vehicle/2.0/vts/functional/vts/testcases/hal/vehicle/hidl/host/VehicleHidlTest.py
+++ b/vehicle/2.0/vts/functional/vts/testcases/hal/vehicle/hidl/host/VehicleHidlTest.py
@@ -40,12 +40,12 @@
self.dut.hal.InitHidlHal(
target_type="vehicle",
- target_basepaths=["/system/lib64"],
+ target_basepaths=self.dut.libPaths,
target_version=2.0,
target_package="android.hardware.vehicle",
target_component_name="IVehicle",
hw_binder_service_name="Vehicle",
- bits=64)
+ bits=64 if self.dut.is64Bit else 32)
def tearDownClass(self):
""" If profiling is enabled for the test, collect the profiling data
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host/VibratorHidlTest.py b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host/VibratorHidlTest.py
index b36f47a..da70474 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host/VibratorHidlTest.py
+++ b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host/VibratorHidlTest.py
@@ -44,12 +44,12 @@
self.dut.hal.InitHidlHal(
target_type="vibrator",
- target_basepaths=["/system/lib64"],
+ target_basepaths=self.dut.libPaths,
target_version=1.0,
target_package="android.hardware.vibrator",
target_component_name="IVibrator",
hw_binder_service_name="vibrator",
- bits=64)
+ bits=64 if self.dut.is64Bit else 32)
def tearDownClass(self):
""" If profiling is enabled for the test, collect the profiling data