runtests: replace --ci with --buidinfo, show OS/Perl version again

I figure OS/Perl version may be useful to see in local runs,
and also in CI runs where `--ci` was not set:
https://curl.se/dev/log.cgi?id=20250820041228-707387#prob1

Also, only show a message if the `diff` tool is missing.

Follow-up to 985f39c0ce #18147
Closes #18329
This commit is contained in:
Viktor Szakats 2025-08-20 20:29:20 +02:00
parent 8f9d73bcaf
commit 696150b752
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
6 changed files with 19 additions and 30 deletions

View file

@ -150,7 +150,6 @@ This release includes the following bugfixes:
o pytest: increase server KeepAliveTimeout [26]
o pytest: relax error check on test_07_22 [16]
o resolving: dns error tracing [196]
o runtests: add `--ci` option, show `Env:` only when non-empty [134]
o runtests: assume `Time::HiRes`, drop Perl Win32 dependency [163]
o schannel: add an error message for client cert not found [165]
o schannel: assume `CERT_CHAIN_REVOCATION_CHECK_CHAIN` [114]
@ -386,7 +385,6 @@ References to bug reports and discussions on issues:
[131] = https://curl.se/bug/?i=18187
[132] = https://curl.se/bug/?i=18160
[133] = https://curl.se/bug/?i=18201
[134] = https://curl.se/bug/?i=18147
[135] = https://curl.se/bug/?i=18143
[136] = https://curl.se/bug/?i=18142
[137] = https://curl.se/bug/?i=18141

View file

@ -96,15 +96,15 @@ Provide a path to a curl binary to talk to APIs (currently only CI test APIs).
Display test results in automake style output (`PASS/FAIL: [number] [name]`).
## `--buildinfo`
Dump `buildinfo.txt`.
## `-c \<curl\>`
Provide a path to a custom curl binary to run the tests with. Default is the
curl executable in the build tree.
## `--ci`
Show extra information useful in for CI runs.
## `-d`
Enable protocol debug: have the servers display protocol output. If used in

View file

@ -126,7 +126,7 @@ curl_add_runtests(test-am "-a -am")
curl_add_runtests(test-full "-a -p -r")
# ~flaky means that it ignores results of tests using the flaky keyword
curl_add_runtests(test-nonflaky "-a -p ~flaky ~timing-dependent")
curl_add_runtests(test-ci "-a -p ~flaky ~timing-dependent -r --retry=5 -j20 --ci")
curl_add_runtests(test-ci "-a -p ~flaky ~timing-dependent -r --retry=5 -j20 --buildinfo")
curl_add_runtests(test-torture "-a -t -j20")
curl_add_runtests(test-event "-a -e")

View file

@ -129,7 +129,7 @@ TEST_E = -a -e
TEST_NF = -a -p ~flaky ~timing-dependent
# special CI target derived from nonflaky with CI-specific flags
TEST_CI = $(TEST_NF) -r --retry=5 -j20 --ci
TEST_CI = $(TEST_NF) -r --retry=5 -j20 --buildinfo
PYTEST = pytest
endif

View file

@ -46,7 +46,7 @@ BEGIN {
$TUNITDIR
$SRVDIR
$listonly
$ci
$buildinfo
$LOCKDIR
$LOGDIR
$memanalyze
@ -95,7 +95,7 @@ our $verbose; # 1 to show verbose test output
our $torture; # 1 to enable torture testing
our $proxy_address; # external HTTP proxy address
our $listonly; # only list the tests
our $ci; # show extra info useful in CI runs
our $buildinfo; # dump buildinfo.txt
our $run_duphandle; # run curl with --test-duphandle to verify handle duplication
our $run_event_based; # run curl with --test-event to test the event API
our $automakestyle; # use automake-like test status output format

View file

@ -856,14 +856,6 @@ sub checksystemfeatures {
chomp $hosttype;
my $hostos=$^O;
my $havediff;
if(system("diff $TESTDIR/DISABLED $TESTDIR/DISABLED 2>$dev_null") == 0) {
$havediff = 'available';
}
else {
$havediff = 'missing';
}
# display summary information about curl and the test host
logmsg("********* System characteristics ******** \n",
"* $curl\n",
@ -872,14 +864,10 @@ sub checksystemfeatures {
"* Features: $feat\n",
"* Disabled: $dis\n",
"* Host: $hostname\n",
"* System: $hosttype\n");
if($ci) {
logmsg("* OS: $hostos\n",
"* Perl: $^V ($^X)\n",
"* diff: $havediff\n");
}
logmsg("* Args: $args\n");
"* System: $hosttype\n",
"* OS: $hostos\n",
"* Perl: $^V ($^X)\n",
"* Args: $args\n");
if($jobs) {
# Only show if not the default for now
logmsg "* Jobs: $jobs\n";
@ -902,6 +890,9 @@ sub checksystemfeatures {
logmsg "* Env: $env\n";
}
logmsg "* Seed: $randseed\n";
if(system("diff $TESTDIR/DISABLED $TESTDIR/DISABLED 2>$dev_null") != 0) {
logmsg "* diff: missing\n";
}
}
#######################################################################
@ -2452,8 +2443,8 @@ while(@ARGV) {
# lists the test case names only
$listonly=1;
}
elsif($ARGV[0] eq "--ci") {
$ci=1;
elsif($ARGV[0] eq "--buildinfo") {
$buildinfo=1;
}
elsif($ARGV[0] =~ /^-j(.*)/) {
# parallel jobs
@ -2508,8 +2499,8 @@ Usage: runtests.pl [options] [test selection(s)]
-a continue even if a test fails
-ac path use this curl only to talk to APIs (currently only CI test APIs)
-am automake style output PASS/FAIL: [number] [name]
--buildinfo dump buildinfo.txt
-c path use this curl executable
--ci show extra info useful in for CI runs (e.g. buildinfo.txt dump)
-d display server debug info
-e, --test-event event-based execution
--test-duphandle duplicate handles before use
@ -2697,7 +2688,7 @@ if(!$listonly) {
#######################################################################
# Output information about the curl build
#
if(!$listonly && $ci) {
if(!$listonly && $buildinfo) {
if(open(my $fd, "<", "../buildinfo.txt")) {
while(my $line = <$fd>) {
chomp $line;