use Test::Tester;
use Test::More tests => 168;
use Test::Output;
use strict;
use warnings;
check_test( sub {
output_is(sub {
print "TEST OUT\n";
},
"TEST OUT\n",
'',
'Testing STDOUT'
)
},{
ok => 1,
name => 'Testing STDOUT',
diag => '',
},'STDOUT matches success'
);
check_test( sub {
output_is(sub {
print STDERR "TEST OUT\n";
},
'',
"TEST OUT\n",
'Testing STDERR'
)
},{
ok => 1,
name => 'Testing STDERR',
diag => '',
},'STDERR matches success'
);
check_test( sub {
output_is(sub {
print "TEST OUT\n";
print STDERR "TEST ERR\n";
},
"TEST OUT\n",
"TEST ERR\n",
'Testing STDOUT & STDERR'
)
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT & STDERR match success'
);
check_test( sub {
output_is(sub {
printf("TEST OUT - %d\n",25);
},
"TEST OUT - 25\n",
'',
'Testing STDOUT printf'
)
},{
ok => 1,
name => 'Testing STDOUT printf',
diag => '',
},'STDOUT printf match success'
);
check_test( sub {
output_is(sub {
print "TEST OUT";
},
"TEST OUT STDOUT",
'',
'Testing STDOUT failure'
)
}, {
ok => 0,
name => 'Testing STDOUT failure',
diag => "STDOUT is:\nTEST OUT\nnot:\nTEST OUT STDOUT\nas expected\n",
},'STDOUT not matching failure'
);
check_test( sub {
output_is(sub {
print STDERR "TEST OUT"},
'',
"TEST OUT STDERR",
'Testing STDERR failure'
)
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDERR is:\nTEST OUT\nnot:\nTEST OUT STDERR\nas expected\n",
},'STDERR not matching failure'
);
check_test( sub {
output_is(sub {
print "TEST ERR";
print STDERR "TEST OUT"},
'TEST ERR STDOUT',
"TEST OUT STDERR",
'Testing STDERR failure'
)
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDOUT is:\nTEST ERR\nnot:\nTEST ERR STDOUT\nas expected\nSTDERR is:\nTEST OUT\nnot:\nTEST OUT STDERR\nas expected\n",
},'STDOUT and STDERR not matching failure'
);
check_test( sub {
output_is(sub {
print "TEST OUT\n";
print STDERR "TEST ERR\n";
},
undef,
"TEST ERR\n",
'Testing STDOUT & STDERR'
)
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT undef match success'
);
check_test( sub {
output_is(sub {
print "TEST OUT\n";
print STDERR "TEST ERR\n";
},
"TEST OUT\n",
undef,
'Testing STDOUT & STDERR'
)
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT match success STDERR undef'
);
check_test( sub {
output_is(sub {
},
undef,
undef,
'Testing STDOUT & STDERR'
)
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT & STDERR undef match success'
);
check_test( sub {
output_is(sub {
print "TEST ERR";
print STDERR "TEST OUT"},
undef,
undef,
'Testing STDERR failure'
)
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDOUT is:\nTEST ERR\nnot:\n\nas expected\nSTDERR is:\nTEST OUT\nnot:\n\nas expected\n",
},'STDOUT and STDERR not matching failure'
);
check_test( sub {
output_is(sub {
print STDERR "TEST OUT"},
undef,
undef,
'Testing STDERR failure'
)
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDERR is:\nTEST OUT\nnot:\n\nas expected\n",
},'STDOUT undef and STDERR not matching failure'
);
check_test( sub {
output_is {
print "TEST OUT\n";
}
"TEST OUT\n",
'',
'Testing STDOUT'
},{
ok => 1,
name => 'Testing STDOUT',
diag => '',
},'STDOUT matches success'
);
check_test( sub {
output_is {
print STDERR "TEST OUT\n";
}
'',
"TEST OUT\n",
'Testing STDERR'
},{
ok => 1,
name => 'Testing STDERR',
diag => '',
},'STDERR matches success'
);
check_test( sub {
output_is {
print "TEST OUT\n";
print STDERR "TEST ERR\n";
}
"TEST OUT\n",
"TEST ERR\n",
'Testing STDOUT & STDERR'
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT & STDERR match success'
);
check_test( sub {
output_is {
printf("TEST OUT - %d\n",25);
}
"TEST OUT - 25\n",
'',
'Testing STDOUT printf'
},{
ok => 1,
name => 'Testing STDOUT printf',
diag => '',
},'STDOUT printf match success'
);
check_test( sub {
output_is {
print "TEST OUT";
}
"TEST OUT STDOUT",
'',
'Testing STDOUT failure'
}, {
ok => 0,
name => 'Testing STDOUT failure',
diag => "STDOUT is:\nTEST OUT\nnot:\nTEST OUT STDOUT\nas expected\n",
},'STDOUT not matching failure'
);
check_test( sub {
output_is {
print STDERR "TEST OUT"}
'',
"TEST OUT STDERR",
'Testing STDERR failure'
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDERR is:\nTEST OUT\nnot:\nTEST OUT STDERR\nas expected\n",
},'STDERR not matching failure'
);
check_test( sub {
output_is {
print "TEST ERR";
print STDERR "TEST OUT"}
'TEST ERR STDOUT',
"TEST OUT STDERR",
'Testing STDERR failure'
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDOUT is:\nTEST ERR\nnot:\nTEST ERR STDOUT\nas expected\nSTDERR is:\nTEST OUT\nnot:\nTEST OUT STDERR\nas expected\n",
},'STDOUT and STDERR not matching failure'
);
check_test( sub {
output_is {
print "TEST OUT\n";
print STDERR "TEST ERR\n";
}
undef,
"TEST ERR\n",
'Testing STDOUT & STDERR'
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT undef match success'
);
check_test( sub {
output_is {
print "TEST OUT\n";
print STDERR "TEST ERR\n";
}
"TEST OUT\n",
undef,
'Testing STDOUT & STDERR'
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT match success STDERR undef'
);
check_test( sub {
output_is {
}
undef,
undef,
'Testing STDOUT & STDERR'
},{
ok => 1,
name => 'Testing STDOUT & STDERR',
diag => '',
},'STDOUT & STDERR undef match success'
);
check_test( sub {
output_is {
print "TEST ERR";
print STDERR "TEST OUT"}
undef,
undef,
'Testing STDERR failure'
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDOUT is:\nTEST ERR\nnot:\n\nas expected\nSTDERR is:\nTEST OUT\nnot:\n\nas expected\n",
},'STDOUT and STDERR not matching failure'
);
check_test( sub {
output_is {
print STDERR "TEST OUT"}
undef,
undef,
'Testing STDERR failure'
}, {
ok => 0,
name => 'Testing STDERR failure',
diag => "STDERR is:\nTEST OUT\nnot:\n\nas expected\n",
},'STDOUT undef and STDERR not matching failure'
);