github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/testing/iotest/reader.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // iotestパッケージは、主にテストに役立つReaderとWriterを実装します。
     6  package iotest
     7  
     8  import (
     9  	"github.com/shogo82148/std/errors"
    10  	"github.com/shogo82148/std/io"
    11  )
    12  
    13  // OneByteReaderは、各非空のReadをrから1バイト読み取ることで実装するReaderを返します。
    14  func OneByteReader(r io.Reader) io.Reader
    15  
    16  // HalfReaderは、要求されたバイト数の半分をrから読み取ることでReadを実装するReaderを返します。
    17  func HalfReader(r io.Reader) io.Reader
    18  
    19  // DataErrReaderは、Readerによってエラーが処理される方法を変更します。通常、
    20  // Readerは最後のデータが読み取られた後の最初のRead呼び出しからエラー(通常はEOF)を返します。
    21  // DataErrReaderはReaderをラップし、最終的なエラーが最終的なデータとともに返されるように、
    22  // その動作を変更します。最終データの後の最初の呼び出しではなく。
    23  func DataErrReader(r io.Reader) io.Reader
    24  
    25  // ErrTimeoutは、偽のタイムアウトエラーです。
    26  var ErrTimeout = errors.New("timeout")
    27  
    28  // TimeoutReaderは、データなしの2回目の読み取りで [ErrTimeout] を返します。
    29  // その後の読み取りの呼び出しは成功します。
    30  func TimeoutReader(r io.Reader) io.Reader
    31  
    32  // ErrReaderは、全てのRead呼び出しから0, errを返す [io.Reader] を返します。
    33  func ErrReader(err error) io.Reader
    34  
    35  // TestReaderは、rからの読み取りが期待されるファイル内容を返すことをテストします。
    36  // EOFまで、異なるサイズの読み取りを行います。
    37  // もしrが [io.ReaderAt] または [io.Seeker] を実装しているなら、TestReaderはまた、
    38  // それらの操作が適切に動作することも確認します。
    39  //
    40  // TestReaderが何かしらの不適切な動作を見つけた場合、それら全てを報告するエラーを返します。
    41  // エラーテキストは複数行にわたります。
    42  func TestReader(r io.Reader, content []byte) error