Skip to content

Commit c371e3a

Browse files
committed
xds: improve test coverage for ext_proc client interceptor
Add comprehensive tests for directional and configuration order validation in ExternalProcessorClientInterceptor. Fix order check so clientEndOfStreamReceived is evaluated before clientHeadersReceived (and trailers/EOS before headers). TAG=agy CONV=581f86a6-097d-44a2-9d6e-6f9d2e83cbc0
1 parent 98e8d20 commit c371e3a

2 files changed

Lines changed: 1668 additions & 9 deletions

File tree

‎xds/src/main/java/io/grpc/xds/ExternalProcessorClientInterceptor.java‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -573,18 +573,18 @@ public void onNext(ProcessingResponse response) {
573573
.asRuntimeException());
574574
return;
575575
}
576-
if (clientHeadersReceived) {
576+
if (clientEndOfStreamReceived) {
577577
internalOnError(Status.UNAVAILABLE
578578
.withDescription("Protocol error: received response out of order. "
579-
+ "Duplicate request_headers response.")
579+
+ "Received request_headers after end-of-stream in "
580+
+ "client-to-server direction.")
580581
.asRuntimeException());
581582
return;
582583
}
583-
if (clientEndOfStreamReceived) {
584+
if (clientHeadersReceived) {
584585
internalOnError(Status.UNAVAILABLE
585586
.withDescription("Protocol error: received response out of order. "
586-
+ "Received request_headers after end-of-stream in "
587-
+ "client-to-server direction.")
587+
+ "Duplicate request_headers response.")
588588
.asRuntimeException());
589589
return;
590590
}
@@ -604,17 +604,17 @@ public void onNext(ProcessingResponse response) {
604604
.asRuntimeException());
605605
return;
606606
}
607-
if (serverHeadersReceived) {
607+
if (serverTrailersReceived || serverEndOfStreamReceived) {
608608
internalOnError(Status.UNAVAILABLE
609609
.withDescription("Protocol error: received response out of order. "
610-
+ "Duplicate response_headers response.")
610+
+ "Received response_headers after trailers or end-of-stream.")
611611
.asRuntimeException());
612612
return;
613613
}
614-
if (serverTrailersReceived || serverEndOfStreamReceived) {
614+
if (serverHeadersReceived) {
615615
internalOnError(Status.UNAVAILABLE
616616
.withDescription("Protocol error: received response out of order. "
617-
+ "Received response_headers after trailers or end-of-stream.")
617+
+ "Duplicate response_headers response.")
618618
.asRuntimeException());
619619
return;
620620
}

0 commit comments

Comments
 (0)