Adds test cases to stress marshaling of primitive array types and
vectors of thereof.
Bug: 68654583
Test: hidl_test_java
Change-Id: Id498fe9b1e153512be294c39aff783f7d0600219
diff --git a/tests/baz/1.0/IBase.hal b/tests/baz/1.0/IBase.hal
index 97b2db4..0c1b61f 100644
--- a/tests/baz/1.0/IBase.hal
+++ b/tests/baz/1.0/IBase.hal
@@ -77,6 +77,30 @@
typedef bitfield<BitField> Mask;
+ typedef uint8_t[128] ByteOneDim;
+ typedef uint8_t[8][128] ByteTwoDim;
+ typedef uint8_t[8][16][128] ByteThreeDim;
+
+ typedef bool[128] BooleanOneDim;
+ typedef bool[8][128] BooleanTwoDim;
+ typedef bool[8][16][128] BooleanThreeDim;
+
+ typedef double[128] DoubleOneDim;
+ typedef double[8][128] DoubleTwoDim;
+ typedef double[8][16][128] DoubleThreeDim;
+
+ struct LotsOfPrimitiveArrays {
+ ByteOneDim byte1;
+ ByteTwoDim byte2;
+ ByteThreeDim byte3;
+ BooleanOneDim boolean1;
+ BooleanTwoDim boolean2;
+ BooleanThreeDim boolean3;
+ DoubleOneDim double1;
+ DoubleTwoDim double2;
+ DoubleThreeDim double3;
+ };
+
someBaseMethod();
someBoolMethod(bool x) generates (bool y);
@@ -97,4 +121,9 @@
takeAMask(BitField bf, bitfield<BitField> first, MyMask second, Mask third)
generates (BitField out, uint8_t f, uint8_t s, uint8_t t);
+
+ testArrays(LotsOfPrimitiveArrays in) generates (LotsOfPrimitiveArrays out);
+ testByteVecs(vec<ByteOneDim> in) generates (vec<ByteOneDim> out);
+ testBooleanVecs(vec<BooleanOneDim> in) generates (vec<BooleanOneDim> out);
+ testDoubleVecs(vec<DoubleOneDim> in) generates (vec<DoubleOneDim> out);
};
diff --git a/tests/baz/1.0/default/Baz.cpp b/tests/baz/1.0/default/Baz.cpp
index 875fe65..5ccd87b 100644
--- a/tests/baz/1.0/default/Baz.cpp
+++ b/tests/baz/1.0/default/Baz.cpp
@@ -199,6 +199,34 @@
return Void();
}
+Return<void> Baz::testArrays(
+ const IBase::LotsOfPrimitiveArrays &in,
+ testArrays_cb _hidl_cb) {
+ _hidl_cb(in);
+ return Void();
+}
+
+Return<void> Baz::testByteVecs(
+ const hidl_vec<IBase::ByteOneDim> &in,
+ testByteVecs_cb _hidl_cb) {
+ _hidl_cb(in);
+ return Void();
+}
+
+Return<void> Baz::testBooleanVecs(
+ const hidl_vec<IBase::BooleanOneDim> &in,
+ testBooleanVecs_cb _hidl_cb) {
+ _hidl_cb(in);
+ return Void();
+}
+
+Return<void> Baz::testDoubleVecs(
+ const hidl_vec<IBase::DoubleOneDim> &in,
+ testDoubleVecs_cb _hidl_cb) {
+ _hidl_cb(in);
+ return Void();
+}
+
// Methods from ::android::hardware::tests::baz::V1_0::IBaz follow.
Return<void> Baz::doThis(float param) {
diff --git a/tests/baz/1.0/default/Baz.h b/tests/baz/1.0/default/Baz.h
index ceb3035..4443587 100644
--- a/tests/baz/1.0/default/Baz.h
+++ b/tests/baz/1.0/default/Baz.h
@@ -53,6 +53,22 @@
uint8_t third,
takeAMask_cb _hidl_cb) override;
+ Return<void> testArrays(
+ const IBase::LotsOfPrimitiveArrays &in,
+ testArrays_cb _hidl_cb) override;
+
+ Return<void> testByteVecs(
+ const hidl_vec<IBase::ByteOneDim> &in,
+ testByteVecs_cb _hidl_cb) override;
+
+ Return<void> testBooleanVecs(
+ const hidl_vec<IBase::BooleanOneDim> &in,
+ testBooleanVecs_cb _hidl_cb) override;
+
+ Return<void> testDoubleVecs(
+ const hidl_vec<IBase::DoubleOneDim> &in,
+ testDoubleVecs_cb _hidl_cb) override;
+
// Methods from ::android::hardware::tests::baz::V1_0::IBaz follow.
Return<void> doThis(float param) override;
Return<int32_t> doThatAndReturnSomething(int64_t param) override;