xref: /openbsd-src/gnu/usr.bin/perl/t/op/select.t (revision 9f11ffb7133c203312a01e4b986886bc88c7d74b)
1898184e3Ssthen#!./perl
2898184e3Ssthen
3*9f11ffb7Safresh1# This file is for testing select() with one argument.  Four-argument
4*9f11ffb7Safresh1# select() is tested in sselect.t.
5*9f11ffb7Safresh1
6898184e3SsthenBEGIN {
7b8851fccSafresh1    chdir 't' if -d 't';
8898184e3Ssthen    require './test.pl';
9898184e3Ssthen}
10898184e3Ssthen
11898184e3Ssthenplan reverse 9;
12898184e3Ssthen
13898184e3Ssthen
14898184e3Ssthenopen my $fh, "test.pl" or die "$0 unfortunately cannot open test.pl: $!";
15898184e3Ssthen
16898184e3Ssthenis select, 'main::STDOUT', 'select retval';
17898184e3Ssthenis select($fh), 'main::STDOUT', 'select retval when called with argument';
18898184e3Ssthenok ref select, 'select returns ref for glob generated by open';
19898184e3Ssthenis select, $fh, 'the ref returned references the right referent';
20898184e3Ssthenis select(STDOUT), $fh, 'select previous ref when setting to bareword';
21898184e3Ssthenis select, 'main::STDOUT', 'switching back to STDOUT';
22898184e3Ssthenis ref\select, 'SCALAR', 'and STDOUT is a plain string';
23898184e3Ssthen
24898184e3Ssthenopen foo::bar, "test.pl" or die "$0 sadly cannot open test.pl: $!";
25898184e3Ssthenselect foo::bar;
26898184e3Ssthen$handle = \*foo::bar;
27898184e3Ssthen$stash = \%foo::;
28898184e3Ssthen*foo:: = *bar::;
29898184e3Ssthenis select, $handle,
30898184e3Ssthen    'select returns ref for glob whose stash has been detached';
31898184e3Ssthen
32898184e3Ssthenopen thwat::snin, "test.pl" or die "$0 is unable to open test.pl: $!";
33898184e3Ssthenselect thwat::snin;
34898184e3Ssthen$handle = \*thwat::snin;
35898184e3Ssthen*thwat:: = *snin::; # gv is now *__ANON__::snin
36898184e3Ssthenis select, $handle,
37898184e3Ssthen    'select returns ref for glob with no stash pointer';
38