github.com/oweisse/u-root@v0.0.0-20181109060735-d005ad25fef1/cmds/elvish/sys/waitforread_unix_test.go (about)

     1  // +build !windows,!plan9
     2  
     3  package sys
     4  
     5  import (
     6  	"io"
     7  	"os"
     8  	"testing"
     9  )
    10  
    11  func TestWaitForRead(t *testing.T) {
    12  	r0, w0, err := os.Pipe()
    13  	mustNil(err)
    14  	r1, w1, err := os.Pipe()
    15  	mustNil(err)
    16  	defer closeAll(r0, w0, r1, w1)
    17  
    18  	w0.WriteString("x")
    19  	ready, err := WaitForRead(r0, r1)
    20  	if err != nil {
    21  		t.Error("WaitForRead errors:", err)
    22  	}
    23  	if !ready[0] {
    24  		t.Error("Want ready[0]")
    25  	}
    26  	if ready[1] {
    27  		t.Error("Don't want ready[1]")
    28  	}
    29  }
    30  
    31  func closeAll(files ...io.Closer) {
    32  	for _, file := range files {
    33  		file.Close()
    34  	}
    35  }