From 0f0493a5ae1485ee55a30ac19e37cd367e45529c Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 26 Mar 2009 00:22:35 +0000 Subject: Purge testrunner svn path=/trunk/libparserutils/; revision=6892 --- test/testrunner.pl | 167 ----------------------------------------------------- 1 file changed, 167 deletions(-) delete mode 100644 test/testrunner.pl diff --git a/test/testrunner.pl b/test/testrunner.pl deleted file mode 100644 index 1c6c66d..0000000 --- a/test/testrunner.pl +++ /dev/null @@ -1,167 +0,0 @@ -#!/bin/perl -# -# Testcase runner -# -# Usage: testrunner [] -# -# Operates upon INDEX files described in the README. -# Locates and executes testcases, feeding data files to programs -# as appropriate. -# Logs testcase output to file. -# Aborts test sequence on detection of error. -# - -use warnings; -use strict; -use File::Spec; -use IPC::Open3; - -if (@ARGV < 1) { - print "Usage: testrunner.pl []\n"; - exit; -} - -# Get directory -my $directory = shift @ARGV; - -# Get EXE extension (if any) -my $exeext = ""; -$exeext = shift @ARGV if (@ARGV > 0); - -# Open log file and /dev/null -open(LOG, ">$directory/log") or die "Failed opening test log"; -open(NULL, "+<", File::Spec->devnull) or die "Failed opening /dev/null"; - -# Open testcase index -open(TINDEX, "<$directory/INDEX") or die "Failed opening test INDEX"; - -# Parse testcase index, looking for testcases -while (my $line = ) { - next if ($line =~ /^(#.*)?$/); - - # Found one; decompose - (my $test, my $desc, my $data) = split /\t+/, $line; - - # Strip whitespace - $test =~ s/^\s+|\s+$//g; - $desc =~ s/^\s+|\s+$//g; - $data =~ s/^\s+|\s+$//g if ($data); - - # Append EXE extension to binary name - $test = $test . $exeext; - - print "Test: $desc\n"; - - my $pid; - - if ($data) { - # Testcase has external data files - - # Open datafile index - open(DINDEX, "<$directory/data/$data/INDEX") or - die "Failed opening $directory/data/$data/INDEX"; - - # Parse datafile index, looking for datafiles - while (my $dentry = ) { - next if ($dentry =~ /^(#.*)?$/); - - # Found one; decompose - (my $dtest, my $ddesc) = split /\t+/, $dentry; - - # Strip whitespace - $dtest =~ s/^\s+|\s+$//g; - $ddesc =~ s/^\s+|\s+$//g; - - print LOG "Running $directory/$test " . - "$directory/data/Aliases " . - "$directory/data/$data/$dtest\n"; - - # Make message fit on an 80 column terminal - my $msg = " ==> $test [$data/$dtest]"; - $msg = $msg . "." x (80 - length($msg) - 8); - - print $msg; - - # Run testcase - $pid = open3("&) { - print LOG " $output"; - $last = $output; - } - - # Wait for child to finish - waitpid($pid, 0); - - print substr($last, 0, 4) . "\n"; - - # Bail, noisily, on failure - if (substr($last, 0, 4) eq "FAIL") { - # Write any stderr output to the log - while (my $errors = ) { - print LOG " $errors"; - } - - print "\n\nFailure detected: " . - "consult log file\n\n\n"; - - exit(1); - } - } - - close(DINDEX); - } else { - # Testcase has no external data files - print LOG "Running $directory/$test $directory/data/Aliases\n"; - - # Make message fit on an 80 column terminal - my $msg = " ==> $test"; - $msg = $msg . "." x (80 - length($msg) - 8); - - print $msg; - - # Run testcase - $pid = open3("&) { - print LOG " $output"; - $last = $output; - } - - # Wait for child to finish - waitpid($pid, 0); - - print substr($last, 0, 4) . "\n"; - - # Bail, noisily, on failure - if (substr($last, 0, 4) eq "FAIL") { - # Write any stderr output to the log - while (my $errors = ) { - print LOG " $errors"; - } - - print "\n\nFailure detected: " . - "consult log file\n\n\n"; - - exit(1); - } - } - - print "\n"; -} - -# Clean up -close(TINDEX); - -close(NULL); -close(LOG); -- cgit v1.2.3