// 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. // Package vfstest provides facilities for interacting with or faking // filesystems during tests and benchmarks. package vfstest import ( "os" "github.com/cockroachdb/pebble/vfs" ) // DiscardFile implements vfs.File but discards all written data and reads // without mutating input buffers. var DiscardFile vfs.File = (*discardFile)(nil) type discardFile struct{} func (*discardFile) Close() error { return nil } func (*discardFile) Read(p []byte) (int, error) { return len(p), nil } func (*discardFile) ReadAt(p []byte, off int64) (int, error) { return len(p), nil } func (*discardFile) Write(p []byte) (int, error) { return len(p), nil } func (*discardFile) WriteAt(p []byte, ofs int64) (int, error) { return len(p), nil } func (*discardFile) Preallocate(offset, length int64) error { return nil } func (*discardFile) Stat() (os.FileInfo, error) { return nil, nil } func (*discardFile) Sync() error { return nil } func (*discardFile) SyncTo(length int64) (fullSync bool, err error) { return false, nil } func (*discardFile) SyncData() error { return nil } func (*discardFile) Prefetch(offset int64, length int64) error { return nil } func (*discardFile) Fd() uintptr { return 0 }