This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Refactor ext/POSIX/t/termios.t
[perl5.git] / ext / POSIX / t / termios.t
1 #!perl -Tw
2
3 use strict;
4 use Config;
5 use Test::More;
6
7 BEGIN {
8     plan skip_all => "POSIX is unavailable"
9         if $Config{extensions} !~ m!\bPOSIX\b!;
10 }
11
12 use POSIX ':termios_h';
13
14 plan skip_all => $@
15     if !eval "POSIX::Termios->new; 1" && $@ =~ /termios not implemented/;
16
17
18 # create a new object
19 my $termios = eval { POSIX::Termios->new };
20 is( $@, '', "calling POSIX::Termios->new" );
21 isa_ok( $termios, "POSIX::Termios", "\tchecking the type of the object" );
22
23 # testing getattr()
24 foreach my $name (qw(STDIN STDOUT STDERR)) {
25     my $handle = $::{$name};
26  SKIP: {
27         skip("$name not a tty", 2) unless -t $handle;
28         my $fileno = fileno $handle;
29         my $r = eval { $termios->getattr($fileno) };
30         is($@, '', "calling getattr($fileno) for $name");
31         isnt($r, undef, "returned value ($r) is defined");
32     }
33 }
34
35 # testing getcc()
36 for my $i (0..NCCS-1) {
37     my $r = eval { $termios->getcc($i) };
38     is( $@, '', "calling getcc($i)" );
39     like($r, qr/\A-?[0-9]+\z/, 'returns an integer');
40 }
41
42 for my $method (qw(getcflag getiflag getispeed getlflag getoflag getospeed)) {
43     my $r = eval { $termios->$method() };
44     is( $@, '', "calling $method()" );
45     like($r, qr/\A-?[0-9]+\z/, 'returns an integer');
46 }
47
48 done_testing();