2017-02-14 02:59:14 +02:00
|
|
|
####################################################################################################################################
|
2018-04-24 15:12:25 +02:00
|
|
|
# Tests for Common::Io::Process module
|
2017-02-14 02:59:14 +02:00
|
|
|
####################################################################################################################################
|
2018-04-24 15:12:25 +02:00
|
|
|
package pgBackRestTest::Module::Common::CommonIoProcessPerlTest;
|
2017-06-09 23:51:41 +02:00
|
|
|
use parent 'pgBackRestTest::Common::RunTest';
|
2017-02-14 02:59:14 +02:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Perl includes
|
|
|
|
####################################################################################################################################
|
|
|
|
use strict;
|
|
|
|
use warnings FATAL => qw(all);
|
|
|
|
use Carp qw(confess);
|
|
|
|
use English '-no_match_vars';
|
|
|
|
|
|
|
|
use pgBackRest::Common::Exception;
|
2017-06-09 23:51:41 +02:00
|
|
|
use pgBackRest::Common::Io::Buffered;
|
|
|
|
use pgBackRest::Common::Io::Process;
|
2017-02-14 02:59:14 +02:00
|
|
|
use pgBackRest::Common::Log;
|
|
|
|
|
|
|
|
use pgBackRestTest::Common::ExecuteTest;
|
|
|
|
use pgBackRestTest::Common::RunTest;
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# run
|
|
|
|
####################################################################################################################################
|
|
|
|
sub run
|
|
|
|
{
|
|
|
|
my $self = shift;
|
|
|
|
|
2017-06-09 23:51:41 +02:00
|
|
|
# Test data
|
|
|
|
my $strFile = $self->testPath() . qw{/} . 'file.txt';
|
|
|
|
my $strFileContent = 'TESTDATA';
|
|
|
|
|
2017-02-14 02:59:14 +02:00
|
|
|
################################################################################################################################
|
2017-06-09 23:51:41 +02:00
|
|
|
if ($self->begin('new() & processId()'))
|
2017-02-14 02:59:14 +02:00
|
|
|
{
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
2017-06-09 23:51:41 +02:00
|
|
|
my $oIoProcess = $self->testResult(sub {
|
|
|
|
new pgBackRest::Common::Io::Process(
|
|
|
|
new pgBackRest::Common::Io::Buffered(
|
|
|
|
new pgBackRest::Common::Io::Handle('test'), 1, 32), "echo '${strFileContent}'")}, '[object]', 'new - echo');
|
|
|
|
$self->testResult(sub {defined($oIoProcess->processId())}, true, ' process id defined');
|
|
|
|
}
|
2017-02-14 02:59:14 +02:00
|
|
|
|
2018-03-08 19:36:55 +02:00
|
|
|
################################################################################################################################
|
|
|
|
if ($self->begin('close() and error when stderr has data'))
|
|
|
|
{
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
|
|
my $oIoProcess =
|
|
|
|
new pgBackRest::Common::Io::Process(
|
|
|
|
new pgBackRest::Common::Io::Buffered(
|
|
|
|
new pgBackRest::Common::Io::Handle('test'), 1, 32), "echo '${strFileContent}' 1>&2");
|
|
|
|
|
|
|
|
$self->testException(
|
|
|
|
sub {$oIoProcess->close()}, ERROR_FILE_READ, 'test terminated unexpectedly [000]: TESTDATA');
|
|
|
|
}
|
|
|
|
|
2017-06-09 23:51:41 +02:00
|
|
|
################################################################################################################################
|
|
|
|
if ($self->begin('close() & error()'))
|
|
|
|
{
|
2017-02-14 02:59:14 +02:00
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
2017-06-09 23:51:41 +02:00
|
|
|
my $oIoProcess =
|
|
|
|
new pgBackRest::Common::Io::Process(
|
|
|
|
new pgBackRest::Common::Io::Buffered(
|
|
|
|
new pgBackRest::Common::Io::Handle('test'), 1, 32), "echo '${strFileContent}'");
|
|
|
|
$oIoProcess->close();
|
2017-02-14 02:59:14 +02:00
|
|
|
$self->testException(
|
2017-06-09 23:51:41 +02:00
|
|
|
sub {$oIoProcess->error()}, ERROR_ASSERT, 'cannot call error() after process has been closed');
|
2017-02-14 02:59:14 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
1;
|