NAME

    Test::Rsyslog - Creates a temporary instance of rsyslog to run tests
    against

VERSION

    Version 0.03

SYNOPSIS

      my $rsyslog = Test::Rsyslog->new();
    
      Sys::Syslog::setlogsock({ type => 'unix', path => $rsyslog->socket_path() });
      # or "Sys::Syslog::setlogsock('unix', $rsyslog->socket_path());" for older Sys::Syslogs
      Sys::Syslog::openlog('program[' . $$ . ']','cons','LOG_LOCAL7');
      Sys::Syslog::syslog('info|LOG_LOCAL7','This is a test message');
      Sys::Syslog::closelog();
    
      $rsyslog->stop(); # Flush messages to the disk
      ok($rsyslog->find('This is a test message'), 'Rsyslog is okay');
      $rsyslog->start(); # Ready for the next test
     

DESCRIPTION

    This module allows easy creation and tear down of a rsyslog instance.
    When the variable goes out of scope, the rsyslog instance is torn down
    and the file system objects it relies on are removed.

SUBROUTINES/METHODS

 new

    This method will setup and start the rsyslog instance. It currently has
    no parameters, but this may change in response to feature requests

 socket_path

    This method returns that path to the UNIX file system socket that is
    connected to the current running instance of rsyslog

 find($string)

    This method searches the existing logs that rsyslog has processed to
    see if a message has been found matching $string. It will return a list
    of every line in the log file that matches $string.

 start

    This method starts the rsyslog instance

 stop

    This method stops the rsyslog instance

DIAGNOSTICS

    Failed to open %s for reading

      There has been a file system error trying to read from the rsyslog
      logfile.

    Failed to print to %s

      There has been a file system error trying to write to the rsyslog
      configuration file.

    Failed to fork

      The operating system was unable to fork a subprocess for use by the
      rsyslog daemon.

    Failed to rmdir %s

      There has been a file system error trying to remove the temporary
      directory.

    Failed to unlink %s

      There has been a file system error trying to unlink a temporary file

    Failed to close %s

      There has been a file system error trying to close a temporary file

    Failed to mkdir %s

      There has been a file system error trying to make the temporary
      directory

    Temporary rsyslog daemon is already running...

      The rsyslog daemon has already started

CONFIGURATION AND ENVIRONMENT

    Test::Rsyslog requires no configuration files or environment variables.

DEPENDENCIES

    Test::Rsyslog requires Perl 5.10 or better.

INCOMPATIBILITIES

    None reported

BUGS AND LIMITATIONS

    Please report any bugs or feature requests to bug-test-rsyslog at
    rt.cpan.org, or through the web interface at
    http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Rsyslog. I will be
    notified, and then you'll automatically be notified of progress on your
    bug as I make changes.

SUPPORT

    You can find documentation for this module with the perldoc command.

        perldoc Test::Rsyslog

    You can also look for information at:

      * RT: CPAN's request tracker (report bugs here)

      http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Rsyslog

      * AnnoCPAN: Annotated CPAN documentation

      http://annocpan.org/dist/Test-Rsyslog

      * CPAN Ratings

      http://cpanratings.perl.org/d/Test-Rsyslog

      * Search CPAN

      http://search.cpan.org/dist/Test-Rsyslog/

AUTHOR

    David Dick, <ddick at cpan.org>

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

    Copyright 2017 David Dick.

    This program is free software; you can redistribute it and/or modify it
    under the terms of either: the GNU General Public License as published
    by the Free Software Foundation; or the Artistic License.

    See http://dev.perl.org/licenses/ for more information.

