(t *testing.T)
| 279 | } |
| 280 | |
| 281 | func TestDB_Delete(t *testing.T) { |
| 282 | opts := config.DefaultOptions |
| 283 | dir, _ := os.MkdirTemp("", "flydb-delete") |
| 284 | opts.DirPath = dir |
| 285 | opts.DataFileSize = 64 * 1024 * 1024 |
| 286 | db, err := NewDB(opts) |
| 287 | defer destroyDB(db) |
| 288 | assert.Nil(t, err) |
| 289 | assert.NotNil(t, db) |
| 290 | |
| 291 | // Delete an existing key |
| 292 | err = db.Put(randkv.GetTestKey(11), randkv.RandomValue(128)) |
| 293 | assert.Nil(t, err) |
| 294 | err = db.Delete(randkv.GetTestKey(11)) |
| 295 | assert.Nil(t, err) |
| 296 | _, err = db.Get(randkv.GetTestKey(11)) |
| 297 | assert.Equal(t, _const.ErrKeyNotFound, err) |
| 298 | |
| 299 | // Delete a key that does not exist |
| 300 | err = db.Delete([]byte("unknown key")) |
| 301 | assert.Nil(t, err) |
| 302 | |
| 303 | // Delete an empty key |
| 304 | err = db.Delete(nil) |
| 305 | assert.Equal(t, _const.ErrKeyIsEmpty, err) |
| 306 | |
| 307 | // The value is deleted and Put again |
| 308 | err = db.Put(randkv.GetTestKey(22), randkv.RandomValue(128)) |
| 309 | assert.Nil(t, err) |
| 310 | err = db.Delete(randkv.GetTestKey(22)) |
| 311 | assert.Nil(t, err) |
| 312 | |
| 313 | err = db.Put(randkv.GetTestKey(22), randkv.RandomValue(128)) |
| 314 | assert.Nil(t, err) |
| 315 | val1, err := db.Get(randkv.GetTestKey(22)) |
| 316 | assert.NotNil(t, val1) |
| 317 | assert.Nil(t, err) |
| 318 | |
| 319 | // After the restart, perform the verification again |
| 320 | err = db.Close() |
| 321 | assert.Nil(t, err) |
| 322 | |
| 323 | // Restart the database |
| 324 | db2, err := NewDB(opts) |
| 325 | _, err = db2.Get(randkv.GetTestKey(11)) |
| 326 | assert.Equal(t, _const.ErrKeyNotFound, err) |
| 327 | |
| 328 | val2, err := db2.Get(randkv.GetTestKey(22)) |
| 329 | assert.Nil(t, err) |
| 330 | assert.Equal(t, val1, val2) |
| 331 | } |
| 332 | |
| 333 | func TestDB_GetListKeys(t *testing.T) { |
| 334 | opts := config.DefaultOptions |
nothing calls this directly
no test coverage detected