github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/tool/make_incorrect_manifests.go (about) 1 // Copyright 2019 The LevelDB-Go and Pebble Authors. All rights reserved. Use 2 // of this source code is governed by a BSD-style license that can be found in 3 // the LICENSE file. 4 5 //go:build make_incorrect_manifests 6 // +build make_incorrect_manifests 7 8 // Run using: go run -tags make_incorrect_manifests ./tool/make_incorrect_manifests.go 9 package main 10 11 import ( 12 "log" 13 14 "github.com/cockroachdb/pebble/internal/manifest" 15 "github.com/cockroachdb/pebble/record" 16 "github.com/cockroachdb/pebble/vfs" 17 ) 18 19 func writeVE(writer *record.Writer, ve *manifest.VersionEdit) { 20 w, err := writer.Next() 21 if err != nil { 22 log.Fatal(err) 23 } 24 err = ve.Encode(w) 25 if err != nil { 26 log.Fatal(err) 27 } 28 } 29 30 func makeManifest1() { 31 fs := vfs.Default 32 f, err := fs.Create("tool/testdata/MANIFEST-invalid") 33 if err != nil { 34 log.Fatal(err) 35 } 36 writer := record.NewWriter(f) 37 var ve manifest.VersionEdit 38 ve.ComparerName = "leveldb.BytewiseComparator" 39 ve.MinUnflushedLogNum = 2 40 ve.NextFileNum = 5 41 ve.LastSeqNum = 20 42 ve.NewFiles = []manifest.NewFileEntry{ 43 {Level: 6, Meta: &manifest.FileMetadata{ 44 FileNum: 1, SmallestSeqNum: 2, LargestSeqNum: 5}}} 45 writeVE(writer, &ve) 46 47 ve.MinUnflushedLogNum = 3 48 ve.NewFiles = []manifest.NewFileEntry{ 49 {Level: 6, Meta: &manifest.FileMetadata{ 50 FileNum: 2, SmallestSeqNum: 1, LargestSeqNum: 4}}} 51 writeVE(writer, &ve) 52 53 err = writer.Close() 54 if err != nil { 55 log.Fatal(err) 56 } 57 } 58 59 func main() { 60 makeManifest1() 61 }