NAME
Test::Smoke::SysInfo - OO interface to system specific information
SYNOPSIS
use Test::Smoke::SysInfo;
my $si = Test::Smoke::SysInfo->new;
printf "Hostname: %s\n", $si->host;
printf "Number of CPU's: %s\n", $si->ncpu;
printf "Processor type: %s\n", $si->cpu_type; # short
printf "Processor description: %s\n", $si->cpu; # long
printf "OS and version: %s\n", $si->os;
or
use Test::Smoke::SysInfo qw( sysinfo );
printf "[%s]\n", sysinfo();
or
$ perl -MTest::Smoke::SysInfo=tsuname -le print+tsuname
DESCRIPTION
Sometimes one wants a more eleborate description of the system one is smoking.
METHODS
Test::Smoke::SysInfo->new( )
Dispatch to one of the OS-specific subs.
__get_os( )
This is the short info string about the Operating System.
__get_cpu_type( )
This is the short info string about the cpu-type. The POSIX module should provide one (portably) with POSIX::uname()
.
__get_cpu( )
We do not have a portable way to get this information, so assign _cpu_type
to it.
__get_hostname( )
Get the hostname from POSIX::uname()
.
Generic( )
Get the information from POSIX::uname()
AIX( )
Use the lsdev program to find information.
HPUX( )
Use the ioscan, getconf and machinfo programs to find information.
This routine was contributed by Rich Rauenzahn.
BSD( )
Use the sysctl program to find information.
Darwin( )
If the system_profiler program is accessible (meaning that this is Mac OS X), use it to find information; otherwise treat as "BSD( )".
This sub was donated by Dominic Dunlup.
IRIX( )
Use the hinv program to get the system information.
__from_proc_cpuinfo( $key, $lines )
Helper function to get information from /proc/cpuinfo
Linux( )
Use the /proc/cpuinfo
pseudofile to get the system information.
Linux_sparc( )
Linux on sparc architecture seems too different from intel
Linux_ppc( )
Linux on ppc architecture seems too different from intel
Linux_arm( )
Linux on ARM architecture.
Contents of /proc/cpuinfo on RaspberryPI, raspbian:
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 000e
Serial : 00000000dc08448c
Contents of /proc/cpuinfo on Archos 101IT, Android 2.2:
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 298.32
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc08
CPU revision : 2
Hardware : Archos A101IT board
Board : 0005
OMAP revision : ES1.2
Revision : 0000
Serial : 0000000000000000
Boot : 4.04.000000
Solaris( )
Use the psrinfo program to get the system information. Used also in Tru64 (osf).
Windows( )
Use the %ENV
hash to find information. Fall back on the *::Generic values if these values have been unset or are unavailable (sorry I do not have Win9[58]).
Use Win32::TieRegistry if available to get better information.
VMS()
Use some VMS specific stuff to get system information. These were suggested by Craig Berry.
sysinfo( )
sysinfo()
returns a string with host
, os
and cpu_type
.
tsuname( @args )
This class gathers most of the uname(1)
info, make a comparable version. Takes almost the same arguments:
a for all (can be omitted)
n for nodename
s for os name and version
m for cpu name
c for cpu count
p for cpu_type
SEE ALSO
Test::Smoke::Smoker, Test::Smoke::Reporter
COPYRIGHT
(c) 2002-2006, Abe Timmerman <abeltje@cpan.org> All rights reserved.
With contributions from Jarkko Hietaniemi, Merijn Brand, Campo Weijerman, Alan Burlison, Allen Smith, Alain Barbet, Dominic Dunlop, Rich Rauenzahn, David Cantrell.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See:
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.