plan tests => (scalar @mac_tests * 2) + scalar @mac_fail_tests;
+my $test_count = 0;
+
foreach (@mac_tests) {
+ $test_count++;
ok(compareline($_->{cmd}, $_->{type}, $_->{input}, $_->{expected}, $_->{err}), $_->{desc});
}
foreach (@mac_tests) {
+ $test_count++;
ok(comparefile($_->{cmd}, $_->{type}, $_->{input}, $_->{expected}), $_->{desc});
}
foreach (@mac_fail_tests) {
+ $test_count++;
ok(compareline($_->{cmd}, $_->{type}, $_->{input}, $_->{expected}, $_->{err}), $_->{desc});
}
# Create a temp input file and save the input data into it, and
# then compare the stdout output matches the expected value.
sub compareline {
- my $tmpfile = 'tmp.bin';
+ my $tmpfile = "input-$test_count.bin";
my ($cmdarray_orig, $type, $input, $expect, $err) = @_;
my $cmdarray = dclone $cmdarray_orig;
if (defined($expect)) {
push @$cmdarray, @other;
my @lines = run(app($cmdarray), capture => 1);
- unlink $tmpfile;
+ # Not unlinking $tmpfile
if (defined($expect)) {
if ($lines[1] =~ m|^\Q${expect}\E\R$|) {
# use the '-bin -out <file>' commandline options to save results out to a file.
# Read this file back in and check its output matches the expected value.
sub comparefile {
- my $tmpfile = 'tmp.bin';
- my $outfile = 'out.bin';
+ my $tmpfile = "input-$test_count.bin";
+ my $outfile = "output-$test_count.bin";
my ($cmdarray, $type, $input, $expect) = @_;
$expect = uc $expect;
push @$cmdarray, @other;
run(app($cmdarray));
- unlink $tmpfile;
+ # Not unlinking $tmpfile
+
open(my $out, '<', $outfile) or die "Could not open file";
binmode($out);
my $buffer;
my $BUFSIZE = 1024;
read($out, $buffer, $BUFSIZE) or die "unable to read";
-
+ # Not unlinking $outfile
+
my $line = uc unpack("H*", $buffer);
close($out);
- unlink $outfile;
if ($line eq $expect) {
return 1;