106 lines
2.9 KiB
Diff
106 lines
2.9 KiB
Diff
From 089e78dbafa34ffa8d329658d3d1a90598788e06 Mon Sep 17 00:00:00 2001
|
|
From: Mark Nudelman <markn@greenwoodsoftware.com>
|
|
Date: Sat, 8 Oct 2022 21:10:48 -0700
|
|
Subject: [PATCH 04/48] Make runtest work.
|
|
|
|
---
|
|
lesstest/runtest | 56 +++++++++++++++++++++++++++---------------------
|
|
1 file changed, 31 insertions(+), 25 deletions(-)
|
|
|
|
diff --git a/lesstest/runtest b/lesstest/runtest
|
|
index 42b8cae..8fbcefb 100755
|
|
--- a/lesstest/runtest
|
|
+++ b/lesstest/runtest
|
|
@@ -2,43 +2,44 @@
|
|
use strict;
|
|
|
|
# Run one or more test files.
|
|
-
|
|
-my $usage = "usage: run [-l less.exe] [-r temp_dir] [-o lesstest-opts] [file.lt | dir]...\n";
|
|
+my $usage = "usage: run [-d lesstest-dir] [-l less.exe] [-r temp-dir] [-s lt_screen] [-t lesstest] [file.lt | dir]...\n";
|
|
|
|
use Getopt::Std;
|
|
use Cwd;
|
|
|
|
-my $testdir = ".";
|
|
-my $rundir = ".runtest_dir";
|
|
-my $lesstest = "$testdir/lesstest";
|
|
-my $less = "$testdir/../obj/less";
|
|
-my $lesstest_opts = "";
|
|
-my %opt;
|
|
+my $rundir;
|
|
+my $lesstest;
|
|
+my $lt_screen;
|
|
+my $less;
|
|
|
|
-exit (main() ? 0 : 1);
|
|
+exit main();
|
|
sub main {
|
|
- die $usage if not getopts('l:o:r:v', \%opt);
|
|
+ my %opt;
|
|
+ die $usage if not getopts('d:l:r:s:t:', \%opt);
|
|
die $usage if not @ARGV;
|
|
- $less = $opt{l} if $opt{l};
|
|
- $lesstest_opts = $opt{o} if $opt{o};
|
|
- $lesstest_opts =~ s/^\s*//;
|
|
- $lesstest_opts =~ s/\s*$//;
|
|
- $lesstest_opts = '-'.$lesstest_opts if $lesstest_opts and $lesstest_opts !~ /^-/;
|
|
- my $odir = getcwd();
|
|
- $rundir = $opt{r} if $opt{r};
|
|
- system "rm -rf $rundir ; mkdir -p $rundir";
|
|
+
|
|
+ my $cwd = getcwd();
|
|
+ my $srcdir = ($opt{d} or $cwd);
|
|
+ $rundir = (rfile($opt{r}, $cwd) or "$srcdir/.runtest_dir");
|
|
+ $lesstest = (rfile($opt{t}, $cwd) or "$srcdir/lesstest");
|
|
+ $lt_screen = (rfile($opt{s}, $cwd) or "$srcdir/lt_screen");
|
|
+ $less = (rfile($opt{l}, $cwd) or "$srcdir/../obj/less");
|
|
+ die "cannot execute $lesstest" if not -x $lesstest;
|
|
+ die "cannot execute $lt_screen" if not -x $lt_screen;
|
|
+ die "cannot execute $less" if not -x $less;
|
|
+ die "cannot create $rundir" if system "rm -rf '$rundir' && mkdir -p '$rundir'";
|
|
die "cannot chdir to $rundir: $!" if not chdir $rundir;
|
|
|
|
my $errs = 0;
|
|
foreach my $file (@ARGV) {
|
|
- $file = "$odir/$file" unless $file =~ m|^/|;
|
|
- $errs += run($file);
|
|
+ $errs += run(rfile($file, $cwd));
|
|
}
|
|
+ system "rm -rf '$rundir'";
|
|
if ($errs > 0) {
|
|
print "ERRS $errs errors\n";
|
|
- return 0;
|
|
+ return 1;
|
|
}
|
|
- return 1;
|
|
+ return 0;
|
|
}
|
|
|
|
# Run a xxx.lt file.
|
|
@@ -55,9 +56,7 @@ sub run {
|
|
print "ERR cannot open $file\n";
|
|
return 1;
|
|
}
|
|
- ##print "FILE $file\n";
|
|
- my $cmd = "$lesstest -s $testdir/lt_screen -t $file $lesstest_opts $less";
|
|
- print "RUN $cmd\n" if $opt{v};
|
|
+ my $cmd = "$lesstest -s '$lt_screen' -t '$file' '$less'";
|
|
my $err = system $cmd;
|
|
if ($err) {
|
|
print "ERR status $err from $cmd\n";
|
|
@@ -81,3 +80,10 @@ sub run_dir {
|
|
closedir $dd;
|
|
return $errs;
|
|
}
|
|
+
|
|
+sub rfile {
|
|
+ my ($file, $cwd) = @_;
|
|
+ return undef if not defined $file;
|
|
+ $file = "$cwd/$file" unless $file =~ m|^/|;
|
|
+ return $file;
|
|
+}
|
|
--
|
|
2.27.0
|
|
|