-foreach my $dir (<test-*>) {
- next if ! -d $dir;
- run_tests($vmdata, $dir);
+if ($testfilename) {
+ my $testfile;
+ my $dir;
+
+ if (-d $testfilename) {
+ $dir = $testfilename;
+ } elsif (-f $testfilename) {
+ $dir = dirname($testfilename);
+ $testfile = basename($testfilename);
+ } else {
+ die "no such file/dir '$testfilename'\n";
+ }
+
+ run_tests($vmdata, $dir, $testfile, $testid);
+
+} else {
+ foreach my $dir (<test-*>) {
+ next if ! -d $dir;
+ run_tests($vmdata, $dir);
+ }