package blob import "testing" func TestPutGetIsIdempotentAndVersioned(t *testing.T) { s, err := Open(t.TempDir()) if err != nil { t.Fatal(err) } if err := s.Put("db", 1, []byte("v1")); err != nil { t.Fatal(err) } if err := s.Put("db", 1, []byte("v1")); err != nil { t.Fatal(err) } if err := s.Put("db", 2, []byte("v2")); err != nil { t.Fatal(err) } got, err := s.Get("db", 1) if err != nil || string(got) != "v1" { t.Fatalf("get v1 = %q, %v", got, err) } if vs := s.Versions("db"); len(vs) != 2 || vs[0] != 1 || vs[1] != 2 { t.Fatalf("versions = %v", vs) } } func TestPruneKeepsNewest(t *testing.T) { s, _ := Open(t.TempDir()) for i := int64(1); i <= KeepVersions+5; i++ { if err := s.Put("db", i, []byte{byte(i)}); err != nil { t.Fatal(err) } } if err := s.Prune("db"); err != nil { t.Fatal(err) } vs := s.Versions("db") if len(vs) != KeepVersions || vs[0] != 6 { t.Fatalf("after prune = %v", vs) } }