-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Restructure EXTENSIONS/WINDOWS_EXTENSIONS #10365
Conversation
actually, that error message was from a different attempt, the actual message we want to get past is:
it seems we don't properly understand |
Hello @lizan this corresponds to what we discussed many months ago, refactoring the inclusion/exclusion of tests in a consistent way between Windows, PPC, etc etc. Any guidance you can offer is appreciated. We should also consider that extension_name itself could be a name list, consisting of the several different extensions each required by a given integration test, but I'm happy to get beyond the current select() confusion first. |
"//bazel:linux_ppc": envoy_all_extensions(PPC_SKIP_TARGETS), | ||
"//conditions:default": envoy_all_extensions(), | ||
}) | ||
if not extension_name in extensions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This, unfortunately, isn't compatible with how select()
works today.
The call to select()
doesn't immediately evaluate to a value, that decision only happens when the "SelectObject" returned by select()
is used as a parameter to a rule. bazelbuild/bazel#8419 might provide some more insights to the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's our understanding as well. Guidance/workarounds are appreciated, that's why we've shared this non-working PR. It ties into #7903
This pull request has been automatically marked as stale because it has not had activity in the last 7 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
unstale |
Mentioned in slack, but I think the closest way to restructure this, but still allow it to work is to not inspect the def envoy_extension_cc_test(
name,
extension_name,
**kwargs):
actual_rule = envoy_cc_test(name, **kwargs)
windows_rule = actual_rule
ppc_rule = actual_rule
if extension_name in WINDOWS_SKIP_TARGETS:
windows_rule = []
if extension_name in PPC_SKIP_TARGETS:
ppc_rule = []
return select({
"//bazel:windows_x86_64": windows_rule,
"//bazel:linux_ppc": ppc_rule,
"//conditions:default": actual_rule,
}) At this point |
fails to actually filter the extensions when building extensions tests e.g. building //test/extensions/filters/http/adaptive_concurrency/concurrency_controller/... does not filter anything Co-authored-by: William A Rowe Jr <[email protected]>
just to close the loop on this context, the suggestion above got us close but didn't quite work b/c whenever a macro that generates a rule is invoked, the rule is put into the build graph, rules are side-effect generators instead, we have simply whittled down the list of extensions that do not compile on Windows (to 4) and are skipping tests that use these extensions on Windows with the tag |
This pull request has been automatically marked as stale because it has not had activity in the last 7 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
Since this went off into the weeds, we'll close this proposal for now, awaiting lizan's vision of how this might be restructured. A workaround for four broken tracer extensions on win32 is sufficient for now. |
Description:
This select() logic is not working, looking for #bazel help to structure
this correctly.
Risk Level: low
Testing:
Fails on msvc/gcc, trying to work around
Docs Changes: n/a
Release Notes: n/a