Skip to content

doc: add interop-test description for orca#29632

Merged
YifeiZhuang merged 11 commits intogrpc:masterfrom
YifeiZhuang:orca-test-desc
May 24, 2022
Merged

doc: add interop-test description for orca#29632
YifeiZhuang merged 11 commits intogrpc:masterfrom
YifeiZhuang:orca-test-desc

Conversation

@YifeiZhuang
Copy link
Copy Markdown
Member

add cross language readme doc for orca integration test.
Next step: add internal CI for the tests

@YifeiZhuang YifeiZhuang added area/documentation release notes: no Indicates if PR should not be in release notes labels May 10, 2022
@YifeiZhuang YifeiZhuang self-assigned this May 10, 2022
@ejona86
Copy link
Copy Markdown
Member

ejona86 commented May 13, 2022

There's a related discussion to this in grpc/grpc-java#9079 . I think we need to make it a bit more generic. The approach right now is poorly suited to cross-language testing.

listener (configure load report interval to be 1s). The interop-testing client will run with a
service config to select the load balancing config (using argument `--service_config_json`), so that
it effectively uses this newly registered custom LB policy. A load report reference can be passed
from the call to the LB policy through, e.g. CallOptions, to receive metric reports.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How will the test framework interact with this load report reference to verify the resulting load reports?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test framework will fill in the reference with the load report callback API. The test case can then verify the reference has the result. I updated the doc to make it more explicit.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we have a common test framework for all languages? If so, how will the test framework fill in the reference for each language-specific client, given that each language will have a different API for this?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test framework doesn't do any assertions (other than assert return code is 0). This is non-xDS interop where we have assertions in each language. The test framework is involved to enable test_backend_metrics_load_balancer, but then it is per-language APIs for the test case to interact with that LB policy.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, okay. In that case, this makes sense. Thanks!

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea each language should

  • implement the test_backend_metrics_load_balancer in interop test client
  • implement interoptest server
  • implement test case described in test procedure.

Use

./run-test-client.sh --use_tls=false --test_case=orca_per_rpc --service_config_json='{"loadBalancingConfig":[{"test_backend_metrics_load_balancer":{}}]}'

to enable the loadbalancer. The client should pass with cross-language server: e.g. a java client and Go server runs:

 ./run-test-server.sh --use_tls=false 

@markdroth @dfawley If things look good to you, i'll merge this PR and proto change today to unblock java impl.

Comment thread doc/interop-test-descriptions.md Outdated
Comment thread doc/interop-test-descriptions.md Outdated
Comment thread doc/interop-test-descriptions.md Outdated
Comment thread doc/interop-test-descriptions.md
listener (configure load report interval to be 1s). The interop-testing client will run with a
service config to select the load balancing config (using argument `--service_config_json`), so that
it effectively uses this newly registered custom LB policy. A load report reference can be passed
from the call to the LB policy through, e.g. CallOptions, to receive metric reports.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test framework doesn't do any assertions (other than assert return code is 0). This is non-xDS interop where we have assertions in each language. The test framework is involved to enable test_backend_metrics_load_balancer, but then it is per-language APIs for the test case to interact with that LB policy.

@YifeiZhuang YifeiZhuang merged commit 98f6a3a into grpc:master May 24, 2022
@YifeiZhuang YifeiZhuang deleted the orca-test-desc branch May 24, 2022 17:48
@copybara-service copybara-service Bot added the imported Specifies if the PR has been imported to the internal repository label May 24, 2022
lidizheng pushed a commit to lidizheng/grpc that referenced this pull request May 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/documentation imported Specifies if the PR has been imported to the internal repository release notes: no Indicates if PR should not be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants