This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge branch 'fix-grammar' into blead
[perl5.git] / ext / Win32CORE / t / win32core.t
1 #!perl
2
3 use Test::More;
4 BEGIN {
5     if ( $ENV{PERL_CORE} ) {
6     require Config;
7         if ( $Config::Config{extensions} !~ /(?<!\S)Win32CORE(?!\S)/ ) {
8             plan skip_all => "Win32CORE extension not built";
9             exit();
10         }
11     }
12
13     plan tests => 6;
14 };
15 use_ok( "Win32CORE" );
16
17 # Make sure that Win32 is not yet loaded
18 ok(!defined &Win32::ExpandEnvironmentStrings,
19    "ensure other Win32::* functions aren't loaded yet");
20
21 $^E = 42;
22 $! = 4;
23 ok(eval { Win32::GetLastError(); 1 }, 'GetLastError() works on the first call');
24 my $errno = 0 + $!;
25 my $sys_errno = 0 + $^E;
26 SKIP: {
27     $^O eq "cygwin"
28         and skip q($^E isn't useful on cygwin), 1;
29     # [perl #42925] - Loading Win32::GetLastError() via the forwarder function
30     # should not affect the last error being retrieved
31     is($sys_errno, 42, '$^E is preserved across Win32 autoload');
32 }
33 is($errno, 4, '$! is preserved across Win32 autoload');
34
35 # Now all Win32::* functions should be loaded
36 ok(defined &Win32::ExpandEnvironmentStrings,
37    "check other Win32::* functions are loaded");