mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-14 04:05:17 +00:00
78 lines
2.1 KiB
Go
78 lines
2.1 KiB
Go
|
// Copyright 2023 The LevelDB-Go and Pebble Authors. All rights reserved. Use
|
||
|
// of this source code is governed by a BSD-style license that can be found in
|
||
|
// the LICENSE file.
|
||
|
|
||
|
//go:build make_test_remotecat
|
||
|
// +build make_test_remotecat
|
||
|
|
||
|
// Run using: go run -tags make_test_remotecat ./tool/make_test_remotecat.go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"log"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
|
||
|
"github.com/cockroachdb/pebble/internal/base"
|
||
|
"github.com/cockroachdb/pebble/objstorage"
|
||
|
"github.com/cockroachdb/pebble/objstorage/objstorageprovider/remoteobjcat"
|
||
|
"github.com/cockroachdb/pebble/vfs"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
dir, err := os.MkdirTemp("", "make-test-remotecat")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
catalog, _, err := remoteobjcat.Open(vfs.Default, dir)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
if err := catalog.SetCreatorID(3); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
var b remoteobjcat.Batch
|
||
|
b.AddObject(remoteobjcat.RemoteObjectMetadata{
|
||
|
FileNum: base.FileNum(1).DiskFileNum(),
|
||
|
FileType: base.FileTypeTable,
|
||
|
CreatorID: 3,
|
||
|
CreatorFileNum: base.FileNum(1).DiskFileNum(),
|
||
|
CleanupMethod: objstorage.SharedRefTracking,
|
||
|
Locator: "foo",
|
||
|
})
|
||
|
if err := catalog.ApplyBatch(b); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
b.Reset()
|
||
|
b.AddObject(remoteobjcat.RemoteObjectMetadata{
|
||
|
FileNum: base.FileNum(2).DiskFileNum(),
|
||
|
FileType: base.FileTypeTable,
|
||
|
CreatorID: 5,
|
||
|
CreatorFileNum: base.FileNum(10).DiskFileNum(),
|
||
|
CleanupMethod: objstorage.SharedRefTracking,
|
||
|
Locator: "foo",
|
||
|
})
|
||
|
b.DeleteObject(base.FileNum(1).DiskFileNum())
|
||
|
b.AddObject(remoteobjcat.RemoteObjectMetadata{
|
||
|
FileNum: base.FileNum(3).DiskFileNum(),
|
||
|
FileType: base.FileTypeTable,
|
||
|
CleanupMethod: objstorage.SharedRefTracking,
|
||
|
Locator: "bar",
|
||
|
CustomObjectName: "external.sst",
|
||
|
})
|
||
|
if err := catalog.ApplyBatch(b); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
if err := catalog.Close(); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
contents, err := os.ReadFile(filepath.Join(dir, "REMOTE-OBJ-CATALOG-000001"))
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
if err := os.WriteFile("tool/testdata/REMOTE-OBJ-CATALOG", contents, 0666); err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
}
|