added DeadlineHolder

This commit is contained in:
photostorm
2023-10-28 18:11:18 -04:00
parent 7f5c495d24
commit e9c1f000f4
2 changed files with 12 additions and 6 deletions

4
doc.go
View File

@@ -19,6 +19,10 @@ func Open() (Pty, Tty, error) {
// FdHolder surfaces the Fd() method of the underlying handle.
type FdHolder interface {
Fd() uintptr
}
// DeadlineHolder surfaces the SetDeadline() method to sets the read and write deadlines.
type DeadlineHolder interface {
SetDeadline(t time.Time) error
}

View File

@@ -27,12 +27,14 @@ var mu sync.Mutex
func TestReadDeadline(t *testing.T) {
ptmx, success := prepare(t)
err := ptmx.SetDeadline(time.Now().Add(timeout / 10))
if err != nil {
if errors.Is(err, os.ErrNoDeadline) {
t.Skipf("deadline is not supported on %s/%s", runtime.GOOS, runtime.GOARCH)
} else {
t.Fatalf("error: set deadline: %v\n", err)
if ptmxd, ok := ptmx.(DeadlineHolder); ok {
err := ptmxd.SetDeadline(time.Now().Add(timeout / 10))
if err != nil {
if errors.Is(err, os.ErrNoDeadline) {
t.Skipf("deadline is not supported on %s/%s", runtime.GOOS, runtime.GOARCH)
} else {
t.Fatalf("error: set deadline: %v\n", err)
}
}
}