This is an automated email from the ASF dual-hosted git repository.
toulmean pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/master by this push:
new d0a221c Fix issue 168: Bytes32.wrap with offset is incorrect
new 28bcd1d Merge pull request #179 from atoulme/fix_168
d0a221c is described below
commit d0a221c753c5a99154d9bdcf413fa4d4f83a02dd
Author: Antoine Toulme <[email protected]>
AuthorDate: Thu Dec 3 00:47:32 2020 -0800
Fix issue 168: Bytes32.wrap with offset is incorrect
---
.../main/java/org/apache/tuweni/bytes/Bytes32.java | 2 +-
.../java/org/apache/tuweni/bytes/Bytes32Test.java | 52 ++++++++++++++++++++++
2 files changed, 53 insertions(+), 1 deletion(-)
diff --git a/bytes/src/main/java/org/apache/tuweni/bytes/Bytes32.java
b/bytes/src/main/java/org/apache/tuweni/bytes/Bytes32.java
index c64de00..688a702 100644
--- a/bytes/src/main/java/org/apache/tuweni/bytes/Bytes32.java
+++ b/bytes/src/main/java/org/apache/tuweni/bytes/Bytes32.java
@@ -108,7 +108,7 @@ public interface Bytes32 extends Bytes {
if (slice instanceof Bytes32) {
return (Bytes32) slice;
}
- return new DelegatingBytes32(value);
+ return new DelegatingBytes32(slice);
}
/**
diff --git a/bytes/src/test/java/org/apache/tuweni/bytes/Bytes32Test.java
b/bytes/src/test/java/org/apache/tuweni/bytes/Bytes32Test.java
index 5407f92..95404c3 100644
--- a/bytes/src/test/java/org/apache/tuweni/bytes/Bytes32Test.java
+++ b/bytes/src/test/java/org/apache/tuweni/bytes/Bytes32Test.java
@@ -20,6 +20,58 @@ import org.junit.jupiter.api.Test;
class Bytes32Test {
@Test
+ void testMutableBytes32WrapWithOffset() {
+ Bytes bytes = Bytes
+ .fromHexString(
+
"0x00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff");
+ MutableBytes mutableBytes = MutableBytes.create(48);
+ bytes.copyTo(mutableBytes);
+ assertEquals(
+ "0x112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00",
+ Bytes32.wrap(mutableBytes, 1).toHexString());
+ }
+
+ @Test
+ void testMutableBytes32SliceWithOffset() {
+ Bytes bytes = Bytes
+ .fromHexString(
+
"0x00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff");
+ MutableBytes mutableBytes = MutableBytes.create(48);
+ bytes.copyTo(mutableBytes);
+ assertEquals("0x11", mutableBytes.slice(1, 1).toHexString());
+ assertEquals("0x1122", mutableBytes.slice(1, 2).toHexString());
+ assertEquals("0x112233445566778899aa", mutableBytes.slice(1,
10).toHexString());
+ assertEquals("0x112233445566778899aabbccddeeff", mutableBytes.slice(1,
15).toHexString());
+ assertEquals(
+ "0x112233445566778899aabbccddeeff00112233445566778899aabbccddee",
+ mutableBytes.slice(1, 30).toHexString());
+ assertEquals(
+ "0x112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00",
+ mutableBytes.slice(1, 32).toHexString());
+ assertEquals(
+
"0x112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddee",
+ mutableBytes.slice(1, 46).toHexString());
+ }
+
+ @Test
+ void testBytes32SliceWithOffset() {
+ Bytes bytes = Bytes
+ .fromHexString(
+
"0x00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff");
+ assertEquals("0x11", bytes.slice(1, 1).toHexString());
+ assertEquals("0x1122", bytes.slice(1, 2).toHexString());
+ assertEquals("0x112233445566778899aa", bytes.slice(1, 10).toHexString());
+ assertEquals("0x112233445566778899aabbccddeeff", bytes.slice(1,
15).toHexString());
+
assertEquals("0x112233445566778899aabbccddeeff00112233445566778899aabbccddee",
bytes.slice(1, 30).toHexString());
+ assertEquals(
+ "0x112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00",
+ bytes.slice(1, 32).toHexString());
+ assertEquals(
+
"0x112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddee",
+ bytes.slice(1, 46).toHexString());
+ }
+
+ @Test
void failsWhenWrappingArraySmallerThan32() {
Throwable exception = assertThrows(IllegalArgumentException.class, () ->
Bytes32.wrap(new byte[31]));
assertEquals("Expected 32 bytes but got 31", exception.getMessage());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]