// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package testpty is a simple pseudo-terminal package for Unix systems, // implemented by calling C functions via cgo. package testpty import ( "errors" "fmt" "os" ) type PtyError struct { FuncName string ErrorString string Errno error } func ptyError(name string, err error) *PtyError { return &PtyError{name, err.Error(), err} } func (e *PtyError) Error() string { return fmt.Sprintf("%s: %s", e.FuncName, e.ErrorString) } func (e *PtyError) Unwrap() error { return e.Errno } var ErrNotSupported = errors.New("testpty.Open not implemented on this platform") // Open returns a control pty and the name of the linked process tty. // // If Open is not implemented on this platform, it returns ErrNotSupported. func Open() (pty *os.File, processTTY string, err error) { return open() }