Skip to content

Commit 28f8586

Browse files
committed
Improve tests
- got rid of duplicate checks - started verifying segment's content for bulk reads
1 parent edd4461 commit 28f8586

File tree

4 files changed

+52
-11
lines changed

4 files changed

+52
-11
lines changed

core/common/test/unsafe/UnsafeBufferOperationsReadTest.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ class UnsafeBufferOperationsReadTest {
2525
val head = buffer.head!!
2626
UnsafeBufferOperations.readFromHead(buffer) { data, startIndex, endIndex ->
2727
assertTrue(endIndex <= data.size)
28-
assertEquals(head.size, endIndex - startIndex)
2928
assertEquals(0, startIndex)
3029
assertEquals(head.size, endIndex)
3130
0
@@ -75,17 +74,21 @@ class UnsafeBufferOperationsReadTest {
7574

7675
@Test
7776
fun readFromTheSegmentEnd() {
78-
val buffer = Buffer().apply { write(ByteArray(9000) { 0xff.toByte() }) }
79-
buffer.skip(8190)
77+
val segmentSize = UnsafeBufferOperations.maxSafeWriteCapacity
78+
val extraBytesCount = 128
79+
val bytesToSkip = segmentSize - 2
80+
81+
val buffer = Buffer().apply { write(ByteArray(segmentSize + extraBytesCount) { 0xff.toByte() }) }
82+
buffer.skip(bytesToSkip.toLong())
8083
val head = buffer.head!!
81-
assertEquals(8190, head.pos)
84+
assertEquals(bytesToSkip, head.pos)
8285

8386
UnsafeBufferOperations.readFromHead(buffer) { _, startIndex, endIndex ->
8487
assertEquals(2, endIndex - startIndex)
8588
2
8689
}
8790

88-
assertEquals(9000 - 8192, buffer.size.toInt())
91+
assertEquals(extraBytesCount, buffer.size.toInt())
8992
}
9093

9194

core/common/test/unsafe/UnsafeBufferOperationsWriteTest.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class UnsafeBufferOperationsWriteTest {
1919
UnsafeBufferOperations.writeToTail(buffer, 1) { data, startIndex, endIndex ->
2020
// Unsafe check, head is not committed yet
2121
assertSame(buffer.head!!.data, data)
22-
assertEquals(buffer.head!!.data.size, (endIndex - startIndex))
22+
2323
assertEquals(0, startIndex)
2424
assertEquals(buffer.head!!.data.size, endIndex)
2525
0
@@ -128,4 +128,16 @@ class UnsafeBufferOperationsWriteTest {
128128

129129
assertTrue(buffer.exhausted())
130130
}
131+
132+
@Test
133+
fun returnLessBytesThanItWasActuallyWritten() {
134+
val buffer = Buffer()
135+
136+
UnsafeBufferOperations.writeToTail(buffer, 42) { data, pos, limit ->
137+
data.fill(0xab.toByte(), pos, limit)
138+
4
139+
}
140+
assertEquals(4, buffer.size)
141+
assertEquals(0xababababu, buffer.readUInt())
142+
}
131143
}

core/jvm/test/unsafe/UnsafeBufferOperationsJvmReadBulkTest.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,20 @@ class UnsafeBufferOperationsJvmReadBulkTest {
9090
assertEquals(4, iovecLen)
9191

9292
assertEquals(Segment.SIZE, array[0]!!.remaining())
93+
val tmpBuffer = ByteArray(Segment.SIZE)
94+
array[0]!!.get(tmpBuffer)
95+
assertContentEquals(ByteArray(Segment.SIZE) { 1 }, tmpBuffer)
96+
9397
assertEquals(Segment.SIZE, array[1]!!.remaining())
98+
array[1]!!.get(tmpBuffer)
99+
assertContentEquals(ByteArray(Segment.SIZE) { 2 }, tmpBuffer)
100+
94101
assertEquals(Segment.SIZE, array[2]!!.remaining())
102+
array[2]!!.get(tmpBuffer)
103+
assertContentEquals(ByteArray(Segment.SIZE) { 3 }, tmpBuffer)
104+
95105
assertEquals(1, array[3]!!.remaining())
106+
assertEquals(3, array[3]!!.get())
96107

97108
buffer.size
98109
}
@@ -112,9 +123,20 @@ class UnsafeBufferOperationsJvmReadBulkTest {
112123
assertEquals(4, iovecLen)
113124

114125
assertEquals(Segment.SIZE, array[0]!!.remaining())
126+
val tmpBuffer = ByteArray(Segment.SIZE)
127+
array[0]!!.get(tmpBuffer)
128+
assertContentEquals(ByteArray(Segment.SIZE) { 1 }, tmpBuffer)
129+
115130
assertEquals(Segment.SIZE, array[1]!!.remaining())
131+
array[1]!!.get(tmpBuffer)
132+
assertContentEquals(ByteArray(Segment.SIZE) { 2 }, tmpBuffer)
133+
116134
assertEquals(Segment.SIZE, array[2]!!.remaining())
135+
array[2]!!.get(tmpBuffer)
136+
assertContentEquals(ByteArray(Segment.SIZE) { 3 }, tmpBuffer)
137+
117138
assertEquals(1, array[3]!!.remaining())
139+
assertEquals(3, array[3]!!.get())
118140

119141
0
120142
}

core/jvm/test/unsafe/UnsafeBufferOperationsJvmReadFromHeadTest.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,21 @@ class UnsafeBufferOperationsJvmReadFromHeadTest {
8484

8585
@Test
8686
fun readFromTheSegmentEnd() {
87-
val buffer = Buffer().apply { write(ByteArray(9000) { 0xff.toByte() }) }
88-
buffer.skip(8190)
87+
val segmentSize = UnsafeBufferOperations.maxSafeWriteCapacity
88+
val extraBytesCount = 128
89+
val bytesToSkip = segmentSize - 2
90+
91+
val buffer = Buffer().apply { write(ByteArray(segmentSize + extraBytesCount) { 0xff.toByte() }) }
92+
buffer.skip(bytesToSkip.toLong())
8993
val head = buffer.head!!
90-
assertEquals(8190, head.pos)
94+
assertEquals(bytesToSkip, head.pos)
9195

9296
UnsafeBufferOperations.readFromHead(buffer) { bb ->
93-
assertEquals(2, bb.remaining())
97+
assertEquals(segmentSize - bytesToSkip, bb.remaining())
9498
bb.getShort()
9599
}
96100

97-
assertEquals(9000 - 8192, buffer.size.toInt())
101+
assertEquals(extraBytesCount, buffer.size.toInt())
98102
}
99103

100104
@Test

0 commit comments

Comments
 (0)