Add test for bitset/mask type.
Test: hidl_test
Change-Id: I8bcd304184ff6b7794a9d0b5d3999f071604471d
diff --git a/tests/bar/1.0/IBar.hal b/tests/bar/1.0/IBar.hal
index 82c6fc1..21c3473 100644
--- a/tests/bar/1.0/IBar.hal
+++ b/tests/bar/1.0/IBar.hal
@@ -31,4 +31,6 @@
thisIsNew();
expectNullHandle(handle h, Abc xyz) generates (bool hIsNull, bool xyzHasNull);
+ takeAMask(BitField bf, bitfield<BitField> first, MyMask second, Mask third)
+ generates (BitField bf, uint8_t first, uint8_t second, uint8_t third);
};
diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp
index cac0845..a9b6c25 100644
--- a/tests/bar/1.0/default/Bar.cpp
+++ b/tests/bar/1.0/default/Bar.cpp
@@ -185,6 +185,12 @@
return Void();
}
+Return<void> Bar::takeAMask(BitField bf, uint8_t first, const MyMask& second, uint8_t third,
+ takeAMask_cb _hidl_cb) {
+ _hidl_cb(bf, bf | first, second.value & bf, (bf | bf) & third);
+ 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 0400b98..71737fe 100644
--- a/tests/bar/1.0/default/Bar.h
+++ b/tests/bar/1.0/default/Bar.h
@@ -23,6 +23,9 @@
using ::android::hardware::hidl_string;
using ::android::sp;
+using BitField = ::android::hardware::tests::foo::V1_0::IFoo::BitField;
+using MyMask = ::android::hardware::tests::foo::V1_0::IFoo::MyMask;
+
struct Bar : public IBar {
Bar();
@@ -66,6 +69,9 @@
Return<void> thisIsNew() override;
Return<void> expectNullHandle(const hidl_handle& h, const Abc& xyz, expectNullHandle_cb _hidl_cb) override;
+ Return<void> takeAMask(BitField bf, uint8_t first, const MyMask& second, uint8_t third,
+ takeAMask_cb _hidl_cb) override;
+
private:
sp<IFoo> mFoo;
};