++ed by:

1 PAUSE user
2 non-PAUSE users.

Author image Abe Timmerman


Test::Smoke::SysInfo - OO interface to system specific information


    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;


    use Test::Smoke::SysInfo qw( sysinfo );
    printf "[%s]\n", sysinfo();


    $ perl -MTest::Smoke::SysInfo=tsuname -le print+tsuname


Sometimes one wants a more eleborate description of the system one is smoking.


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.


Use the ioscan program to find information.

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.


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 preudofile 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

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.


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


Test::Smoke::Smoker, Test::Smoke::Reporter


(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.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


  • http://www.perl.com/perl/misc/Artistic.html

  • http://www.gnu.org/copyleft/gpl.html

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.