MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / TestWriteBatch_BasicOperations

Function TestWriteBatch_BasicOperations

driver/hybriddb/write_batch_test.go:11–65  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

9)
10
11func TestWriteBatch_BasicOperations(t *testing.T) {
12 tempDir := t.TempDir()
13 cfg := &config.Config{
14 LevelDB: config.LevelDBConfig{
15 CacheSize: 64 * 1024 * 1024,
16 BlockSize: 4 * 1024,
17 WriteBufferSize: 4 * 1024 * 1024,
18 MaxOpenFiles: 1000,
19 Compression: true,
20 },
21 }
22
23 db, err := Store{}.Open(tempDir, cfg)
24 require.NoError(t, err)
25 defer db.Close()
26
27 wb := db.NewWriteBatch()
28 defer wb.Close()
29
30 // Test Put
31 key1 := []byte("batch-key1")
32 value1 := []byte("batch-value1")
33 key2 := []byte("batch-key2")
34 value2 := []byte("batch-value2")
35
36 wb.Put(key1, value1)
37 wb.Put(key2, value2)
38
39 // Values should not be visible before commit
40 val, err := db.Get(key1)
41 require.NoError(t, err)
42 assert.Nil(t, val)
43
44 val, err = db.Get(key2)
45 require.NoError(t, err)
46 assert.Nil(t, val)
47
48 // Commit batch
49 err = wb.Commit()
50 require.NoError(t, err)
51
52 // Values should be visible after commit
53 val, err = db.Get(key1)
54 require.NoError(t, err)
55 assert.Equal(t, value1, val)
56
57 val, err = db.Get(key2)
58 require.NoError(t, err)
59 assert.Equal(t, value2, val)
60
61 // Cache should be invalidated
62 val, err = db.Get(key1)
63 require.NoError(t, err)
64 assert.Equal(t, value1, val)
65}
66
67func TestWriteBatch_MixedOperations(t *testing.T) {
68 tempDir := t.TempDir()

Callers

nothing calls this directly

Calls 8

CloseMethod · 0.95
PutMethod · 0.95
CommitMethod · 0.95
CloseMethod · 0.65
EqualMethod · 0.65
OpenMethod · 0.45
NewWriteBatchMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected