first (very early) cut at a functional testing script

This commit is contained in:
Dima Kogan 2013-10-18 15:17:47 -07:00
parent 1252315598
commit 1acb30c3cd
2 changed files with 89 additions and 0 deletions

View File

@ -3,5 +3,6 @@ MANIFEST
bin/feedgnuplot
t/00-load.t
t/manifest.t
t/plots.t
Changes
LICENSE

88
t/plots.t Normal file
View File

@ -0,0 +1,88 @@
#!/usr/bin/perl
# require a threaded perl for my tests. This block lifted verbatim from the cpantesters wiki
BEGIN {
use Config;
if (! $Config{'useithreads'}) {
print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
exit(0);
}
}
use Test::More tests => 1;
use Test::Script::Run 'is_script_output';
use File::Temp 'tempfile';
tryplot( [], 'seq 5', <<'EOF' );
5 ++--+---+--+---+---+---+--+--+A
+ + + + + + + + *+
| * |
| * |
4.5 ++ * ++
| * |
| * |
| * |
| * |
4 ++ A ++
| * |
| * |
| * |
3.5 ++ * ++
| * |
| * |
| * |
3 ++ A ++
| * |
| * |
| * |
| * |
2.5 ++ * ++
| * |
| * |
| * |
2 ++ A ++
| * |
| * |
| * |
| * |
1.5 ++ * ++
| * |
| * |
+* + + + + + + + +
1 A+--+---+--+---+---+---+--+--++
1 1.5 2 2.5 3 3.5 4 4.5 5
EOF
sub tryplot
{
my $extraoptions = shift;
my $incmd = shift;
my $ref = shift;
my ($fh, $input_filename) = tempfile( UNLINK => 1);
open IN, '-|', $incmd;
print $fh <IN>;
close IN;
close $fh;
my @options = (qw(--lines --points --exit),
'--extracmds', 'unset grid',
'--terminal', 'dumb 40,40',
$input_filename);
unshift @options, @$extraoptions;
is_script_output( 'feedgnuplot', \@options,
[$ref =~ /(.*)\n/g], [],
'basic line plot');
}