193 lines
5.5 KiB
Diff
193 lines
5.5 KiB
Diff
From 6f2629c7d9696e295cf68a05adfc445a35eaf9bc Mon Sep 17 00:00:00 2001
|
|
From: Mark Nudelman <markn@greenwoodsoftware.com>
|
|
Date: Tue, 11 Oct 2022 09:31:42 -0700
|
|
Subject: [PATCH 12/48] lesstest: add -e option.
|
|
|
|
---
|
|
lesstest/lesstest.c | 8 ++++++--
|
|
lesstest/log.c | 8 +++++++-
|
|
lesstest/lt_screen.c | 1 +
|
|
lesstest/lt_types.h | 2 +-
|
|
lesstest/run.c | 8 ++++++--
|
|
lesstest/runtest | 12 +++++++++---
|
|
6 files changed, 30 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/lesstest/lesstest.c b/lesstest/lesstest.c
|
|
index 8c960ab..64578b8 100644
|
|
--- a/lesstest/lesstest.c
|
|
+++ b/lesstest/lesstest.c
|
|
@@ -6,13 +6,14 @@ extern TermInfo terminfo;
|
|
int verbose = 0;
|
|
int less_quit = 0;
|
|
int details = 0;
|
|
+int err_only = 0;
|
|
char* lt_screen = "./lt_screen";
|
|
char* lt_screen_opts = NULL;
|
|
|
|
static char* testfile = NULL;
|
|
|
|
static int usage(void) {
|
|
- fprintf(stderr, "usage: lesstest -o file.lt [-w#] [-h#] [-dv] [-S lt_screen-opts] [--] less.exe [flags] textfile\n");
|
|
+ fprintf(stderr, "usage: lesstest -o file.lt [-w#] [-h#] [-edv] [-S lt_screen-opts] [--] less.exe [flags] textfile\n");
|
|
fprintf(stderr, " or: lesstest -t file.lt less.exe\n");
|
|
return 0;
|
|
}
|
|
@@ -20,11 +21,14 @@ static int usage(void) {
|
|
static int setup(int argc, char* const* argv) {
|
|
char* logfile = NULL;
|
|
int ch;
|
|
- while ((ch = getopt(argc, argv, "do:s:S:t:v")) != -1) {
|
|
+ while ((ch = getopt(argc, argv, "deo:s:S:t:v")) != -1) {
|
|
switch (ch) {
|
|
case 'd':
|
|
details = 1;
|
|
break;
|
|
+ case 'e':
|
|
+ err_only = 1;
|
|
+ break;
|
|
case 'o':
|
|
logfile = optarg;
|
|
break;
|
|
diff --git a/lesstest/log.c b/lesstest/log.c
|
|
index e746c81..7418f61 100644
|
|
--- a/lesstest/log.c
|
|
+++ b/lesstest/log.c
|
|
@@ -2,6 +2,7 @@
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <stdarg.h>
|
|
+#include <time.h>
|
|
#include <sys/stat.h>
|
|
#include "lesstest.h"
|
|
|
|
@@ -26,7 +27,12 @@ void log_close(void) {
|
|
|
|
int log_file_header(void) {
|
|
if (logf == NULL) return 0;
|
|
- fprintf(logf, "!lesstest!\n");
|
|
+ time_t now = time(NULL);
|
|
+ struct tm* tm = gmtime(&now);
|
|
+ fprintf(logf, "!lesstest!\n!version %d\n!created %d-%02d-%02d %02d:%02d:%02d\n",
|
|
+ LESSTEST_VERSION,
|
|
+ tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
|
|
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
|
|
return 1;
|
|
}
|
|
|
|
diff --git a/lesstest/lt_screen.c b/lesstest/lt_screen.c
|
|
index 6b1fde4..4bc1c50 100644
|
|
--- a/lesstest/lt_screen.c
|
|
+++ b/lesstest/lt_screen.c
|
|
@@ -3,6 +3,7 @@
|
|
#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <fcntl.h>
|
|
+#include <signal.h>
|
|
#include "lt_types.h"
|
|
#include "wchar.h"
|
|
|
|
diff --git a/lesstest/lt_types.h b/lesstest/lt_types.h
|
|
index 3f98376..2015582 100644
|
|
--- a/lesstest/lt_types.h
|
|
+++ b/lesstest/lt_types.h
|
|
@@ -1,4 +1,4 @@
|
|
-#include <signal.h>
|
|
+#define LESSTEST_VERSION 1
|
|
|
|
typedef unsigned long wchar;
|
|
typedef unsigned char byte;
|
|
diff --git a/lesstest/run.c b/lesstest/run.c
|
|
index e1d4881..fa7ace0 100644
|
|
--- a/lesstest/run.c
|
|
+++ b/lesstest/run.c
|
|
@@ -9,6 +9,7 @@
|
|
extern int verbose;
|
|
extern int less_quit;
|
|
extern int details;
|
|
+extern int err_only;
|
|
extern TermInfo terminfo;
|
|
|
|
static pid_t less_pid;
|
|
@@ -121,7 +122,7 @@ int run_interactive(char* const* argv, int argc, char* const* prog_envp) {
|
|
|
|
int run_test(TestSetup* setup, FILE* testfd) {
|
|
const char* setup_name = setup->argv[setup->argc-1];
|
|
- fprintf(stderr, "RUN %s\n", setup_name);
|
|
+ //fprintf(stderr, "RUN %s\n", setup_name);
|
|
LessPipeline* pipeline = create_less_pipeline(setup->argv, setup->argc,
|
|
less_envp(setup->env.env_list, 0));
|
|
if (pipeline == NULL)
|
|
@@ -169,7 +170,10 @@ int run_test(TestSetup* setup, FILE* testfd) {
|
|
set_intr_handler(0);
|
|
}
|
|
destroy_less_pipeline(pipeline);
|
|
- fprintf(stderr, "%s %s (%d commands)\n", ok ? "OK " : "FAIL", setup_name, cmds);
|
|
+ if (!ok)
|
|
+ fprintf(stderr, "FAIL %s (%d commands)\n", setup_name, cmds);
|
|
+ else if (!err_only)
|
|
+ fprintf(stderr, "OK %s (%d commands)\n", setup_name, cmds);
|
|
return ok;
|
|
}
|
|
|
|
diff --git a/lesstest/runtest b/lesstest/runtest
|
|
index 2a39047..94ff5fd 100755
|
|
--- a/lesstest/runtest
|
|
+++ b/lesstest/runtest
|
|
@@ -2,7 +2,7 @@
|
|
use strict;
|
|
|
|
# Run one or more test files.
|
|
-my $usage = "usage: run [-d lesstest-dir] [-l less.exe] [-r temp-dir] [-s lt_screen] [-t lesstest] [-O lesstest-opts] [file.lt | dir]...\n";
|
|
+my $usage = "usage: run [-e] [-d lesstest-dir] [-l less.exe] [-r temp-dir] [-s lt_screen] [-t lesstest] [-O lesstest-opts] [file.lt | dir]...\n";
|
|
|
|
use Getopt::Std;
|
|
use Cwd;
|
|
@@ -12,11 +12,13 @@ my $lesstest;
|
|
my $lt_screen;
|
|
my $less;
|
|
my $lt_opts;
|
|
+my $err_only;
|
|
+my $num_tests = 0;
|
|
|
|
exit main();
|
|
sub main {
|
|
my %opt;
|
|
- die $usage if not getopts('d:l:O:r:s:t:', \%opt);
|
|
+ die $usage if not getopts('d:el:O:r:s:t:', \%opt);
|
|
die $usage if not @ARGV;
|
|
|
|
my $cwd = getcwd();
|
|
@@ -26,7 +28,9 @@ sub main {
|
|
$lt_screen = (rfile($opt{s}, $cwd) or "$srcdir/lt_screen");
|
|
$less = (rfile($opt{l}, $cwd) or "$srcdir/../obj/less");
|
|
$lt_opts = ($opt{O} or "");
|
|
+ $err_only = $opt{e};
|
|
$lt_opts = "-$lt_opts" if $lt_opts =~ /^[^-]/;
|
|
+ $lt_opts .= " -e" if $err_only;
|
|
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;
|
|
@@ -42,6 +46,7 @@ sub main {
|
|
print "ERRS $errs errors\n";
|
|
return 1;
|
|
}
|
|
+ print "RAN $num_tests tests\n";
|
|
return 0;
|
|
}
|
|
|
|
@@ -60,9 +65,10 @@ sub run {
|
|
return 1;
|
|
}
|
|
my ($basename) = $file =~ m|^.*/([^/]+)$|;
|
|
- print "TEST $basename\n";
|
|
+ print "TEST $basename\n" unless $err_only;
|
|
my $cmd = "$lesstest $lt_opts -s '$lt_screen' -t '$file' '$less'";
|
|
my $err = system $cmd;
|
|
+ ++$num_tests;
|
|
if ($err) {
|
|
print "ERR status $err from $cmd\n";
|
|
return 1;
|
|
--
|
|
2.27.0
|
|
|