fstest

package
v1.21.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package fstest implements support for testing implementations and users of file systems.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TestFS

func TestFS(fsys fs.FS, expected ...string) error

TestFSは、ファイルシステムの実装をテストします。 fsys内の全てのファイルツリーを走査し、 各ファイルが正しく動作するかを開いて確認します。 また、ファイルシステムが少なくとも期待されるファイルを含んでいることも確認します。 特別なケースとして、期待されるファイルが一つもリストされていない場合、fsysは空でなければなりません。 それ以外の場合、fsysは少なくともリストされたファイルを含んでいなければなりません。他のファイルも含むことができます。 fsysの内容は、TestFSと同時に変更してはなりません。

TestFSが何かしらの不適切な動作を見つけた場合、それら全てを報告するエラーを返します。 エラーテキストは複数行にわたり、検出された不適切な動作ごとに1行ずつ存在します。

テスト内での典型的な使用法は以下の通りです:

if err := fstest.TestFS(myFS, "file/that/should/be/present"); err != nil {
	t.Fatal(err)
}

Types

type MapFS

type MapFS map[string]*MapFile

MapFSは、テストで使用するためのシンプルなメモリ内ファイルシステムであり、 パス名(Openへの引数)からそれらが表すファイルやディレクトリの情報へのマップとして表されます。

マップには、マップに含まれるファイルの親ディレクトリを含める必要はありません。 必要に応じてそれらは合成されます。 しかし、MapFile.ModeのModeDirビットを設定することで、ディレクトリをまだ含めることができます。 これは、ディレクトリのFileInfoに対する詳細な制御が必要であるか、 空のディレクトリを作成するために必要かもしれません。

ファイルシステムの操作は、マップから直接読み取るため、 必要に応じてマップを編集することでファイルシステムを変更できます。 その意味するところは、ファイルシステムの操作はマップの変更と同時に実行してはならず、 それはレース条件を引き起こす可能性があるということです。 別の意味するところは、ディレクトリのオープンや読み取りには、 マップ全体を反復処理する必要があるため、MapFSは通常、 数百エントリ以上またはディレクトリの読み取りを使用しないで使用する必要があります。

func (MapFS) Glob

func (fsys MapFS) Glob(pattern string) ([]string, error)

func (MapFS) Open

func (fsys MapFS) Open(name string) (fs.File, error)

Openは、指定された名前のファイルを開きます。

func (MapFS) ReadDir

func (fsys MapFS) ReadDir(name string) ([]fs.DirEntry, error)

func (MapFS) ReadFile

func (fsys MapFS) ReadFile(name string) ([]byte, error)

func (MapFS) Stat

func (fsys MapFS) Stat(name string) (fs.FileInfo, error)

func (MapFS) Sub

func (fsys MapFS) Sub(dir string) (fs.FS, error)

type MapFile

type MapFile struct {
	Data    []byte
	Mode    fs.FileMode
	ModTime time.Time
	Sys     any
}

MapFileは、MapFS内の単一のファイルを説明します。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL