file_unix_test.go 696 B

123456789101112131415161718192021222324252627282930313233343536
  1. //go:build !windows && !plan9 && !js
  2. package file
  3. import (
  4. "os"
  5. "testing"
  6. "src.elv.sh/pkg/eval"
  7. "src.elv.sh/pkg/eval/evaltest"
  8. )
  9. func TestIsTTY(t *testing.T) {
  10. setup := func(ev *eval.Evaler) {
  11. ev.ExtendGlobal(eval.BuildNs().AddNs("file", Ns))
  12. }
  13. if canOpen("/dev/null") {
  14. evaltest.TestWithSetup(t, setup,
  15. That("file:is-tty 0 < /dev/null").Puts(false),
  16. That("file:is-tty (num 0) < /dev/null").Puts(false),
  17. )
  18. }
  19. if canOpen("/dev/tty") {
  20. evaltest.TestWithSetup(t, setup,
  21. That("file:is-tty 0 < /dev/tty").Puts(true),
  22. That("file:is-tty (num 0) < /dev/tty").Puts(true),
  23. )
  24. }
  25. }
  26. func canOpen(name string) bool {
  27. f, err := os.Open(name)
  28. f.Close()
  29. return err == nil
  30. }