From 799ebcb7fa0a69365be30081cd053644820b7748 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Wed, 5 Oct 2016 12:15:51 -0700 Subject: [PATCH] Add test for importing a single type. Test: `cd system/tools/hidl && mma` Bug: 31821285 Change-Id: I0be97b16b84f76b64c09f9dc52709416601cbbdf --- tests/bar/1.0/Android.bp | 8 ++++++++ tests/bar/1.0/IBar.hal | 6 ++++++ tests/bar/1.0/IImportTypes.hal | 28 ++++++++++++++++++++++++++++ tests/foo/1.0/Android.bp | 16 ++++++++++++++++ tests/foo/1.0/IFoo.hal | 7 +++++++ tests/foo/1.0/IMyTypes.hal | 24 ++++++++++++++++++++++++ tests/foo/1.0/ITheirTypes.hal | 24 ++++++++++++++++++++++++ tests/foo/1.0/types.hal | 3 +++ 8 files changed, 116 insertions(+) create mode 100644 tests/bar/1.0/IImportTypes.hal create mode 100644 tests/foo/1.0/IMyTypes.hal create mode 100644 tests/foo/1.0/ITheirTypes.hal diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp index b87974114c..617b08f1c7 100644 --- a/tests/bar/1.0/Android.bp +++ b/tests/bar/1.0/Android.bp @@ -6,9 +6,11 @@ genrule { cmd: "$tool -o $genDir -Lc++ -randroid.hardware:hardware/interfaces android.hardware.tests.bar@1.0", srcs: [ "IBar.hal", + "IImportTypes.hal", ], out: [ "android/hardware/tests/bar/1.0/BarAll.cpp", + "android/hardware/tests/bar/1.0/ImportTypesAll.cpp", ], } @@ -18,6 +20,7 @@ genrule { cmd: "$tool -o $genDir -Lc++ -randroid.hardware:hardware/interfaces android.hardware.tests.bar@1.0", srcs: [ "IBar.hal", + "IImportTypes.hal", ], out: [ "android/hardware/tests/bar/1.0/IBar.h", @@ -25,6 +28,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/IImportTypes.h", + "android/hardware/tests/bar/1.0/IHwImportTypes.h", + "android/hardware/tests/bar/1.0/BnImportTypes.h", + "android/hardware/tests/bar/1.0/BpImportTypes.h", + "android/hardware/tests/bar/1.0/BsImportTypes.h", ], } diff --git a/tests/bar/1.0/IBar.hal b/tests/bar/1.0/IBar.hal index f41c1a59a7..b57d9a079e 100644 --- a/tests/bar/1.0/IBar.hal +++ b/tests/bar/1.0/IBar.hal @@ -17,10 +17,16 @@ package android.hardware.tests.bar@1.0; import android.hardware.tests.foo@1.0::IFoo; +import android.hardware.tests.foo@1.0::Unrelated; interface IBar extends android.hardware.tests.foo@1.0::IFoo { typedef android.hardware.tests.foo@1.0::IFoo FunkyAlias; + typedef Unrelated Related; + + struct SomethingRelated { + Related myRelated; + }; thisIsNew(); }; diff --git a/tests/bar/1.0/IImportTypes.hal b/tests/bar/1.0/IImportTypes.hal new file mode 100644 index 0000000000..a74e55ce4e --- /dev/null +++ b/tests/bar/1.0/IImportTypes.hal @@ -0,0 +1,28 @@ +/* + * 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::types; + +interface IImportTypes { + typedef Unrelated Related; + struct GoodStruct { + Outer outer; + android.hardware.tests.foo@1.0::Outer.Inner inner; + @1.0::Outer.Inner.Deep deep; + }; +}; diff --git a/tests/foo/1.0/Android.bp b/tests/foo/1.0/Android.bp index 4896fc3d3a..1fbb7bd5fd 100644 --- a/tests/foo/1.0/Android.bp +++ b/tests/foo/1.0/Android.bp @@ -8,11 +8,15 @@ genrule { "types.hal", "IFoo.hal", "IFooCallback.hal", + "IMyTypes.hal", + "ITheirTypes.hal", ], out: [ "android/hardware/tests/foo/1.0/types.cpp", "android/hardware/tests/foo/1.0/FooAll.cpp", "android/hardware/tests/foo/1.0/FooCallbackAll.cpp", + "android/hardware/tests/foo/1.0/MyTypesAll.cpp", + "android/hardware/tests/foo/1.0/TheirTypesAll.cpp", ], } @@ -24,6 +28,8 @@ genrule { "types.hal", "IFoo.hal", "IFooCallback.hal", + "IMyTypes.hal", + "ITheirTypes.hal", ], out: [ "android/hardware/tests/foo/1.0/types.h", @@ -37,6 +43,16 @@ genrule { "android/hardware/tests/foo/1.0/BnFooCallback.h", "android/hardware/tests/foo/1.0/BpFooCallback.h", "android/hardware/tests/foo/1.0/BsFooCallback.h", + "android/hardware/tests/foo/1.0/IMyTypes.h", + "android/hardware/tests/foo/1.0/IHwMyTypes.h", + "android/hardware/tests/foo/1.0/BnMyTypes.h", + "android/hardware/tests/foo/1.0/BpMyTypes.h", + "android/hardware/tests/foo/1.0/BsMyTypes.h", + "android/hardware/tests/foo/1.0/ITheirTypes.h", + "android/hardware/tests/foo/1.0/IHwTheirTypes.h", + "android/hardware/tests/foo/1.0/BnTheirTypes.h", + "android/hardware/tests/foo/1.0/BpTheirTypes.h", + "android/hardware/tests/foo/1.0/BsTheirTypes.h", ], } diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal index c1c2c6b4bc..3d823536e5 100644 --- a/tests/foo/1.0/IFoo.hal +++ b/tests/foo/1.0/IFoo.hal @@ -17,6 +17,8 @@ package android.hardware.tests.foo@1.0; import IFooCallback; +import IMyTypes.SomeStruct; +import ITheirTypes.FloatArray; interface IFoo { @@ -72,6 +74,11 @@ interface IFoo { ThreeStrings[5] s; }; + struct MyStruct { + SomeStruct innerStruct; + FloatArray myFloatArray; + }; + doThis(float param); doThatAndReturnSomething(int64_t param) generates (int32_t result); doQuiteABit(int32_t a, int64_t b, float c, double d) generates (double something); diff --git a/tests/foo/1.0/IMyTypes.hal b/tests/foo/1.0/IMyTypes.hal new file mode 100644 index 0000000000..c8469a8dac --- /dev/null +++ b/tests/foo/1.0/IMyTypes.hal @@ -0,0 +1,24 @@ +/* + * 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.foo@1.0; + + +interface IMyTypes { + struct SomeStruct { + }; + typedef float[30] FloatArray; +}; diff --git a/tests/foo/1.0/ITheirTypes.hal b/tests/foo/1.0/ITheirTypes.hal new file mode 100644 index 0000000000..7b955e0b64 --- /dev/null +++ b/tests/foo/1.0/ITheirTypes.hal @@ -0,0 +1,24 @@ +/* + * 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.foo@1.0; + + +interface ITheirTypes { + struct SomeStruct { + }; + typedef float[10] FloatArray; +}; diff --git a/tests/foo/1.0/types.hal b/tests/foo/1.0/types.hal index 9666b53814..a01fc2d10e 100644 --- a/tests/foo/1.0/types.hal +++ b/tests/foo/1.0/types.hal @@ -24,6 +24,9 @@ struct Abc { struct Outer { struct Inner { + struct Deep { + int32_t data; + }; int32_t data; }; };