MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / TestWriteBatchFlush_UnregistersFinalTransaction

Function TestWriteBatchFlush_UnregistersFinalTransaction

batch_test.go:231–259  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

229}
230
231func TestWriteBatchFlush_UnregistersFinalTransaction(t *testing.T) {
232 db, err := Open(
233 DefaultOptions,
234 WithDir(t.TempDir()),
235 )
236 require.NoError(t, err)
237 defer func() { require.NoError(t, db.Close()) }()
238
239 const bucket = "flush_bucket"
240 require.NoError(t, db.Update(func(tx *Tx) error {
241 return tx.NewBucket(DataStructureBTree, bucket)
242 }))
243
244 wb, err := db.NewWriteBatch()
245 require.NoError(t, err)
246 require.Equal(t, int64(1), db.transactionMgr.GetActiveTxCount())
247
248 require.NoError(t, wb.Put(bucket, []byte("key"), []byte("value"), 0))
249 require.NoError(t, wb.Flush())
250
251 require.Equal(t, int64(0), db.transactionMgr.GetActiveTxCount(), "Flush should unregister all transactions")
252
253 require.NoError(t, db.View(func(tx *Tx) error {
254 val, err := tx.Get(bucket, []byte("key"))
255 require.NoError(t, err)
256 require.Equal(t, []byte("value"), val)
257 return nil
258 }))
259}
260
261func TestWriteBatchReset_ReplacesTransaction(t *testing.T) {
262 db, err := Open(

Callers

nothing calls this directly

Calls 11

PutMethod · 0.95
FlushMethod · 0.95
OpenFunction · 0.85
WithDirFunction · 0.85
UpdateMethod · 0.80
NewBucketMethod · 0.80
NewWriteBatchMethod · 0.80
GetActiveTxCountMethod · 0.80
ViewMethod · 0.80
CloseMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected