mirror of
https://github.com/curl/curl.git
synced 2026-08-05 08:36:13 +03:00
testutil: make runtests support %include
Using this instruction, a test case can include the contents of a file into the test during the preprocessing. Closes #12612
This commit is contained in:
parent
8620b11c3a
commit
12f832d950
2 changed files with 24 additions and 0 deletions
|
|
@ -94,6 +94,15 @@ sub clearlogs {
|
|||
|
||||
|
||||
#######################################################################
|
||||
|
||||
sub includefile {
|
||||
my ($f) = @_;
|
||||
open(F, "<$f");
|
||||
my @a = <F>;
|
||||
close(F);
|
||||
return join("", @a);
|
||||
}
|
||||
|
||||
sub subbase64 {
|
||||
my ($thing) = @_;
|
||||
|
||||
|
|
@ -113,6 +122,7 @@ sub subbase64 {
|
|||
$d =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
|
||||
$$thing =~ s/%%HEX%%/$d/;
|
||||
}
|
||||
# repeat
|
||||
while($$thing =~ s/%repeat\[(\d+) x (.*?)\]%/%%REPEAT%%/i) {
|
||||
# decode %NN characters
|
||||
my ($d, $n) = ($2, $1);
|
||||
|
|
@ -120,6 +130,9 @@ sub subbase64 {
|
|||
my $all = $d x $n;
|
||||
$$thing =~ s/%%REPEAT%%/$all/;
|
||||
}
|
||||
|
||||
# include a file
|
||||
$$thing =~ s/%include ([^%]*)%[\n\r]+/includefile($1)/ge;
|
||||
}
|
||||
|
||||
my $prevupdate; # module scope so it remembers the last value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue