(t *testing.T)
| 232 | } |
| 233 | |
| 234 | func TestGet(t *testing.T) { |
| 235 | test := func(t *testing.T, db *DB) { |
| 236 | txnSet(t, db, []byte("key1"), []byte("val1"), 0x08) |
| 237 | |
| 238 | txn := db.NewTransaction(false) |
| 239 | item, err := txn.Get([]byte("key1")) |
| 240 | require.NoError(t, err) |
| 241 | require.EqualValues(t, "val1", getItemValue(t, item)) |
| 242 | require.Equal(t, byte(0x08), item.UserMeta()) |
| 243 | txn.Discard() |
| 244 | |
| 245 | txnSet(t, db, []byte("key1"), []byte("val2"), 0x09) |
| 246 | |
| 247 | txn = db.NewTransaction(false) |
| 248 | item, err = txn.Get([]byte("key1")) |
| 249 | require.NoError(t, err) |
| 250 | require.EqualValues(t, "val2", getItemValue(t, item)) |
| 251 | require.Equal(t, byte(0x09), item.UserMeta()) |
| 252 | txn.Discard() |
| 253 | |
| 254 | txnDelete(t, db, []byte("key1")) |
| 255 | |
| 256 | txn = db.NewTransaction(false) |
| 257 | _, err = txn.Get([]byte("key1")) |
| 258 | require.Equal(t, ErrKeyNotFound, err) |
| 259 | txn.Discard() |
| 260 | |
| 261 | txnSet(t, db, []byte("key1"), []byte("val3"), 0x01) |
| 262 | |
| 263 | txn = db.NewTransaction(false) |
| 264 | item, err = txn.Get([]byte("key1")) |
| 265 | require.NoError(t, err) |
| 266 | require.EqualValues(t, "val3", getItemValue(t, item)) |
| 267 | require.Equal(t, byte(0x01), item.UserMeta()) |
| 268 | |
| 269 | longVal := make([]byte, 1000) |
| 270 | txnSet(t, db, []byte("key1"), longVal, 0x00) |
| 271 | |
| 272 | txn = db.NewTransaction(false) |
| 273 | item, err = txn.Get([]byte("key1")) |
| 274 | require.NoError(t, err) |
| 275 | require.EqualValues(t, longVal, getItemValue(t, item)) |
| 276 | txn.Discard() |
| 277 | } |
| 278 | t.Run("disk mode", func(t *testing.T) { |
| 279 | runBadgerTest(t, nil, func(t *testing.T, db *DB) { |
| 280 | test(t, db) |
| 281 | }) |
| 282 | }) |
| 283 | t.Run("InMemory mode", func(t *testing.T) { |
| 284 | opts := DefaultOptions("").WithInMemory(true) |
| 285 | db, err := Open(opts) |
| 286 | require.NoError(t, err) |
| 287 | test(t, db) |
| 288 | require.NoError(t, db.Close()) |
| 289 | }) |
| 290 | t.Run("cache disabled", func(t *testing.T) { |
| 291 | opts := DefaultOptions("").WithInMemory(true).WithMaxCacheSize(0) |
nothing calls this directly
no test coverage detected
searching dependent graphs…