Win32-Process-Info
view release on metacpan or search on metacpan
package main;
use strict;
use warnings;
use File::Spec;
use Test::More 0.88; # For done_testing();
BEGIN { eval 'use Win32::Getppid' }
my $my_user = eval { getlogin || getpwuid ($<) };
my $reactos = $^O eq 'MSWin32'
&& defined $ENV{OS} && lc $ENV{OS} eq 'reactos';
require_ok 'Win32::Process::Info'
or BAIL_OUT;
eval {
Win32::Process::Info->import();
1;
} or BAIL_OUT 'Win32::Process::Info->import() failed';
is Win32::Process::Info::Version(), $Win32::Process::Info::VERSION,
'Get our version';
foreach my $variant ( qw{ NT WMI PT } ) {
SKIP: {
my $tests = 10;
my $prefix = "Variant $variant:";
my $skip = Win32::Process::Info->variant_support_status( $variant );
note "\nTesting variant $variant";
$skip
and skip "$prefix $skip", $tests;
my $pi = Win32::Process::Info->new (undef, $variant);
ok $pi, "Instantiate variant $variant."
or skip "Failed to instantiate $variant", --$tests;
ok eval { $pi->Set( elapsed_in_seconds => 1 ) },
"$prefix Ask for elapssed time in seconds";
my $my_pid = $pi->My_Pid();
my @pids = $pi->ListPids();
ok scalar @pids, "$prefix Ability to list processes";
my @mypid = grep { $my_pid eq $_ } @pids;
ok scalar @mypid, "$prefix Our own PID should be in the list";
my @pinf = $pi->GetProcInfo();
ok scalar @pinf, "$prefix Ability to get process info";
my ( $me ) = $pi->GetProcInfo( $my_pid );
ok $me, "$prefix Ability to get our own info";
SKIP: {
defined $me
and defined $me->{Name}
or skip "$prefix Could not get process name", 1;
like $me->{Name}, qr{ perl }smxi,
"$prefix Own process should be running Perl.";
}
( run in 1.447 second using v1.01-cache-2.11-cpan-39bf76dae61 )