Skip to content

Commit fa9d3ee

Browse files
committed
Tests: made sure grpc pending control frames are sent.
This extends a previously committed test in ea00c5b. Specifically, this ensures that a SETTINGS frame received from backend after the whole request has been proxied, should be eventually acknowledged.
1 parent 56d02c7 commit fa9d3ee

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

grpc.t

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ select STDERR; $| = 1;
2424
select STDOUT; $| = 1;
2525

2626
my $t = Test::Nginx->new()->has(qw/http rewrite http_v2 grpc/)
27-
->has(qw/upstream_keepalive/)->plan(146);
27+
->has(qw/upstream_keepalive/)->plan(147);
2828

2929
$t->write_file_expand('nginx.conf', <<'EOF');
3030
@@ -208,6 +208,10 @@ $frames = $f->{http_end}();
208208
($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
209209
ok($c = $frame->{headers}{'x-connection'}, 'keepalive 2 - connection');
210210

211+
$frames = $f->{read_settings}();
212+
($frame) = grep { $_->{type} eq "SETTINGS" } @$frames;
213+
is($frame->{flags}, 1, 'pending frames acked');
214+
211215
$frames = $f->{http_start}('/KeepAlive', reuse => 1);
212216
($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
213217
ok($frame, 'upstream keepalive reused');
@@ -769,6 +773,9 @@ reused:
769773
$f->{settings} = sub {
770774
$c->h2_settings(@_);
771775
};
776+
$f->{read_settings} = sub {
777+
return $c->read(all => [{ type => 'SETTINGS' }]);
778+
};
772779
$f->{goaway} = sub {
773780
$c->h2_goaway(@_);
774781
};

0 commit comments

Comments
 (0)