#!/usr/bin/perl use warnings; use strict; @ARGV == 1 or die "$0 exe\n"; my @tests = `ls testfiles`; for my $test (@tests) { chomp $test; system("$ARGV[0] < testfiles/$test > output/$test"); my $diff = `diff expected/${test}_output output/$test`; if ($?) { print "$test\n"; system("cat testfiles/$test"); print "Expected: \n"; system("cat expected/${test}_output"); print "Output: \n"; system("cat output/$test"); exit; } }