(t *testing.T)
| 259 | } |
| 260 | |
| 261 | func TestWriteBatchReset_ReplacesTransaction(t *testing.T) { |
| 262 | db, err := Open( |
| 263 | DefaultOptions, |
| 264 | WithDir(t.TempDir()), |
| 265 | ) |
| 266 | require.NoError(t, err) |
| 267 | defer func() { require.NoError(t, db.Close()) }() |
| 268 | |
| 269 | wb, err := db.NewWriteBatch() |
| 270 | require.NoError(t, err) |
| 271 | require.Equal(t, int64(1), db.transactionMgr.GetActiveTxCount()) |
| 272 | |
| 273 | firstTxID := wb.txID |
| 274 | require.NoError(t, wb.Reset()) |
| 275 | |
| 276 | require.Equal(t, int64(1), db.transactionMgr.GetActiveTxCount(), "Reset should keep exactly one active transaction") |
| 277 | require.NotEqual(t, firstTxID, wb.txID, "Reset should allocate a fresh transaction ID") |
| 278 | activeIDs := db.transactionMgr.GetActiveTxs() |
| 279 | require.NotContains(t, activeIDs, firstTxID, "old transaction must be unregistered on Reset") |
| 280 | require.Contains(t, activeIDs, wb.txID, "new transaction must be registered") |
| 281 | |
| 282 | _ = wb.Flush() |
| 283 | } |
| 284 | |
| 285 | func TestWriteBatch_ConcurrentWithUpdate(t *testing.T) { |
| 286 | db, err := Open( |
nothing calls this directly
no test coverage detected