summaryrefslogtreecommitdiffstats
path: root/tests/safeunion/1.0
diff options
context:
space:
mode:
authorNirav Atre <natre@google.com>2018-07-13 16:03:31 -0700
committerNirav Atre <natre@google.com>2018-07-13 22:37:45 -0700
commit6a8d93f34e85af161a72a6b207128c0c4fb97e53 (patch)
tree413ccf41b8706527c437d70afe89c8dece615985 /tests/safeunion/1.0
parentf110ea4893f9d4adc6f62495b284bcb24f34046a (diff)
downloadandroid_hardware_interfaces-6a8d93f34e85af161a72a6b207128c0c4fb97e53.tar.gz
android_hardware_interfaces-6a8d93f34e85af161a72a6b207128c0c4fb97e53.tar.bz2
android_hardware_interfaces-6a8d93f34e85af161a72a6b207128c0c4fb97e53.zip
Updated HALs to test structs/safe_unions containing interfaces
Bug: 111019943 Test: Ran the hidl_test suite (C++ and Java) Change-Id: I93e8fb9611327e263a02af8fccef1fc878746e02
Diffstat (limited to 'tests/safeunion/1.0')
-rw-r--r--tests/safeunion/1.0/ISafeUnion.hal4
-rw-r--r--tests/safeunion/1.0/default/SafeUnion.cpp20
-rw-r--r--tests/safeunion/1.0/default/SafeUnion.h2
3 files changed, 26 insertions, 0 deletions
diff --git a/tests/safeunion/1.0/ISafeUnion.hal b/tests/safeunion/1.0/ISafeUnion.hal
index fedd63b8e..e56022f41 100644
--- a/tests/safeunion/1.0/ISafeUnion.hal
+++ b/tests/safeunion/1.0/ISafeUnion.hal
@@ -66,6 +66,8 @@ interface ISafeUnion {
uint32_t a;
int8_t[7] b;
IOtherInterface c;
+ string d;
+ vec<string> e;
};
newLargeSafeUnion() generates (LargeSafeUnion myUnion);
@@ -86,4 +88,6 @@ interface ISafeUnion {
setInterfaceA(InterfaceTypeSafeUnion myUnion, uint32_t a) generates (InterfaceTypeSafeUnion myUnion);
setInterfaceB(InterfaceTypeSafeUnion myUnion, int8_t[7] b) generates (InterfaceTypeSafeUnion myUnion);
setInterfaceC(InterfaceTypeSafeUnion myUnion, IOtherInterface c) generates (InterfaceTypeSafeUnion myUnion);
+ setInterfaceD(InterfaceTypeSafeUnion myUnion, string d) generates (InterfaceTypeSafeUnion myUnion);
+ setInterfaceE(InterfaceTypeSafeUnion myUnion, vec<string> e) generates (InterfaceTypeSafeUnion myUnion);
};
diff --git a/tests/safeunion/1.0/default/SafeUnion.cpp b/tests/safeunion/1.0/default/SafeUnion.cpp
index 7047d1612..11b2e3678 100644
--- a/tests/safeunion/1.0/default/SafeUnion.cpp
+++ b/tests/safeunion/1.0/default/SafeUnion.cpp
@@ -191,6 +191,26 @@ Return<void> SafeUnion::setInterfaceC(const InterfaceTypeSafeUnion& myUnion, con
return Void();
}
+Return<void> SafeUnion::setInterfaceD(const ::android::hardware::tests::safeunion::V1_0::ISafeUnion::InterfaceTypeSafeUnion& myUnion, const hidl_string& d, setInterfaceD_cb _hidl_cb) {
+ LOG(INFO) << "SERVER(SafeUnion) setInterfaceD(myUnion, " << toString(d) << ")";
+
+ InterfaceTypeSafeUnion myNewUnion = myUnion;
+ myNewUnion.d(d);
+
+ _hidl_cb(myNewUnion);
+ return Void();
+}
+
+Return<void> SafeUnion::setInterfaceE(const ::android::hardware::tests::safeunion::V1_0::ISafeUnion::InterfaceTypeSafeUnion& myUnion, const hidl_vec<hidl_string>& e, setInterfaceE_cb _hidl_cb) {
+ LOG(INFO) << "SERVER(SafeUnion) setInterfaceE(myUnion, " << toString(e) << ")";
+
+ InterfaceTypeSafeUnion myNewUnion = myUnion;
+ myNewUnion.e(e);
+
+ _hidl_cb(myNewUnion);
+ return Void();
+}
+
ISafeUnion* HIDL_FETCH_ISafeUnion(const char* /* name */) {
return new SafeUnion();
}
diff --git a/tests/safeunion/1.0/default/SafeUnion.h b/tests/safeunion/1.0/default/SafeUnion.h
index 07d88d23b..e900fcec3 100644
--- a/tests/safeunion/1.0/default/SafeUnion.h
+++ b/tests/safeunion/1.0/default/SafeUnion.h
@@ -52,6 +52,8 @@ struct SafeUnion : public ISafeUnion {
Return<void> setInterfaceA(const InterfaceTypeSafeUnion& myUnion, uint32_t a, setInterfaceA_cb _hidl_cb) override;
Return<void> setInterfaceB(const InterfaceTypeSafeUnion& myUnion, const hidl_array<int8_t, 7>& b, setInterfaceB_cb _hidl_cb) override;
Return<void> setInterfaceC(const InterfaceTypeSafeUnion& myUnion, const sp<::android::hardware::tests::safeunion::V1_0::IOtherInterface>& c, setInterfaceC_cb _hidl_cb) override;
+ Return<void> setInterfaceD(const InterfaceTypeSafeUnion& myUnion, const hidl_string& d, setInterfaceD_cb _hidl_cb) override;
+ Return<void> setInterfaceE(const InterfaceTypeSafeUnion& myUnion, const hidl_vec<hidl_string>& e, setInterfaceE_cb _hidl_cb) override;
};
extern "C" ISafeUnion* HIDL_FETCH_ISafeUnion(const char* name);