Documentation
¶
Overview ¶
iotestパッケージは、主にテストに役立つReaderとWriterを実装します。
Index ¶
- Variables
- func DataErrReader(r io.Reader) io.Reader
- func ErrReader(err error) io.Reader
- func HalfReader(r io.Reader) io.Reader
- func NewReadLogger(prefix string, r io.Reader) io.Reader
- func NewWriteLogger(prefix string, w io.Writer) io.Writer
- func OneByteReader(r io.Reader) io.Reader
- func TestReader(r io.Reader, content []byte) error
- func TimeoutReader(r io.Reader) io.Reader
- func TruncateWriter(w io.Writer, n int64) io.Writer
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ErrTimeout = errors.New("timeout")
ErrTimeoutは、偽のタイムアウトエラーです。
Functions ¶
func DataErrReader ¶
DataErrReaderは、Readerによってエラーが処理される方法を変更します。通常、 Readerは最後のデータが読み取られた後の最初のRead呼び出しからエラー(通常はEOF)を返します。 DataErrReaderはReaderをラップし、最終的なエラーが最終的なデータとともに返されるように、 その動作を変更します。最終データの後の最初の呼び出しではなく。
func ErrReader ¶ added in v1.16.0
ErrReaderは、全てのRead呼び出しから0, errを返すio.Readerを返します。
Example ¶
package main import ( "github.com/shogo82148/std/errors" "github.com/shogo82148/std/fmt" "github.com/shogo82148/std/testing/iotest" ) func main() { // 常にカスタムエラーを返すリーダー。 r := iotest.ErrReader(errors.New("custom error")) n, err := r.Read(nil) fmt.Printf("n: %d\nerr: %q\n", n, err) }
Output: n: 0 err: "custom error"
func HalfReader ¶
HalfReaderは、要求されたバイト数の半分をrから読み取ることでReadを実装するReaderを返します。
func NewReadLogger ¶
NewReadLoggerは、rと同様に動作するリーダーを返しますが、 読み取りごとに(log.Printfを使用して)標準エラーにログを出力し、 プレフィックスと読み取った16進数データを印刷します。
func NewWriteLogger ¶
NewWriteLoggerは、wのように振る舞うライターを返しますが、 書き込みごとに(log.Printfを使用して)標準エラーにログを出力し、 プレフィックスと書き込まれた16進数データを印刷します。
func OneByteReader ¶
OneByteReaderは、各非空のReadをrから1バイト読み取ることで実装するReaderを返します。
func TestReader ¶ added in v1.16.0
TestReaderは、rからの読み取りが期待されるファイル内容を返すことをテストします。 EOFまで、異なるサイズの読み取りを行います。 もしrがio.ReaderAtまたはio.Seekerを実装しているなら、TestReaderはまた、 それらの操作が適切に動作することも確認します。
TestReaderが何かしらの不適切な動作を見つけた場合、それら全てを報告するエラーを返します。 エラーテキストは複数行にわたります。
func TimeoutReader ¶
TimeoutReaderは、データなしの2回目の読み取りでErrTimeoutを返します。 その後の読み取りの呼び出しは成功します。
Types ¶
This section is empty.