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]

Reply via email to