Plan 9 from Bell Labs’s /usr/web/sources/contrib/gabidiaz/root/sys/src/cmd/perl/ext/Sys/Syslog/syslog.t

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#!./perl

BEGIN {
    chdir 't' if -d 't';
    @INC = '../lib';
    require Config; import Config;
    if ($Config{'extensions'} !~ /\bSyslog\b/) {
	print "1..0 # Skip: Sys::Syslog was not built\n";
	exit 0;
    }
    if ($Config{'extensions'} !~ /\bSocket\b/) {
	print "1..0 # Skip: Socket was not built\n";
	exit 0;
    }

    require Socket;

    # This code inspired by Sys::Syslog::connect():
    require Sys::Hostname;
    my ($host_uniq) = Sys::Hostname::hostname();
    my ($host)      = $host_uniq =~ /([A-Za-z0-9_.-]+)/;

    if (! defined Socket::inet_aton($host)) {
        print "1..0 # Skip: Can't lookup $host\n";
        exit 0;
    }
}

BEGIN {
  eval {require Sys::Syslog} or do {
    if ($@ =~ /Your vendor has not/) {
      print "1..0 # Skip: missing macros\n";
      exit 0;
    }
  }
}

use Sys::Syslog qw(:DEFAULT setlogsock);

# Test this to 1 if your syslog accepts udp connections.
# Most don't (or at least shouldn't)
my $Test_Syslog_INET = 0;

my $test_string = "uid $< is testing perl $] syslog capabilities";

print "1..6\n";

if (Sys::Syslog::_PATH_LOG()) {
    if (-e Sys::Syslog::_PATH_LOG()) {
        print defined(eval { setlogsock('unix') }) ? "ok 1\n" : "not ok 1 # $!\n";
        print defined(eval { openlog('perl', 'ndelay', 'local0') }) ? "ok 2\n" : "not ok 2 # $!\n";
        print defined(eval { syslog('info', $test_string ) }) ? "ok 3\n" : "not ok 3 # $!\n";
    }
    else {
        for (1..3) {
            print
                "ok $_ # Skip: file ",
                Sys::Syslog::_PATH_LOG(),
                " does not exist\n";
        }
    }
}
else {
    for (1..3) { print "ok $_ # Skip: _PATH_LOG unavailable\n" }
}

if( $Test_Syslog_INET ) {
    print defined(eval { setlogsock('inet') }) ? "ok 4\n" 
                                               : "not ok 4\n";
    print defined(eval { openlog('perl', 'ndelay', 'local0') }) ? "ok 5\n" 
                                                                : "not ok 5 # $!\n";
    print defined(eval { syslog('info', $test_string ) }) ? "ok 6\n" 
                                                   : "not ok 6 # $!\n";
}
else {
    print "ok $_ # Skip: assuming syslog doesn't accept inet connections\n" 
      foreach (4..6);
}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.