mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-10 10:15:18 +00:00
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
// Copyright 2021 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 vfs
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestFileWrappersHaveFd(t *testing.T) {
|
|
// Use the real filesystem so that we can test vfs.Default, which returns
|
|
// files with Fd().
|
|
tmpf, err := os.CreateTemp("", "pebble-db-fd-file")
|
|
require.NoError(t, err)
|
|
filename := tmpf.Name()
|
|
defer os.Remove(filename)
|
|
|
|
// File wrapper case 1: Check if diskHealthCheckingFile has Fd().
|
|
fs2, closer := WithDiskHealthChecks(Default, 10*time.Second,
|
|
func(info DiskSlowInfo) {})
|
|
defer closer.Close()
|
|
f2, err := fs2.Open(filename)
|
|
require.NoError(t, err)
|
|
require.NotZero(t, f2.Fd())
|
|
require.NotEqual(t, f2.Fd(), InvalidFd)
|
|
// File wrapper case 2: Check if syncingFile has Fd().
|
|
f3 := NewSyncingFile(f2, SyncingFileOptions{BytesPerSync: 8 << 10 /* 8 KB */})
|
|
require.NotZero(t, f3.Fd())
|
|
require.NotEqual(t, f3.Fd(), InvalidFd)
|
|
require.NoError(t, f2.Close())
|
|
}
|