Baoyuantop commented on code in PR #14036:
URL: https://github.com/apache/apisix/pull/14036#discussion_r4284348148
##########
t/node/grpc-proxy-unary.t:
##########
@@ -33,6 +33,79 @@ run_tests;
__DATA__
+=== TEST: client-control rejects a gRPC request without Content-Length after
internal redirect
+--- http2
+--- apisix_yaml
+routes:
+ - id: grpc-body-limit
+ uri: /helloworld.Greeter/SayHello
+ plugins:
+ client-control:
+ max_body_size: 1
+ upstream:
+ scheme: grpc
+ nodes:
+ "127.0.0.1:10051": 1
+ type: roundrobin
+#END
+--- exec
+grpcurl -import-path ./t/grpc_server_example/proto -proto helloworld.proto
-plaintext -d '{"name":"apisix"}' 127.0.0.1:1984 helloworld.Greeter.SayHello
2>&1
+--- response_body_like: 413
+--- error_log
+client intended to send too large chunked body
+
+
+
+=== TEST: client-control zero keeps gRPC request bodies unlimited after
internal redirect
+--- http2
+--- extra_yaml_config
+nginx_config:
+ http:
+ client_max_body_size: 1
+--- apisix_yaml
+routes:
+ - id: grpc-no-body-limit
+ uri: /helloworld.Greeter/SayHello
+ plugins:
+ client-control:
+ max_body_size: 0
+ upstream:
+ scheme: grpc
+ nodes:
+ "127.0.0.1:10051": 1
+ type: roundrobin
+#END
+--- exec
+grpcurl -import-path ./t/grpc_server_example/proto -proto helloworld.proto
-plaintext -d '{"name":"apisix"}' 127.0.0.1:1984 helloworld.Greeter.SayHello
+--- response_body_like: Hello apisix
+
+
+
+=== TEST: client-control raises the gRPC body limit above the global limit
+--- http2
+--- extra_yaml_config
+nginx_config:
+ http:
+ client_max_body_size: 1
+--- apisix_yaml
+routes:
+ - id: grpc-larger-body-limit
+ uri: /helloworld.Greeter/SayHello
+ plugins:
+ client-control:
+ max_body_size: 5242880
+ upstream:
+ scheme: grpc
+ nodes:
+ "127.0.0.1:10051": 1
+ type: roundrobin
+#END
+--- exec
+grpcurl -import-path ./t/grpc_server_example/proto -proto helloworld.proto
-plaintext -d '{"name":"apisix"}' 127.0.0.1:1984 helloworld.Greeter.SayHello
+--- response_body_like: Hello apisix
Review Comment:
Raised-limit cases use tiny requests
The zero and 5 MiB cases send a small request, so both pass even if the
original Nginx limit remains in force. The test fixture builds Nginx
configuration separately from extra_yaml_config; verify the limit reaches it
and send a larger body.
##########
t/node/grpc-proxy-unary.t:
##########
@@ -33,6 +33,79 @@ run_tests;
__DATA__
+=== TEST: client-control rejects a gRPC request without Content-Length after
internal redirect
+--- http2
+--- apisix_yaml
+routes:
+ - id: grpc-body-limit
+ uri: /helloworld.Greeter/SayHello
+ plugins:
+ client-control:
+ max_body_size: 1
Review Comment:
gRPC tests lack a runtime gate
Without apisix-nginx-module, client-control returns 501 before the new gRPC
tests reach their assertions. The existing client-control suite skips that
environment; these cases need the same gate.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]