summaryrefslogtreecommitdiff
path: root/tests/misc/cat-tty-eof
blob: c8acdd54b447a08be8e16d4fad4fa8f4632edbf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh

: ${PERL=perl}

case "$PERL" in
  *'missing perl')
  echo 1>&2 "$0: configure didn't find a usable version of Perl, so can't run thi
s test"
  exit 77
  ;;
esac

exec $PERL -w -- - <<\EOF

# Ensure that cat exits upon a single EOF (^D) from a tty.
use strict;

(my $ME = $0) =~ s|.*/||;

eval { require Expect };
$@ and (warn "$ME: this script requires Perl's Expect package\n"), exit 77;

{
  my $exp = new Expect;
  # $exp->log_user(0);
  $exp->spawn('cat')
    or die "$ME: cannot run `cat': $!\n";

  $exp->send('');
  !defined $exp->exitstatus || $exp->exitstatus
    or die "$ME: cat didn't exit after ^D from standard input\n";
  $exp->hard_close();
  exit 0
}
EOF