summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Keil <fk@fabiankeil.de>2014-06-16 16:03:00 +0200
committerDaniel Stenberg <daniel@haxx.se>2021-02-09 08:16:40 +0100
commit203dc007188b847bed698f9bca904365948d4cfb (patch)
tree2f3ff3cb1371d7db74d0bc7abe15a067d8371c8a
parent8ad31a8c6eb3f19997d66c470defa12a4882970f (diff)
downloadcurl-203dc007188b847bed698f9bca904365948d4cfb.tar.gz
runtests.pl: add %TESTNUMBER variable to make copying tests more convenient
-rw-r--r--tests/FILEFORMAT.md1
-rw-r--r--tests/data/Makefile.inc2
-rw-r--r--tests/data/test118348
-rwxr-xr-xtests/runtests.pl10
4 files changed, 56 insertions, 5 deletions
diff --git a/tests/FILEFORMAT.md b/tests/FILEFORMAT.md
index 41325ed66..ec0dc4815 100644
--- a/tests/FILEFORMAT.md
+++ b/tests/FILEFORMAT.md
@@ -149,6 +149,7 @@ Available substitute variables include:
- `%SSHPORT` - Port number of the SCP/SFTP server
- `%SSHSRVMD5` - MD5 of SSH server's public key
- `%SSH_PWD` - Current directory friendly for the SSH server
+- `%TESTNUMBER` - Number of the test case
- `%TFTP6PORT` - IPv6 port number of the TFTP server
- `%TFTPPORT` - Port number of the TFTP server
- `%USER` - Login ID of the user running the test
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
index 5b60d1606..464eab2a9 100644
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@ -137,7 +137,7 @@ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \
test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 \
test1168 test1169 test1170 test1171 test1172 test1173 test1174 test1175 \
-test1176 test1177 test1178 test1179 test1180 test1181 test1182 \
+test1176 test1177 test1178 test1179 test1180 test1181 test1182 test1183 \
\
test1188 \
\
diff --git a/tests/data/test1183 b/tests/data/test1183
new file mode 100644
index 000000000..d8309e6ad
--- /dev/null
+++ b/tests/data/test1183
@@ -0,0 +1,48 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Server: Blafasel/5.0
+Date: Sat, 16 Jan 2021 14:48:30 GMT
+Content-Length: 12
+
+Bla bla bla
+</data>
+
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+<features>
+proxy
+</features>
+ <name>
+%TESTNUMBER used instead of actual test number
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/%TESTNUMBER
+</command>
+</client>
+
+# Verify that the %TESTNUMBER has been resolved to 1183
+<verify>
+<protocol>
+GET /1183 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+User-Agent: curl/%VERSION
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/runtests.pl b/tests/runtests.pl
index e836e9fa2..e7ed435bc 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -3248,7 +3248,7 @@ sub checksystem {
# a command, in either case passed by reference
#
sub subVariables {
- my ($thing, $prefix) = @_;
+ my ($thing, $testnum, $prefix) = @_;
if(!$prefix) {
$prefix = "%";
@@ -3304,6 +3304,7 @@ sub subVariables {
$$thing =~ s/${prefix}PWD/$pwd/g;
$$thing =~ s/${prefix}POSIX_PWD/$posix_pwd/g;
$$thing =~ s/${prefix}VERSION/$VERSION/g;
+ $$thing =~ s/${prefix}TESTNUMBER/$testnum/g;
my $file_pwd = $pwd;
if($file_pwd !~ /^\//) {
@@ -3447,6 +3448,7 @@ sub timestampskippedevents {
# etc. Returns the processed version of the array
sub prepro {
+ my $testnum = shift;
my (@entiretest) = @_;
my $show = 1;
my @out;
@@ -3473,7 +3475,7 @@ sub prepro {
next;
}
if($show) {
- subVariables(\$s, "%");
+ subVariables(\$s, $testnum, "%");
subBase64(\$s);
subNewlines(\$s) if($has_hyper);
push @out, $s;
@@ -3666,7 +3668,7 @@ sub singletest {
my @entiretest = fulltest();
my $otest = "log/test$testnum";
- @entiretest = prepro(@entiretest);
+ @entiretest = prepro($testnum, @entiretest);
# save the new version
open(D, ">$otest");
@@ -5691,7 +5693,7 @@ sub disabledtests {
# preprocess the input to make conditionally disabled tests depending
# on variables
- my @pp = prepro(@input);
+ my @pp = prepro(0, @input);
for my $t (@pp) {
if($t =~ /(\d+)/) {
my ($n) = $1;