Merge "[NS01] Add scoreless methods for non-score users"
diff --git a/common/device/com/android/net/module/util/Struct.java b/common/device/com/android/net/module/util/Struct.java
index 6d8d301..07a7e7a 100644
--- a/common/device/com/android/net/module/util/Struct.java
+++ b/common/device/com/android/net/module/util/Struct.java
@@ -602,4 +602,9 @@
writeToByteBufferInternal(buffer, fieldInfos);
return output;
}
+
+ /** Convert the parsed Struct subclass object to byte array with native order. */
+ public final byte[] writeToBytes() {
+ return writeToBytes(ByteOrder.nativeOrder());
+ }
}
diff --git a/common/tests/unit/src/com/android/net/module/util/StructTest.java b/common/tests/unit/src/com/android/net/module/util/StructTest.java
index 47b34b9..d5e27fb 100644
--- a/common/tests/unit/src/com/android/net/module/util/StructTest.java
+++ b/common/tests/unit/src/com/android/net/module/util/StructTest.java
@@ -697,4 +697,23 @@
assertThrows(IllegalArgumentException.class,
() -> Struct.parse(BadMacAddressType.class, toByteBuffer("ffffffffffff")));
}
+
+ @Test
+ public void testStructToByteArray() {
+ final SignedDataMessage littleEndianMsg = doParsingMessageTest(SIGNED_DATA,
+ SignedDataMessage.class, ByteOrder.LITTLE_ENDIAN);
+ assertArrayEquals(toByteBuffer(SIGNED_DATA).array(),
+ littleEndianMsg.writeToBytes(ByteOrder.LITTLE_ENDIAN));
+
+ final SignedDataMessage bigEndianMsg = doParsingMessageTest(SIGNED_DATA,
+ SignedDataMessage.class, ByteOrder.BIG_ENDIAN);
+ assertArrayEquals(toByteBuffer(SIGNED_DATA).array(),
+ bigEndianMsg.writeToBytes(ByteOrder.BIG_ENDIAN));
+
+ final SignedDataMessage nativeOrderMsg = ByteOrder.nativeOrder().equals(
+ ByteOrder.LITTLE_ENDIAN) ? littleEndianMsg : bigEndianMsg;
+ assertArrayEquals(toByteBuffer(SIGNED_DATA).array(),
+ nativeOrderMsg.writeToBytes());
+
+ }
}