Skip to content

Commit b908002

Browse files
committed
[tests] consolidate test value comparison logic
1 parent 0cd9b09 commit b908002

File tree

1 file changed

+10
-30
lines changed

1 file changed

+10
-30
lines changed

tests/LightyTest.pm

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -459,46 +459,26 @@ sub handle_http {
459459

460460
(my $k = $_) =~ tr/[A-Z]/[a-z]/;
461461

462-
my $verify_value = 1;
463-
my $verify_less_than = 0;
464-
my $key_inverted = 0;
465-
466-
if (substr($k, 0, 1) eq '+') {
467-
$k = substr($k, 1);
468-
$verify_value = 0;
469-
} elsif (substr($k, 0, 1) eq '-') {
470-
## the key should NOT exist
471-
$k = substr($k, 1);
472-
$key_inverted = 1;
473-
$verify_value = 0; ## skip the value check
474-
} elsif (substr($k, 0, 1) eq '<') {
475-
## the value must be less than
476-
$k = substr($k, 1);
477-
$verify_less_than = 1;
478-
}
462+
# prefix '+' or '-' to require presence (or not) of header
463+
# prefix '<' to require response value < expected value
464+
# no prefix to require response value match expected value
465+
my $tag = $k =~ s/^([<+-])// ? $1 : '';
479466

480-
if ($key_inverted) {
481-
if (defined $resp_hdr{$k}) {
482-
diag(sprintf("\nheader '%s' MUST not be set", $k));
483-
return -1;
484-
}
485-
} else {
486-
if (not defined $resp_hdr{$k}) {
487-
diag(sprintf("\nrequired header '%s' is missing", $k));
488-
return -1;
489-
}
467+
if (defined($resp_hdr{$k}) ^ !!($tag ne '-')) {
468+
diag(sprintf("\nheader '%s' %s", $k, ($tag ne '-' ? "is missing" : "MUST NOT be set")));
469+
return -1;
490470
}
491471

492-
if ($verify_value) {
472+
if ($tag ne '+' && $tag ne '-') {
493473
if (ref($href->{$_}) eq "Regexp") {
494474
if ($resp_hdr{$k} !~ $href->{$_}) {
495475
diag(sprintf(
496476
"\nresponse-header failed: expected '%s', got '%s', regex: %s",
497477
$href->{$_}, $resp_hdr{$k}, $1));
498478
return -1;
499479
}
500-
} elsif ($verify_less_than) {
501-
if ($resp_hdr{$k} >= $href->{$_}) {
480+
} elsif ($tag eq '<') {
481+
if (!($resp_hdr{$k} < $href->{$_})) {
502482
diag(sprintf(
503483
"\nresponse-header failed: expected '%s' > '%s'",
504484
$href->{$_}, $resp_hdr{$k}));

0 commit comments

Comments
 (0)