| 418 | } |
| 419 | |
| 420 | func readDBVersion(db *bolt.DB, schema []byte) (int, error) { |
| 421 | var version int |
| 422 | if err := db.View(func(tx *bolt.Tx) error { |
| 423 | bkt := tx.Bucket(schema) |
| 424 | if bkt == nil { |
| 425 | return fmt.Errorf("no version bucket: %w", errdefs.ErrNotFound) |
| 426 | } |
| 427 | vb := bkt.Get(bucketKeyDBVersion) |
| 428 | if vb == nil { |
| 429 | return fmt.Errorf("no version value: %w", errdefs.ErrNotFound) |
| 430 | } |
| 431 | v, _ := binary.Varint(vb) |
| 432 | version = int(v) |
| 433 | return nil |
| 434 | }); err != nil { |
| 435 | return 0, err |
| 436 | } |
| 437 | return version, nil |
| 438 | } |
| 439 | |
| 440 | func TestMetadataCollector(t *testing.T) { |
| 441 | mdb, cs, sn, cleanup := newStores(t) |