less/backport-makecheck-0010-Make-runtest-work.patch

106 lines
2.9 KiB
Diff
Raw Normal View History

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