Adds test cases to stress marshaling of primitive array types and
authorAndreas Huber <andih@google.com>
Tue, 31 Oct 2017 19:54:27 +0000 (12:54 -0700)
committerAndreas Huber <andih@google.com>
Tue, 31 Oct 2017 20:03:56 +0000 (13:03 -0700)
vectors of thereof.

Bug: 68654583
Test: hidl_test_java
Change-Id: Id498fe9b1e153512be294c39aff783f7d0600219

tests/baz/1.0/IBase.hal
tests/baz/1.0/default/Baz.cpp
tests/baz/1.0/default/Baz.h

index 97b2db402244e83ce5e13bf68f97a18d9c65e797..0c1b61f7d0634569f7ae1a72d6b40c0c7d97ec44 100644 (file)
@@ -77,6 +77,30 @@ interface IBase {
 
     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 @@ interface IBase {
 
     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);
 };
index 875fe65287f70a8d9cfebe110a6e9a00f0fb794b..5ccd87b44105355acc9cce7c9a2335b6e0eb47fb 100644 (file)
@@ -199,6 +199,34 @@ Return<void> Baz::takeAMask(IBase::BitField bf,
     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) {
index ceb3035ca041eed81fdeeac8fa650fba45c0665b..4443587b26088ce47f578681c8069c8d94f93a4d 100644 (file)
@@ -53,6 +53,22 @@ struct Baz : public IBaz {
                            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;