diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp index 6ef8ac280c..e4c79fad65 100644 --- a/tests/bar/1.0/Android.bp +++ b/tests/bar/1.0/Android.bp @@ -6,10 +6,12 @@ genrule { cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0", srcs: [ "IBar.hal", + "IComplicated.hal", "IImportTypes.hal", ], out: [ "android/hardware/tests/bar/1.0/BarAll.cpp", + "android/hardware/tests/bar/1.0/ComplicatedAll.cpp", "android/hardware/tests/bar/1.0/ImportTypesAll.cpp", ], } @@ -20,6 +22,7 @@ genrule { cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0", srcs: [ "IBar.hal", + "IComplicated.hal", "IImportTypes.hal", ], out: [ @@ -28,6 +31,11 @@ genrule { "android/hardware/tests/bar/1.0/BnBar.h", "android/hardware/tests/bar/1.0/BpBar.h", "android/hardware/tests/bar/1.0/BsBar.h", + "android/hardware/tests/bar/1.0/IComplicated.h", + "android/hardware/tests/bar/1.0/IHwComplicated.h", + "android/hardware/tests/bar/1.0/BnComplicated.h", + "android/hardware/tests/bar/1.0/BpComplicated.h", + "android/hardware/tests/bar/1.0/BsComplicated.h", "android/hardware/tests/bar/1.0/IImportTypes.h", "android/hardware/tests/bar/1.0/IHwImportTypes.h", "android/hardware/tests/bar/1.0/BnImportTypes.h", diff --git a/tests/bar/1.0/IBar.hal b/tests/bar/1.0/IBar.hal index 21c34739bb..5f94d07a2f 100644 --- a/tests/bar/1.0/IBar.hal +++ b/tests/bar/1.0/IBar.hal @@ -17,9 +17,12 @@ package android.hardware.tests.bar@1.0; import android.hardware.tests.foo@1.0::IFoo; +import android.hardware.tests.foo@1.0::ISimple; import android.hardware.tests.foo@1.0::Abc; import android.hardware.tests.foo@1.0::Unrelated; +import IComplicated; + interface IBar extends android.hardware.tests.foo@1.0::IFoo { typedef android.hardware.tests.foo@1.0::IFoo FunkyAlias; @@ -33,4 +36,6 @@ interface IBar extends android.hardware.tests.foo@1.0::IFoo { expectNullHandle(handle h, Abc xyz) generates (bool hIsNull, bool xyzHasNull); takeAMask(BitField bf, bitfield first, MyMask second, Mask third) generates (BitField bf, uint8_t first, uint8_t second, uint8_t third); + + haveAInterface(ISimple i) generates (ISimple i); }; diff --git a/tests/bar/1.0/IComplicated.hal b/tests/bar/1.0/IComplicated.hal new file mode 100644 index 0000000000..deaef8d789 --- /dev/null +++ b/tests/bar/1.0/IComplicated.hal @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2016 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. + */ + +package android.hardware.tests.bar@1.0; + +import android.hardware.tests.foo@1.0::ISimple; + +interface IComplicated extends ISimple { +}; diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp index a750fe41e6..4152bb9206 100644 --- a/tests/bar/1.0/default/Bar.cpp +++ b/tests/bar/1.0/default/Bar.cpp @@ -165,6 +165,13 @@ Return Bar::takeAMask(BitField bf, uint8_t first, const MyMask& second, ui return Void(); } +Return Bar::haveAInterface(const sp &in, + haveAInterface_cb _hidl_cb) { + _hidl_cb(in); + return Void(); +} + + IBar* HIDL_FETCH_IBar(const char* /* name */) { return new Bar(); } diff --git a/tests/bar/1.0/default/Bar.h b/tests/bar/1.0/default/Bar.h index 71737fe832..70bffe7818 100644 --- a/tests/bar/1.0/default/Bar.h +++ b/tests/bar/1.0/default/Bar.h @@ -71,6 +71,8 @@ struct Bar : public IBar { Return takeAMask(BitField bf, uint8_t first, const MyMask& second, uint8_t third, takeAMask_cb _hidl_cb) override; + Return haveAInterface(const sp &in, + haveAInterface_cb _hidl_cb) override; private: sp mFoo; diff --git a/tests/foo/1.0/ISimple.hal b/tests/foo/1.0/ISimple.hal index 92e9d95ea0..0d458357ee 100644 --- a/tests/foo/1.0/ISimple.hal +++ b/tests/foo/1.0/ISimple.hal @@ -18,4 +18,8 @@ package android.hardware.tests.foo@1.0; interface ISimple { getCookie() generates (int32_t cookie); + customVecInt() generates (vec chain); + customVecStr() generates (vec chain); + mystr() generates (string str); + myhandle() generates (handle str); };