stream_writer_test.go
stream_writer_test.go - Overview
This file contains tests for the StreamWriter
functionality in BadgerDB. It validates the correct operation of StreamWriter
in various scenarios, including data insertion, deletion, updates, and interactions with different database modes (Normal, Managed, and InMemory). It also checks for edge cases like equal keys, large values, encryption, and incremental writes.
Detailed Documentation
getSortedKVList
- Purpose: Creates a sorted list of key-value pairs in a buffer.
- Parameters:
valueSize
(int): The size of the value byte array.listSize
(int): The number of key-value pairs to generate.
- Returns:
*z.Buffer
: A buffer containing the sorted key-value pairs.
TestStreamWriter1
- Purpose: Tests basic
StreamWriter
functionality by writing entries and verifying that they can be read back. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriter2
- Purpose: Tests
StreamWriter
by writing entries, deleting them, and verifying that they are no longer present. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriter3
- Purpose: Tests
StreamWriter
by inserting even keys usingStreamWriter
, odd keys usingTxn
, and verifies the sorted order. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriter4
- Purpose: Tests that
StreamWriter
reinitializes the Oracle and updates its nextTs. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriter5
- Purpose: Tests
StreamWriter
with specific key prefixes to ensure correct behavior across restarts. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriter6
- Purpose: Tests
StreamWriter
inserting duplicate keys, checking if they are being added to the same table. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriterCancel
- Purpose: Tests
StreamWriter
whenCancel()
is called instead ofFlush()
. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamDone
- Purpose: Tests the
StreamDone
functionality to ensure proper stream completion. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestSendOnClosedStream
- Purpose: Tests that sending data to a closed stream panics, as expected.
- Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestSendOnClosedStream2
- Purpose: Tests that sending data to a closed stream panics, as expected, when stream done is in between.
- Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriterEncrypted
- Purpose: Tests
StreamWriter
functionality with encryption enabled. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriterWithLargeValue
- Purpose: Tests
StreamWriter
with large values in managed mode to prevent crashes. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None
TestStreamWriterIncremental
- Purpose: Tests the incremental
StreamWriter
functionality. - Parameters:
t
(*testing.T): Testing object.
- Returns:
- None