aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAyrton Munoz <ayrton@google.com>2024-04-25 16:14:54 +0000
committerAyrton Munoz <ayrton@google.com>2024-04-25 16:28:30 +0000
commit3718f9dd8d05b363d2a578194b4067a3f27f660e (patch)
tree37d47856921670b84f6d40a8d8d8838c60a98ee3
parent38862bdb04515a722580e9d013efca661abb1aa1 (diff)
downloadaidl-main.tar.gz
Add arrays to FixedSize parcelable and union testsHEADmastermain
Change-Id: I4eb6760d8aaec9d5b0a784d230ef90d32957c3bd Test: m aidl_integration_tests
-rw-r--r--tests/android/aidl/tests/FixedSize.aidl4
-rw-r--r--tests/golden_output/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp46
-rw-r--r--tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h30
-rw-r--r--tests/golden_output/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java68
-rw-r--r--tests/golden_output/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp42
-rw-r--r--tests/golden_output/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h30
-rw-r--r--tests/golden_output/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs46
-rw-r--r--tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp46
-rw-r--r--tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h30
-rw-r--r--tests/golden_output/frozen/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java68
-rw-r--r--tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp42
-rw-r--r--tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h30
-rw-r--r--tests/golden_output/frozen/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs46
13 files changed, 484 insertions, 44 deletions
diff --git a/tests/android/aidl/tests/FixedSize.aidl b/tests/android/aidl/tests/FixedSize.aidl
index 295199f3..56548c1f 100644
--- a/tests/android/aidl/tests/FixedSize.aidl
+++ b/tests/android/aidl/tests/FixedSize.aidl
@@ -27,6 +27,8 @@ parcelable FixedSize {
int intValue;
long longValue;
float floatValue;
+ int[3] intArray;
+ long[3][2] multiDimensionLongArray;
double doubleValue;
LongEnum enumValue = LongEnum.FOO;
FixedUnion parcelableValue;
@@ -40,6 +42,8 @@ parcelable FixedSize {
int intValue;
long longValue;
float floatValue;
+ int[3] intArray;
+ long[3][2] multiDimensionLongArray;
double doubleValue;
LongEnum enumValue;
}
diff --git a/tests/golden_output/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp b/tests/golden_output/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp
index b1a16ba9..dcce3622 100644
--- a/tests/golden_output/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp
+++ b/tests/golden_output/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp
@@ -102,6 +102,22 @@ namespace tests {
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
+ _aidl_ret_status = _aidl_parcel->readFixedArray(&intArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
+ if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
+ _aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
+ _aidl_ret_status = _aidl_parcel->readFixedArray(&multiDimensionLongArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
+ if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
+ _aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
_aidl_ret_status = _aidl_parcel->readDouble(&doubleValue);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
@@ -153,6 +169,14 @@ namespace tests {
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
+ _aidl_ret_status = _aidl_parcel->writeFixedArray(intArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
+ _aidl_ret_status = _aidl_parcel->writeFixedArray(multiDimensionLongArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
_aidl_ret_status = _aidl_parcel->writeDouble(doubleValue);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
@@ -244,6 +268,26 @@ namespace tests {
set<floatValue>(std::move(_aidl_value));
}
return ::android::OK; }
+ case intArray: {
+ std::array<int32_t, 3> _aidl_value;
+ if ((_aidl_ret_status = _aidl_parcel->readFixedArray(&_aidl_value)) != ::android::OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<int32_t, 3>>) {
+ set<intArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<intArray>(std::move(_aidl_value));
+ }
+ return ::android::OK; }
+ case multiDimensionLongArray: {
+ std::array<std::array<int64_t, 2>, 3> _aidl_value;
+ if ((_aidl_ret_status = _aidl_parcel->readFixedArray(&_aidl_value)) != ::android::OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<std::array<int64_t, 2>, 3>>) {
+ set<multiDimensionLongArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<multiDimensionLongArray>(std::move(_aidl_value));
+ }
+ return ::android::OK; }
case doubleValue: {
double _aidl_value;
if ((_aidl_ret_status = _aidl_parcel->readDouble(&_aidl_value)) != ::android::OK) return _aidl_ret_status;
@@ -277,6 +321,8 @@ namespace tests {
case intValue: return _aidl_parcel->writeInt32(get<intValue>());
case longValue: return _aidl_parcel->writeInt64(get<longValue>());
case floatValue: return _aidl_parcel->writeFloat(get<floatValue>());
+ case intArray: return _aidl_parcel->writeFixedArray(get<intArray>());
+ case multiDimensionLongArray: return _aidl_parcel->writeFixedArray(get<multiDimensionLongArray>());
case doubleValue: return _aidl_parcel->writeDouble(get<doubleValue>());
case enumValue: return _aidl_parcel->writeInt64(static_cast<int64_t>(get<enumValue>()));
}
diff --git a/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h b/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h
index 6fd07890..61a4c986 100644
--- a/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h
+++ b/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h
@@ -38,8 +38,10 @@ public:
intValue = 3,
longValue = 4,
floatValue = 5,
- doubleValue = 6,
- enumValue = 7,
+ intArray = 6,
+ multiDimensionLongArray = 7,
+ doubleValue = 8,
+ enumValue = 9,
};
// Expose tag symbols for legacy code
static const inline Tag booleanValue = Tag::booleanValue;
@@ -48,11 +50,13 @@ public:
static const inline Tag intValue = Tag::intValue;
static const inline Tag longValue = Tag::longValue;
static const inline Tag floatValue = Tag::floatValue;
+ static const inline Tag intArray = Tag::intArray;
+ static const inline Tag multiDimensionLongArray = Tag::multiDimensionLongArray;
static const inline Tag doubleValue = Tag::doubleValue;
static const inline Tag enumValue = Tag::enumValue;
template <Tag _Tag>
- using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, double, ::android::aidl::tests::LongEnum>>::type;
+ using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, std::array<int32_t, 3>, std::array<std::array<int64_t, 2>, 3>, double, ::android::aidl::tests::LongEnum>>::type;
template <Tag _Tag, typename _Type>
static FixedUnion make(_Type&& _arg) {
FixedUnion _inst;
@@ -128,6 +132,8 @@ public:
case intValue: os << "intValue: " << ::android::internal::ToString(get<intValue>()); break;
case longValue: os << "longValue: " << ::android::internal::ToString(get<longValue>()); break;
case floatValue: os << "floatValue: " << ::android::internal::ToString(get<floatValue>()); break;
+ case intArray: os << "intArray: " << ::android::internal::ToString(get<intArray>()); break;
+ case multiDimensionLongArray: os << "multiDimensionLongArray: " << ::android::internal::ToString(get<multiDimensionLongArray>()); break;
case doubleValue: os << "doubleValue: " << ::android::internal::ToString(get<doubleValue>()); break;
case enumValue: os << "enumValue: " << ::android::internal::ToString(get<enumValue>()); break;
}
@@ -145,6 +151,8 @@ public:
int32_t intValue __attribute__((aligned (4)));
int64_t longValue __attribute__((aligned (8)));
float floatValue __attribute__((aligned (4)));
+ std::array<int32_t, 3> intArray __attribute__((aligned (4)));
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray __attribute__((aligned (8)));
double doubleValue __attribute__((aligned (8)));
::android::aidl::tests::LongEnum enumValue __attribute__((aligned (8)));
} _value;
@@ -157,14 +165,16 @@ public:
int32_t intValue = 0;
int64_t longValue = 0L;
float floatValue = 0.000000f;
+ std::array<int32_t, 3> intArray = {{}};
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray = {{}};
double doubleValue = 0.000000;
::android::aidl::tests::LongEnum enumValue = ::android::aidl::tests::LongEnum::FOO;
::android::aidl::tests::FixedSize::FixedUnion parcelableValue;
inline bool operator==(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator<(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator!=(const FixedParcelable& _rhs) const {
return !(*this == _rhs);
@@ -194,6 +204,8 @@ public:
_aidl_os << ", intValue: " << ::android::internal::ToString(intValue);
_aidl_os << ", longValue: " << ::android::internal::ToString(longValue);
_aidl_os << ", floatValue: " << ::android::internal::ToString(floatValue);
+ _aidl_os << ", intArray: " << ::android::internal::ToString(intArray);
+ _aidl_os << ", multiDimensionLongArray: " << ::android::internal::ToString(multiDimensionLongArray);
_aidl_os << ", doubleValue: " << ::android::internal::ToString(doubleValue);
_aidl_os << ", enumValue: " << ::android::internal::ToString(enumValue);
_aidl_os << ", parcelableValue: " << ::android::internal::ToString(parcelableValue);
@@ -253,6 +265,10 @@ namespace tests {
return "longValue";
case FixedSize::FixedUnion::Tag::floatValue:
return "floatValue";
+ case FixedSize::FixedUnion::Tag::intArray:
+ return "intArray";
+ case FixedSize::FixedUnion::Tag::multiDimensionLongArray:
+ return "multiDimensionLongArray";
case FixedSize::FixedUnion::Tag::doubleValue:
return "doubleValue";
case FixedSize::FixedUnion::Tag::enumValue:
@@ -269,13 +285,15 @@ namespace internal {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wc++17-extensions"
template <>
-constexpr inline std::array<::android::aidl::tests::FixedSize::FixedUnion::Tag, 8> enum_values<::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
+constexpr inline std::array<::android::aidl::tests::FixedSize::FixedUnion::Tag, 10> enum_values<::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
::android::aidl::tests::FixedSize::FixedUnion::Tag::booleanValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::byteValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::charValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::intValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::longValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::floatValue,
+ ::android::aidl::tests::FixedSize::FixedUnion::Tag::intArray,
+ ::android::aidl::tests::FixedSize::FixedUnion::Tag::multiDimensionLongArray,
::android::aidl::tests::FixedSize::FixedUnion::Tag::doubleValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::enumValue,
};
diff --git a/tests/golden_output/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java b/tests/golden_output/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java
index 0e13b1ac..f1d7c015 100644
--- a/tests/golden_output/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java
+++ b/tests/golden_output/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java
@@ -52,6 +52,8 @@ public class FixedSize implements android.os.Parcelable
public int intValue = 0;
public long longValue = 0L;
public float floatValue = 0.000000f;
+ public int[] intArray;
+ public long[][] multiDimensionLongArray;
public double doubleValue = 0.000000;
public long enumValue = android.aidl.tests.LongEnum.FOO;
public android.aidl.tests.FixedSize.FixedUnion parcelableValue;
@@ -77,6 +79,8 @@ public class FixedSize implements android.os.Parcelable
_aidl_parcel.writeInt(intValue);
_aidl_parcel.writeLong(longValue);
_aidl_parcel.writeFloat(floatValue);
+ _aidl_parcel.writeFixedArray(intArray, _aidl_flag, 3);
+ _aidl_parcel.writeFixedArray(multiDimensionLongArray, _aidl_flag, 3, 2);
_aidl_parcel.writeDouble(doubleValue);
_aidl_parcel.writeLong(enumValue);
_aidl_parcel.writeTypedObject(parcelableValue, _aidl_flag);
@@ -104,6 +108,10 @@ public class FixedSize implements android.os.Parcelable
if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
floatValue = _aidl_parcel.readFloat();
if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
+ intArray = _aidl_parcel.createFixedArray(int[].class, 3);
+ if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
+ multiDimensionLongArray = _aidl_parcel.createFixedArray(long[][].class, 3, 2);
+ if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
doubleValue = _aidl_parcel.readDouble();
if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
enumValue = _aidl_parcel.readLong();
@@ -138,8 +146,10 @@ public class FixedSize implements android.os.Parcelable
public final static int intValue = 3; // int intValue;
public final static int longValue = 4; // long longValue;
public final static int floatValue = 5; // float floatValue;
- public final static int doubleValue = 6; // double doubleValue;
- public final static int enumValue = 7; // android.aidl.tests.LongEnum enumValue;
+ public final static int intArray = 6; // int[3] intArray;
+ public final static int multiDimensionLongArray = 7; // long[3][2] multiDimensionLongArray;
+ public final static int doubleValue = 8; // double doubleValue;
+ public final static int enumValue = 9; // android.aidl.tests.LongEnum enumValue;
private int _tag;
private Object _value;
@@ -253,6 +263,36 @@ public class FixedSize implements android.os.Parcelable
_set(floatValue, _value);
}
+ // int[3] intArray;
+
+ public static FixedUnion intArray(int[] _value) {
+ return new FixedUnion(intArray, _value);
+ }
+
+ public int[] getIntArray() {
+ _assertTag(intArray);
+ return (int[]) _value;
+ }
+
+ public void setIntArray(int[] _value) {
+ _set(intArray, _value);
+ }
+
+ // long[3][2] multiDimensionLongArray;
+
+ public static FixedUnion multiDimensionLongArray(long[][] _value) {
+ return new FixedUnion(multiDimensionLongArray, _value);
+ }
+
+ public long[][] getMultiDimensionLongArray() {
+ _assertTag(multiDimensionLongArray);
+ return (long[][]) _value;
+ }
+
+ public void setMultiDimensionLongArray(long[][] _value) {
+ _set(multiDimensionLongArray, _value);
+ }
+
// double doubleValue;
public static FixedUnion doubleValue(double _value) {
@@ -316,6 +356,12 @@ public class FixedSize implements android.os.Parcelable
case floatValue:
_aidl_parcel.writeFloat(getFloatValue());
break;
+ case intArray:
+ _aidl_parcel.writeFixedArray(getIntArray(), _aidl_flag, 3);
+ break;
+ case multiDimensionLongArray:
+ _aidl_parcel.writeFixedArray(getMultiDimensionLongArray(), _aidl_flag, 3, 2);
+ break;
case doubleValue:
_aidl_parcel.writeDouble(getDoubleValue());
break;
@@ -359,6 +405,16 @@ public class FixedSize implements android.os.Parcelable
_aidl_value = _aidl_parcel.readFloat();
_set(_aidl_tag, _aidl_value);
return; }
+ case intArray: {
+ int[] _aidl_value;
+ _aidl_value = _aidl_parcel.createFixedArray(int[].class, 3);
+ _set(_aidl_tag, _aidl_value);
+ return; }
+ case multiDimensionLongArray: {
+ long[][] _aidl_value;
+ _aidl_value = _aidl_parcel.createFixedArray(long[][].class, 3, 2);
+ _set(_aidl_tag, _aidl_value);
+ return; }
case doubleValue: {
double _aidl_value;
_aidl_value = _aidl_parcel.readDouble();
@@ -395,6 +451,8 @@ public class FixedSize implements android.os.Parcelable
case intValue: return "intValue";
case longValue: return "longValue";
case floatValue: return "floatValue";
+ case intArray: return "intArray";
+ case multiDimensionLongArray: return "multiDimensionLongArray";
case doubleValue: return "doubleValue";
case enumValue: return "enumValue";
}
@@ -412,8 +470,10 @@ public class FixedSize implements android.os.Parcelable
public static final byte intValue = 3;
public static final byte longValue = 4;
public static final byte floatValue = 5;
- public static final byte doubleValue = 6;
- public static final byte enumValue = 7;
+ public static final byte intArray = 6;
+ public static final byte multiDimensionLongArray = 7;
+ public static final byte doubleValue = 8;
+ public static final byte enumValue = 9;
}
}
}
diff --git a/tests/golden_output/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp b/tests/golden_output/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp
index 1e58c5d4..36c9e685 100644
--- a/tests/golden_output/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp
+++ b/tests/golden_output/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp
@@ -102,6 +102,20 @@ binder_status_t FixedSize::FixedParcelable::readFromParcel(const AParcel* _aidl_
AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
+ _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &intArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
+ if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
+ AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
+ _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &multiDimensionLongArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
+ if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
+ AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
_aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &doubleValue);
if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
@@ -146,6 +160,12 @@ binder_status_t FixedSize::FixedParcelable::writeToParcel(AParcel* _aidl_parcel)
_aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, floatValue);
if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+ _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, intArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
+ _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, multiDimensionLongArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
_aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, doubleValue);
if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
@@ -237,6 +257,26 @@ binder_status_t FixedSize::FixedUnion::readFromParcel(const AParcel* _parcel) {
set<floatValue>(std::move(_aidl_value));
}
return STATUS_OK; }
+ case intArray: {
+ std::array<int32_t, 3> _aidl_value;
+ if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<int32_t, 3>>) {
+ set<intArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<intArray>(std::move(_aidl_value));
+ }
+ return STATUS_OK; }
+ case multiDimensionLongArray: {
+ std::array<std::array<int64_t, 2>, 3> _aidl_value;
+ if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<std::array<int64_t, 2>, 3>>) {
+ set<multiDimensionLongArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<multiDimensionLongArray>(std::move(_aidl_value));
+ }
+ return STATUS_OK; }
case doubleValue: {
double _aidl_value;
if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status;
@@ -270,6 +310,8 @@ binder_status_t FixedSize::FixedUnion::writeToParcel(AParcel* _parcel) const {
case intValue: return ::ndk::AParcel_writeData(_parcel, get<intValue>());
case longValue: return ::ndk::AParcel_writeData(_parcel, get<longValue>());
case floatValue: return ::ndk::AParcel_writeData(_parcel, get<floatValue>());
+ case intArray: return ::ndk::AParcel_writeData(_parcel, get<intArray>());
+ case multiDimensionLongArray: return ::ndk::AParcel_writeData(_parcel, get<multiDimensionLongArray>());
case doubleValue: return ::ndk::AParcel_writeData(_parcel, get<doubleValue>());
case enumValue: return ::ndk::AParcel_writeData(_parcel, get<enumValue>());
}
diff --git a/tests/golden_output/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h b/tests/golden_output/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h
index 08c230f8..059831b3 100644
--- a/tests/golden_output/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h
+++ b/tests/golden_output/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h
@@ -50,8 +50,10 @@ public:
intValue = 3,
longValue = 4,
floatValue = 5,
- doubleValue = 6,
- enumValue = 7,
+ intArray = 6,
+ multiDimensionLongArray = 7,
+ doubleValue = 8,
+ enumValue = 9,
};
// Expose tag symbols for legacy code
@@ -61,11 +63,13 @@ public:
static const inline Tag intValue = Tag::intValue;
static const inline Tag longValue = Tag::longValue;
static const inline Tag floatValue = Tag::floatValue;
+ static const inline Tag intArray = Tag::intArray;
+ static const inline Tag multiDimensionLongArray = Tag::multiDimensionLongArray;
static const inline Tag doubleValue = Tag::doubleValue;
static const inline Tag enumValue = Tag::enumValue;
template <Tag _Tag>
- using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, double, ::aidl::android::aidl::tests::LongEnum>>::type;
+ using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, std::array<int32_t, 3>, std::array<std::array<int64_t, 2>, 3>, double, ::aidl::android::aidl::tests::LongEnum>>::type;
template <Tag _Tag, typename _Type>
static FixedUnion make(_Type&& _arg) {
FixedUnion _inst;
@@ -139,6 +143,8 @@ public:
case intValue: os << "intValue: " << ::android::internal::ToString(get<intValue>()); break;
case longValue: os << "longValue: " << ::android::internal::ToString(get<longValue>()); break;
case floatValue: os << "floatValue: " << ::android::internal::ToString(get<floatValue>()); break;
+ case intArray: os << "intArray: " << ::android::internal::ToString(get<intArray>()); break;
+ case multiDimensionLongArray: os << "multiDimensionLongArray: " << ::android::internal::ToString(get<multiDimensionLongArray>()); break;
case doubleValue: os << "doubleValue: " << ::android::internal::ToString(get<doubleValue>()); break;
case enumValue: os << "enumValue: " << ::android::internal::ToString(get<enumValue>()); break;
}
@@ -156,6 +162,8 @@ public:
int32_t intValue __attribute__((aligned (4)));
int64_t longValue __attribute__((aligned (8)));
float floatValue __attribute__((aligned (4)));
+ std::array<int32_t, 3> intArray __attribute__((aligned (4)));
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray __attribute__((aligned (8)));
double doubleValue __attribute__((aligned (8)));
::aidl::android::aidl::tests::LongEnum enumValue __attribute__((aligned (8)));
} _value;
@@ -171,6 +179,8 @@ public:
int32_t intValue __attribute__((aligned (4))) = 0;
int64_t longValue __attribute__((aligned (8))) = 0L;
float floatValue __attribute__((aligned (4))) = 0.000000f;
+ std::array<int32_t, 3> intArray __attribute__((aligned (4))) = {{}};
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray __attribute__((aligned (8))) = {{}};
double doubleValue __attribute__((aligned (8))) = 0.000000;
::aidl::android::aidl::tests::LongEnum enumValue __attribute__((aligned (8))) = ::aidl::android::aidl::tests::LongEnum::FOO;
::aidl::android::aidl::tests::FixedSize::FixedUnion parcelableValue;
@@ -179,10 +189,10 @@ public:
binder_status_t writeToParcel(AParcel* parcel) const;
inline bool operator==(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator<(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator!=(const FixedParcelable& _rhs) const {
return !(*this == _rhs);
@@ -207,6 +217,8 @@ public:
_aidl_os << ", intValue: " << ::android::internal::ToString(intValue);
_aidl_os << ", longValue: " << ::android::internal::ToString(longValue);
_aidl_os << ", floatValue: " << ::android::internal::ToString(floatValue);
+ _aidl_os << ", intArray: " << ::android::internal::ToString(intArray);
+ _aidl_os << ", multiDimensionLongArray: " << ::android::internal::ToString(multiDimensionLongArray);
_aidl_os << ", doubleValue: " << ::android::internal::ToString(doubleValue);
_aidl_os << ", enumValue: " << ::android::internal::ToString(enumValue);
_aidl_os << ", parcelableValue: " << ::android::internal::ToString(parcelableValue);
@@ -267,6 +279,10 @@ namespace tests {
return "longValue";
case FixedSize::FixedUnion::Tag::floatValue:
return "floatValue";
+ case FixedSize::FixedUnion::Tag::intArray:
+ return "intArray";
+ case FixedSize::FixedUnion::Tag::multiDimensionLongArray:
+ return "multiDimensionLongArray";
case FixedSize::FixedUnion::Tag::doubleValue:
return "doubleValue";
case FixedSize::FixedUnion::Tag::enumValue:
@@ -284,13 +300,15 @@ namespace internal {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wc++17-extensions"
template <>
-constexpr inline std::array<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag, 8> enum_values<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
+constexpr inline std::array<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag, 10> enum_values<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::booleanValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::byteValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::charValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::intValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::longValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::floatValue,
+ aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::intArray,
+ aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::multiDimensionLongArray,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::doubleValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::enumValue,
};
diff --git a/tests/golden_output/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs b/tests/golden_output/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs
index 5fbba287..6036573c 100644
--- a/tests/golden_output/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs
+++ b/tests/golden_output/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs
@@ -39,6 +39,8 @@ pub mod r#FixedParcelable {
pub r#intValue: i32,
pub r#longValue: i64,
pub r#floatValue: f32,
+ pub r#intArray: [i32; 3],
+ pub r#multiDimensionLongArray: [[i64; 2]; 3],
pub r#doubleValue: f64,
pub r#enumValue: crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum,
pub r#parcelableValue: crate::mangled::_7_android_4_aidl_5_tests_9_FixedSize_10_FixedUnion,
@@ -52,6 +54,8 @@ pub mod r#FixedParcelable {
r#intValue: 0,
r#longValue: 0,
r#floatValue: 0.000000f32,
+ r#intArray: [Default::default(), Default::default(), Default::default()],
+ r#multiDimensionLongArray: [[Default::default(), Default::default()], [Default::default(), Default::default()], [Default::default(), Default::default()]],
r#doubleValue: 0.000000f64,
r#enumValue: crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum::FOO,
r#parcelableValue: Default::default(),
@@ -67,6 +71,8 @@ pub mod r#FixedParcelable {
subparcel.write(&self.r#intValue)?;
subparcel.write(&self.r#longValue)?;
subparcel.write(&self.r#floatValue)?;
+ subparcel.write(&self.r#intArray)?;
+ subparcel.write(&self.r#multiDimensionLongArray)?;
subparcel.write(&self.r#doubleValue)?;
subparcel.write(&self.r#enumValue)?;
subparcel.write(&self.r#parcelableValue)?;
@@ -94,6 +100,12 @@ pub mod r#FixedParcelable {
self.r#floatValue = subparcel.read()?;
}
if subparcel.has_more_data() {
+ self.r#intArray = subparcel.read()?;
+ }
+ if subparcel.has_more_data() {
+ self.r#multiDimensionLongArray = subparcel.read()?;
+ }
+ if subparcel.has_more_data() {
self.r#doubleValue = subparcel.read()?;
}
if subparcel.has_more_data() {
@@ -121,6 +133,8 @@ pub mod r#FixedUnion {
IntValue(i32),
LongValue(i64),
FloatValue(f32),
+ IntArray([i32; 3]),
+ MultiDimensionLongArray([[i64; 2]; 3]),
DoubleValue(f64),
EnumValue(crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum),
}
@@ -156,14 +170,22 @@ pub mod r#FixedUnion {
parcel.write(&5i32)?;
parcel.write(v)
}
- Self::DoubleValue(v) => {
+ Self::IntArray(v) => {
parcel.write(&6i32)?;
parcel.write(v)
}
- Self::EnumValue(v) => {
+ Self::MultiDimensionLongArray(v) => {
parcel.write(&7i32)?;
parcel.write(v)
}
+ Self::DoubleValue(v) => {
+ parcel.write(&8i32)?;
+ parcel.write(v)
+ }
+ Self::EnumValue(v) => {
+ parcel.write(&9i32)?;
+ parcel.write(v)
+ }
}
}
fn read_from_parcel(&mut self, parcel: &binder::binder_impl::BorrowedParcel) -> std::result::Result<(), binder::StatusCode> {
@@ -200,11 +222,21 @@ pub mod r#FixedUnion {
Ok(())
}
6 => {
+ let value: [i32; 3] = parcel.read()?;
+ *self = Self::IntArray(value);
+ Ok(())
+ }
+ 7 => {
+ let value: [[i64; 2]; 3] = parcel.read()?;
+ *self = Self::MultiDimensionLongArray(value);
+ Ok(())
+ }
+ 8 => {
let value: f64 = parcel.read()?;
*self = Self::DoubleValue(value);
Ok(())
}
- 7 => {
+ 9 => {
let value: crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum = parcel.read()?;
*self = Self::EnumValue(value);
Ok(())
@@ -224,15 +256,17 @@ pub mod r#FixedUnion {
#![allow(non_upper_case_globals)]
use binder::declare_binder_enum;
declare_binder_enum! {
- r#Tag : [i8; 8] {
+ r#Tag : [i8; 10] {
r#booleanValue = 0,
r#byteValue = 1,
r#charValue = 2,
r#intValue = 3,
r#longValue = 4,
r#floatValue = 5,
- r#doubleValue = 6,
- r#enumValue = 7,
+ r#intArray = 6,
+ r#multiDimensionLongArray = 7,
+ r#doubleValue = 8,
+ r#enumValue = 9,
}
}
}
diff --git a/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp b/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp
index b1a16ba9..dcce3622 100644
--- a/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp
+++ b/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/android/aidl/tests/FixedSize.cpp
@@ -102,6 +102,22 @@ namespace tests {
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
+ _aidl_ret_status = _aidl_parcel->readFixedArray(&intArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
+ if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
+ _aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
+ _aidl_ret_status = _aidl_parcel->readFixedArray(&multiDimensionLongArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
+ if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
+ _aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
_aidl_ret_status = _aidl_parcel->readDouble(&doubleValue);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
@@ -153,6 +169,14 @@ namespace tests {
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
+ _aidl_ret_status = _aidl_parcel->writeFixedArray(intArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
+ _aidl_ret_status = _aidl_parcel->writeFixedArray(multiDimensionLongArray);
+ if (((_aidl_ret_status) != (::android::OK))) {
+ return _aidl_ret_status;
+ }
_aidl_ret_status = _aidl_parcel->writeDouble(doubleValue);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
@@ -244,6 +268,26 @@ namespace tests {
set<floatValue>(std::move(_aidl_value));
}
return ::android::OK; }
+ case intArray: {
+ std::array<int32_t, 3> _aidl_value;
+ if ((_aidl_ret_status = _aidl_parcel->readFixedArray(&_aidl_value)) != ::android::OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<int32_t, 3>>) {
+ set<intArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<intArray>(std::move(_aidl_value));
+ }
+ return ::android::OK; }
+ case multiDimensionLongArray: {
+ std::array<std::array<int64_t, 2>, 3> _aidl_value;
+ if ((_aidl_ret_status = _aidl_parcel->readFixedArray(&_aidl_value)) != ::android::OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<std::array<int64_t, 2>, 3>>) {
+ set<multiDimensionLongArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<multiDimensionLongArray>(std::move(_aidl_value));
+ }
+ return ::android::OK; }
case doubleValue: {
double _aidl_value;
if ((_aidl_ret_status = _aidl_parcel->readDouble(&_aidl_value)) != ::android::OK) return _aidl_ret_status;
@@ -277,6 +321,8 @@ namespace tests {
case intValue: return _aidl_parcel->writeInt32(get<intValue>());
case longValue: return _aidl_parcel->writeInt64(get<longValue>());
case floatValue: return _aidl_parcel->writeFloat(get<floatValue>());
+ case intArray: return _aidl_parcel->writeFixedArray(get<intArray>());
+ case multiDimensionLongArray: return _aidl_parcel->writeFixedArray(get<multiDimensionLongArray>());
case doubleValue: return _aidl_parcel->writeDouble(get<doubleValue>());
case enumValue: return _aidl_parcel->writeInt64(static_cast<int64_t>(get<enumValue>()));
}
diff --git a/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h b/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h
index 6fd07890..61a4c986 100644
--- a/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h
+++ b/tests/golden_output/frozen/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/FixedSize.h
@@ -38,8 +38,10 @@ public:
intValue = 3,
longValue = 4,
floatValue = 5,
- doubleValue = 6,
- enumValue = 7,
+ intArray = 6,
+ multiDimensionLongArray = 7,
+ doubleValue = 8,
+ enumValue = 9,
};
// Expose tag symbols for legacy code
static const inline Tag booleanValue = Tag::booleanValue;
@@ -48,11 +50,13 @@ public:
static const inline Tag intValue = Tag::intValue;
static const inline Tag longValue = Tag::longValue;
static const inline Tag floatValue = Tag::floatValue;
+ static const inline Tag intArray = Tag::intArray;
+ static const inline Tag multiDimensionLongArray = Tag::multiDimensionLongArray;
static const inline Tag doubleValue = Tag::doubleValue;
static const inline Tag enumValue = Tag::enumValue;
template <Tag _Tag>
- using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, double, ::android::aidl::tests::LongEnum>>::type;
+ using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, std::array<int32_t, 3>, std::array<std::array<int64_t, 2>, 3>, double, ::android::aidl::tests::LongEnum>>::type;
template <Tag _Tag, typename _Type>
static FixedUnion make(_Type&& _arg) {
FixedUnion _inst;
@@ -128,6 +132,8 @@ public:
case intValue: os << "intValue: " << ::android::internal::ToString(get<intValue>()); break;
case longValue: os << "longValue: " << ::android::internal::ToString(get<longValue>()); break;
case floatValue: os << "floatValue: " << ::android::internal::ToString(get<floatValue>()); break;
+ case intArray: os << "intArray: " << ::android::internal::ToString(get<intArray>()); break;
+ case multiDimensionLongArray: os << "multiDimensionLongArray: " << ::android::internal::ToString(get<multiDimensionLongArray>()); break;
case doubleValue: os << "doubleValue: " << ::android::internal::ToString(get<doubleValue>()); break;
case enumValue: os << "enumValue: " << ::android::internal::ToString(get<enumValue>()); break;
}
@@ -145,6 +151,8 @@ public:
int32_t intValue __attribute__((aligned (4)));
int64_t longValue __attribute__((aligned (8)));
float floatValue __attribute__((aligned (4)));
+ std::array<int32_t, 3> intArray __attribute__((aligned (4)));
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray __attribute__((aligned (8)));
double doubleValue __attribute__((aligned (8)));
::android::aidl::tests::LongEnum enumValue __attribute__((aligned (8)));
} _value;
@@ -157,14 +165,16 @@ public:
int32_t intValue = 0;
int64_t longValue = 0L;
float floatValue = 0.000000f;
+ std::array<int32_t, 3> intArray = {{}};
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray = {{}};
double doubleValue = 0.000000;
::android::aidl::tests::LongEnum enumValue = ::android::aidl::tests::LongEnum::FOO;
::android::aidl::tests::FixedSize::FixedUnion parcelableValue;
inline bool operator==(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator<(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator!=(const FixedParcelable& _rhs) const {
return !(*this == _rhs);
@@ -194,6 +204,8 @@ public:
_aidl_os << ", intValue: " << ::android::internal::ToString(intValue);
_aidl_os << ", longValue: " << ::android::internal::ToString(longValue);
_aidl_os << ", floatValue: " << ::android::internal::ToString(floatValue);
+ _aidl_os << ", intArray: " << ::android::internal::ToString(intArray);
+ _aidl_os << ", multiDimensionLongArray: " << ::android::internal::ToString(multiDimensionLongArray);
_aidl_os << ", doubleValue: " << ::android::internal::ToString(doubleValue);
_aidl_os << ", enumValue: " << ::android::internal::ToString(enumValue);
_aidl_os << ", parcelableValue: " << ::android::internal::ToString(parcelableValue);
@@ -253,6 +265,10 @@ namespace tests {
return "longValue";
case FixedSize::FixedUnion::Tag::floatValue:
return "floatValue";
+ case FixedSize::FixedUnion::Tag::intArray:
+ return "intArray";
+ case FixedSize::FixedUnion::Tag::multiDimensionLongArray:
+ return "multiDimensionLongArray";
case FixedSize::FixedUnion::Tag::doubleValue:
return "doubleValue";
case FixedSize::FixedUnion::Tag::enumValue:
@@ -269,13 +285,15 @@ namespace internal {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wc++17-extensions"
template <>
-constexpr inline std::array<::android::aidl::tests::FixedSize::FixedUnion::Tag, 8> enum_values<::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
+constexpr inline std::array<::android::aidl::tests::FixedSize::FixedUnion::Tag, 10> enum_values<::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
::android::aidl::tests::FixedSize::FixedUnion::Tag::booleanValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::byteValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::charValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::intValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::longValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::floatValue,
+ ::android::aidl::tests::FixedSize::FixedUnion::Tag::intArray,
+ ::android::aidl::tests::FixedSize::FixedUnion::Tag::multiDimensionLongArray,
::android::aidl::tests::FixedSize::FixedUnion::Tag::doubleValue,
::android::aidl::tests::FixedSize::FixedUnion::Tag::enumValue,
};
diff --git a/tests/golden_output/frozen/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java b/tests/golden_output/frozen/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java
index 0e13b1ac..f1d7c015 100644
--- a/tests/golden_output/frozen/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java
+++ b/tests/golden_output/frozen/aidl-test-interface-java-source/gen/android/aidl/tests/FixedSize.java
@@ -52,6 +52,8 @@ public class FixedSize implements android.os.Parcelable
public int intValue = 0;
public long longValue = 0L;
public float floatValue = 0.000000f;
+ public int[] intArray;
+ public long[][] multiDimensionLongArray;
public double doubleValue = 0.000000;
public long enumValue = android.aidl.tests.LongEnum.FOO;
public android.aidl.tests.FixedSize.FixedUnion parcelableValue;
@@ -77,6 +79,8 @@ public class FixedSize implements android.os.Parcelable
_aidl_parcel.writeInt(intValue);
_aidl_parcel.writeLong(longValue);
_aidl_parcel.writeFloat(floatValue);
+ _aidl_parcel.writeFixedArray(intArray, _aidl_flag, 3);
+ _aidl_parcel.writeFixedArray(multiDimensionLongArray, _aidl_flag, 3, 2);
_aidl_parcel.writeDouble(doubleValue);
_aidl_parcel.writeLong(enumValue);
_aidl_parcel.writeTypedObject(parcelableValue, _aidl_flag);
@@ -104,6 +108,10 @@ public class FixedSize implements android.os.Parcelable
if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
floatValue = _aidl_parcel.readFloat();
if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
+ intArray = _aidl_parcel.createFixedArray(int[].class, 3);
+ if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
+ multiDimensionLongArray = _aidl_parcel.createFixedArray(long[][].class, 3, 2);
+ if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
doubleValue = _aidl_parcel.readDouble();
if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;
enumValue = _aidl_parcel.readLong();
@@ -138,8 +146,10 @@ public class FixedSize implements android.os.Parcelable
public final static int intValue = 3; // int intValue;
public final static int longValue = 4; // long longValue;
public final static int floatValue = 5; // float floatValue;
- public final static int doubleValue = 6; // double doubleValue;
- public final static int enumValue = 7; // android.aidl.tests.LongEnum enumValue;
+ public final static int intArray = 6; // int[3] intArray;
+ public final static int multiDimensionLongArray = 7; // long[3][2] multiDimensionLongArray;
+ public final static int doubleValue = 8; // double doubleValue;
+ public final static int enumValue = 9; // android.aidl.tests.LongEnum enumValue;
private int _tag;
private Object _value;
@@ -253,6 +263,36 @@ public class FixedSize implements android.os.Parcelable
_set(floatValue, _value);
}
+ // int[3] intArray;
+
+ public static FixedUnion intArray(int[] _value) {
+ return new FixedUnion(intArray, _value);
+ }
+
+ public int[] getIntArray() {
+ _assertTag(intArray);
+ return (int[]) _value;
+ }
+
+ public void setIntArray(int[] _value) {
+ _set(intArray, _value);
+ }
+
+ // long[3][2] multiDimensionLongArray;
+
+ public static FixedUnion multiDimensionLongArray(long[][] _value) {
+ return new FixedUnion(multiDimensionLongArray, _value);
+ }
+
+ public long[][] getMultiDimensionLongArray() {
+ _assertTag(multiDimensionLongArray);
+ return (long[][]) _value;
+ }
+
+ public void setMultiDimensionLongArray(long[][] _value) {
+ _set(multiDimensionLongArray, _value);
+ }
+
// double doubleValue;
public static FixedUnion doubleValue(double _value) {
@@ -316,6 +356,12 @@ public class FixedSize implements android.os.Parcelable
case floatValue:
_aidl_parcel.writeFloat(getFloatValue());
break;
+ case intArray:
+ _aidl_parcel.writeFixedArray(getIntArray(), _aidl_flag, 3);
+ break;
+ case multiDimensionLongArray:
+ _aidl_parcel.writeFixedArray(getMultiDimensionLongArray(), _aidl_flag, 3, 2);
+ break;
case doubleValue:
_aidl_parcel.writeDouble(getDoubleValue());
break;
@@ -359,6 +405,16 @@ public class FixedSize implements android.os.Parcelable
_aidl_value = _aidl_parcel.readFloat();
_set(_aidl_tag, _aidl_value);
return; }
+ case intArray: {
+ int[] _aidl_value;
+ _aidl_value = _aidl_parcel.createFixedArray(int[].class, 3);
+ _set(_aidl_tag, _aidl_value);
+ return; }
+ case multiDimensionLongArray: {
+ long[][] _aidl_value;
+ _aidl_value = _aidl_parcel.createFixedArray(long[][].class, 3, 2);
+ _set(_aidl_tag, _aidl_value);
+ return; }
case doubleValue: {
double _aidl_value;
_aidl_value = _aidl_parcel.readDouble();
@@ -395,6 +451,8 @@ public class FixedSize implements android.os.Parcelable
case intValue: return "intValue";
case longValue: return "longValue";
case floatValue: return "floatValue";
+ case intArray: return "intArray";
+ case multiDimensionLongArray: return "multiDimensionLongArray";
case doubleValue: return "doubleValue";
case enumValue: return "enumValue";
}
@@ -412,8 +470,10 @@ public class FixedSize implements android.os.Parcelable
public static final byte intValue = 3;
public static final byte longValue = 4;
public static final byte floatValue = 5;
- public static final byte doubleValue = 6;
- public static final byte enumValue = 7;
+ public static final byte intArray = 6;
+ public static final byte multiDimensionLongArray = 7;
+ public static final byte doubleValue = 8;
+ public static final byte enumValue = 9;
}
}
}
diff --git a/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp b/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp
index 1e58c5d4..36c9e685 100644
--- a/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp
+++ b/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/android/aidl/tests/FixedSize.cpp
@@ -102,6 +102,20 @@ binder_status_t FixedSize::FixedParcelable::readFromParcel(const AParcel* _aidl_
AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
+ _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &intArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
+ if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
+ AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
+ _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &multiDimensionLongArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
+ if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
+ AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
+ return _aidl_ret_status;
+ }
_aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &doubleValue);
if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
@@ -146,6 +160,12 @@ binder_status_t FixedSize::FixedParcelable::writeToParcel(AParcel* _aidl_parcel)
_aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, floatValue);
if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+ _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, intArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
+ _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, multiDimensionLongArray);
+ if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
+
_aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, doubleValue);
if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
@@ -237,6 +257,26 @@ binder_status_t FixedSize::FixedUnion::readFromParcel(const AParcel* _parcel) {
set<floatValue>(std::move(_aidl_value));
}
return STATUS_OK; }
+ case intArray: {
+ std::array<int32_t, 3> _aidl_value;
+ if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<int32_t, 3>>) {
+ set<intArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<intArray>(std::move(_aidl_value));
+ }
+ return STATUS_OK; }
+ case multiDimensionLongArray: {
+ std::array<std::array<int64_t, 2>, 3> _aidl_value;
+ if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status;
+ if constexpr (std::is_trivially_copyable_v<std::array<std::array<int64_t, 2>, 3>>) {
+ set<multiDimensionLongArray>(_aidl_value);
+ } else {
+ // NOLINTNEXTLINE(performance-move-const-arg)
+ set<multiDimensionLongArray>(std::move(_aidl_value));
+ }
+ return STATUS_OK; }
case doubleValue: {
double _aidl_value;
if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status;
@@ -270,6 +310,8 @@ binder_status_t FixedSize::FixedUnion::writeToParcel(AParcel* _parcel) const {
case intValue: return ::ndk::AParcel_writeData(_parcel, get<intValue>());
case longValue: return ::ndk::AParcel_writeData(_parcel, get<longValue>());
case floatValue: return ::ndk::AParcel_writeData(_parcel, get<floatValue>());
+ case intArray: return ::ndk::AParcel_writeData(_parcel, get<intArray>());
+ case multiDimensionLongArray: return ::ndk::AParcel_writeData(_parcel, get<multiDimensionLongArray>());
case doubleValue: return ::ndk::AParcel_writeData(_parcel, get<doubleValue>());
case enumValue: return ::ndk::AParcel_writeData(_parcel, get<enumValue>());
}
diff --git a/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h b/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h
index 08c230f8..059831b3 100644
--- a/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h
+++ b/tests/golden_output/frozen/aidl-test-interface-ndk-source/gen/include/aidl/android/aidl/tests/FixedSize.h
@@ -50,8 +50,10 @@ public:
intValue = 3,
longValue = 4,
floatValue = 5,
- doubleValue = 6,
- enumValue = 7,
+ intArray = 6,
+ multiDimensionLongArray = 7,
+ doubleValue = 8,
+ enumValue = 9,
};
// Expose tag symbols for legacy code
@@ -61,11 +63,13 @@ public:
static const inline Tag intValue = Tag::intValue;
static const inline Tag longValue = Tag::longValue;
static const inline Tag floatValue = Tag::floatValue;
+ static const inline Tag intArray = Tag::intArray;
+ static const inline Tag multiDimensionLongArray = Tag::multiDimensionLongArray;
static const inline Tag doubleValue = Tag::doubleValue;
static const inline Tag enumValue = Tag::enumValue;
template <Tag _Tag>
- using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, double, ::aidl::android::aidl::tests::LongEnum>>::type;
+ using _at = typename std::tuple_element<static_cast<size_t>(_Tag), std::tuple<bool, int8_t, char16_t, int32_t, int64_t, float, std::array<int32_t, 3>, std::array<std::array<int64_t, 2>, 3>, double, ::aidl::android::aidl::tests::LongEnum>>::type;
template <Tag _Tag, typename _Type>
static FixedUnion make(_Type&& _arg) {
FixedUnion _inst;
@@ -139,6 +143,8 @@ public:
case intValue: os << "intValue: " << ::android::internal::ToString(get<intValue>()); break;
case longValue: os << "longValue: " << ::android::internal::ToString(get<longValue>()); break;
case floatValue: os << "floatValue: " << ::android::internal::ToString(get<floatValue>()); break;
+ case intArray: os << "intArray: " << ::android::internal::ToString(get<intArray>()); break;
+ case multiDimensionLongArray: os << "multiDimensionLongArray: " << ::android::internal::ToString(get<multiDimensionLongArray>()); break;
case doubleValue: os << "doubleValue: " << ::android::internal::ToString(get<doubleValue>()); break;
case enumValue: os << "enumValue: " << ::android::internal::ToString(get<enumValue>()); break;
}
@@ -156,6 +162,8 @@ public:
int32_t intValue __attribute__((aligned (4)));
int64_t longValue __attribute__((aligned (8)));
float floatValue __attribute__((aligned (4)));
+ std::array<int32_t, 3> intArray __attribute__((aligned (4)));
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray __attribute__((aligned (8)));
double doubleValue __attribute__((aligned (8)));
::aidl::android::aidl::tests::LongEnum enumValue __attribute__((aligned (8)));
} _value;
@@ -171,6 +179,8 @@ public:
int32_t intValue __attribute__((aligned (4))) = 0;
int64_t longValue __attribute__((aligned (8))) = 0L;
float floatValue __attribute__((aligned (4))) = 0.000000f;
+ std::array<int32_t, 3> intArray __attribute__((aligned (4))) = {{}};
+ std::array<std::array<int64_t, 2>, 3> multiDimensionLongArray __attribute__((aligned (8))) = {{}};
double doubleValue __attribute__((aligned (8))) = 0.000000;
::aidl::android::aidl::tests::LongEnum enumValue __attribute__((aligned (8))) = ::aidl::android::aidl::tests::LongEnum::FOO;
::aidl::android::aidl::tests::FixedSize::FixedUnion parcelableValue;
@@ -179,10 +189,10 @@ public:
binder_status_t writeToParcel(AParcel* parcel) const;
inline bool operator==(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) == std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator<(const FixedParcelable& _rhs) const {
- return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
+ return std::tie(booleanValue, byteValue, charValue, intValue, longValue, floatValue, intArray, multiDimensionLongArray, doubleValue, enumValue, parcelableValue) < std::tie(_rhs.booleanValue, _rhs.byteValue, _rhs.charValue, _rhs.intValue, _rhs.longValue, _rhs.floatValue, _rhs.intArray, _rhs.multiDimensionLongArray, _rhs.doubleValue, _rhs.enumValue, _rhs.parcelableValue);
}
inline bool operator!=(const FixedParcelable& _rhs) const {
return !(*this == _rhs);
@@ -207,6 +217,8 @@ public:
_aidl_os << ", intValue: " << ::android::internal::ToString(intValue);
_aidl_os << ", longValue: " << ::android::internal::ToString(longValue);
_aidl_os << ", floatValue: " << ::android::internal::ToString(floatValue);
+ _aidl_os << ", intArray: " << ::android::internal::ToString(intArray);
+ _aidl_os << ", multiDimensionLongArray: " << ::android::internal::ToString(multiDimensionLongArray);
_aidl_os << ", doubleValue: " << ::android::internal::ToString(doubleValue);
_aidl_os << ", enumValue: " << ::android::internal::ToString(enumValue);
_aidl_os << ", parcelableValue: " << ::android::internal::ToString(parcelableValue);
@@ -267,6 +279,10 @@ namespace tests {
return "longValue";
case FixedSize::FixedUnion::Tag::floatValue:
return "floatValue";
+ case FixedSize::FixedUnion::Tag::intArray:
+ return "intArray";
+ case FixedSize::FixedUnion::Tag::multiDimensionLongArray:
+ return "multiDimensionLongArray";
case FixedSize::FixedUnion::Tag::doubleValue:
return "doubleValue";
case FixedSize::FixedUnion::Tag::enumValue:
@@ -284,13 +300,15 @@ namespace internal {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wc++17-extensions"
template <>
-constexpr inline std::array<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag, 8> enum_values<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
+constexpr inline std::array<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag, 10> enum_values<aidl::android::aidl::tests::FixedSize::FixedUnion::Tag> = {
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::booleanValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::byteValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::charValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::intValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::longValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::floatValue,
+ aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::intArray,
+ aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::multiDimensionLongArray,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::doubleValue,
aidl::android::aidl::tests::FixedSize::FixedUnion::Tag::enumValue,
};
diff --git a/tests/golden_output/frozen/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs b/tests/golden_output/frozen/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs
index 5fbba287..6036573c 100644
--- a/tests/golden_output/frozen/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs
+++ b/tests/golden_output/frozen/aidl-test-interface-rust-source/gen/android/aidl/tests/FixedSize.rs
@@ -39,6 +39,8 @@ pub mod r#FixedParcelable {
pub r#intValue: i32,
pub r#longValue: i64,
pub r#floatValue: f32,
+ pub r#intArray: [i32; 3],
+ pub r#multiDimensionLongArray: [[i64; 2]; 3],
pub r#doubleValue: f64,
pub r#enumValue: crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum,
pub r#parcelableValue: crate::mangled::_7_android_4_aidl_5_tests_9_FixedSize_10_FixedUnion,
@@ -52,6 +54,8 @@ pub mod r#FixedParcelable {
r#intValue: 0,
r#longValue: 0,
r#floatValue: 0.000000f32,
+ r#intArray: [Default::default(), Default::default(), Default::default()],
+ r#multiDimensionLongArray: [[Default::default(), Default::default()], [Default::default(), Default::default()], [Default::default(), Default::default()]],
r#doubleValue: 0.000000f64,
r#enumValue: crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum::FOO,
r#parcelableValue: Default::default(),
@@ -67,6 +71,8 @@ pub mod r#FixedParcelable {
subparcel.write(&self.r#intValue)?;
subparcel.write(&self.r#longValue)?;
subparcel.write(&self.r#floatValue)?;
+ subparcel.write(&self.r#intArray)?;
+ subparcel.write(&self.r#multiDimensionLongArray)?;
subparcel.write(&self.r#doubleValue)?;
subparcel.write(&self.r#enumValue)?;
subparcel.write(&self.r#parcelableValue)?;
@@ -94,6 +100,12 @@ pub mod r#FixedParcelable {
self.r#floatValue = subparcel.read()?;
}
if subparcel.has_more_data() {
+ self.r#intArray = subparcel.read()?;
+ }
+ if subparcel.has_more_data() {
+ self.r#multiDimensionLongArray = subparcel.read()?;
+ }
+ if subparcel.has_more_data() {
self.r#doubleValue = subparcel.read()?;
}
if subparcel.has_more_data() {
@@ -121,6 +133,8 @@ pub mod r#FixedUnion {
IntValue(i32),
LongValue(i64),
FloatValue(f32),
+ IntArray([i32; 3]),
+ MultiDimensionLongArray([[i64; 2]; 3]),
DoubleValue(f64),
EnumValue(crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum),
}
@@ -156,14 +170,22 @@ pub mod r#FixedUnion {
parcel.write(&5i32)?;
parcel.write(v)
}
- Self::DoubleValue(v) => {
+ Self::IntArray(v) => {
parcel.write(&6i32)?;
parcel.write(v)
}
- Self::EnumValue(v) => {
+ Self::MultiDimensionLongArray(v) => {
parcel.write(&7i32)?;
parcel.write(v)
}
+ Self::DoubleValue(v) => {
+ parcel.write(&8i32)?;
+ parcel.write(v)
+ }
+ Self::EnumValue(v) => {
+ parcel.write(&9i32)?;
+ parcel.write(v)
+ }
}
}
fn read_from_parcel(&mut self, parcel: &binder::binder_impl::BorrowedParcel) -> std::result::Result<(), binder::StatusCode> {
@@ -200,11 +222,21 @@ pub mod r#FixedUnion {
Ok(())
}
6 => {
+ let value: [i32; 3] = parcel.read()?;
+ *self = Self::IntArray(value);
+ Ok(())
+ }
+ 7 => {
+ let value: [[i64; 2]; 3] = parcel.read()?;
+ *self = Self::MultiDimensionLongArray(value);
+ Ok(())
+ }
+ 8 => {
let value: f64 = parcel.read()?;
*self = Self::DoubleValue(value);
Ok(())
}
- 7 => {
+ 9 => {
let value: crate::mangled::_7_android_4_aidl_5_tests_8_LongEnum = parcel.read()?;
*self = Self::EnumValue(value);
Ok(())
@@ -224,15 +256,17 @@ pub mod r#FixedUnion {
#![allow(non_upper_case_globals)]
use binder::declare_binder_enum;
declare_binder_enum! {
- r#Tag : [i8; 8] {
+ r#Tag : [i8; 10] {
r#booleanValue = 0,
r#byteValue = 1,
r#charValue = 2,
r#intValue = 3,
r#longValue = 4,
r#floatValue = 5,
- r#doubleValue = 6,
- r#enumValue = 7,
+ r#intArray = 6,
+ r#multiDimensionLongArray = 7,
+ r#doubleValue = 8,
+ r#enumValue = 9,
}
}
}