[http] Initial codec splitting with test parametrization#10591
[http] Initial codec splitting with test parametrization#10591yanavlasov merged 61 commits intoenvoyproxy:masterfrom
Conversation
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
|
Some questions:
|
|
@asraa very quick comment: I don't think we should use config for picking between legacy/exception. It's an implementation detail. Can we just use runtime like we typically do for this? I think the default should be the new code. |
Yeah will do -- I'll remove it from config and add a runtime switch with default Legacy. Should upstream/downstream be separate switch? If there's just one "use_legacy" switch, I'd run tests with legacy on/off, not with different combos of upstream/downstream legacy choices. I'm happier doing that. Much easier to plumb |
Yes +1, let's just keep it simple. Also, FWIW, I think the default should be new/no exceptions vs. legacy. I don't really think these changes are scary enough to warrant default legacy, but I don't feel super strongly about it if you and @alyssawilk feel otherwise. |
|
I think as long as people can opt out and we warn there's a series of high risk changes (stick in the release notes as we add the runtime flag) coming we can default on. We can get more conservative if the tests prove to not be sufficient for this sort of refactor change. |
|
Gotcha! Will plumb that through and push again with the runtime flip. |
|
+1 on runtime vs. config. |
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
|
Before I start -- instead of TEST_P'ing over a bool to |
|
@asraa how many tests files vs. individual TEST_F are we talking about? |
|
In test/integration: 504 tests individual tests, 49 integration test classes that would need to be parametrized, 42 test files Mostly worried for extensibility and requiring that anyone adding integration tests makes sure to parametrize it |
|
Hmmm. Brainstorming simpler options, what if we had the default option set
in a #define, and ran all the tests is non-default mode in one of the
builds (maybe the one that runs with deprecated options fatal), and then
only do a few tests in both A and B modes?
It would mean we didn't have comprehensive coverage (asan and tsan) for all
integration tests, but they'd all run in both modes.
…On Tue, Mar 31, 2020 at 2:40 PM asraa ***@***.***> wrote:
In test/integration: 504 tests individual tests, 49 integration test
classes that would need to be parametrized, 42 test files
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#10591 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AELALPIUCOAYRO6VNHYMVV3RKI2LBANCNFSM4LXWE3RA>
.
|
I like the idea of a running them with a separate build that runs with a Line 232 in 016e92d I can parametrize over the other two tests since they're one and done things ( |
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
|
Merged master, fixed clang-tidy, and will check the diff in CI time with this commit. |
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
alyssawilk
left a comment
There was a problem hiding this comment.
LGTM, but let's definitely get a non-googler sign off on this one! :-)
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
|
@mattklein123 When you have a chance, could you please take a look? Or any other non-googler maintainer :) Summary of updates:
|
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
|
Clang tidy seems to be off, flagging gtest macros with invalid casing. |
…oyproxy#10591)" This reverts commit 568b759. Signed-off-by: Lizan Zhou <lizan@tetrate.io>
…10591) This just introduces plumbing and clones codecs for a legacy versions. There is no changes to the codecs at this point (the files are just duplicated and the namespace Legacy is used). Users can set which codecs are used at runtime via the feature new_codec_behavior. This will be the case for O(4-6 weeks) while the change to new no-exception codecs are pushed (see issue linked) to the new codecs. Format scripts check that h/1 header and source, h/2 header and source, and h/2 codec tests are kept in sync to enforce that devs who make changes to one codec port them to the old one. Devs will need to update the diff if they are making a change that exists in one and not the other. The format script will alert them on what to change in the diff script. Signed-off-by: Asra Ali <asraa@google.com> Signed-off-by: Kevin Baichoo <kbaichoo@google.com>
…oyproxy#10591)" (envoyproxy#12142) This reverts commit 568b759. Signed-off-by: Lizan Zhou <lizan@tetrate.io> Signed-off-by: Kevin Baichoo <kbaichoo@google.com>
…10591) This just introduces plumbing and clones codecs for a legacy versions. There is no changes to the codecs at this point (the files are just duplicated and the namespace Legacy is used). Users can set which codecs are used at runtime via the feature new_codec_behavior. This will be the case for O(4-6 weeks) while the change to new no-exception codecs are pushed (see issue linked) to the new codecs. Format scripts check that h/1 header and source, h/2 header and source, and h/2 codec tests are kept in sync to enforce that devs who make changes to one codec port them to the old one. Devs will need to update the diff if they are making a change that exists in one and not the other. The format script will alert them on what to change in the diff script. Signed-off-by: Asra Ali <asraa@google.com> Signed-off-by: scheler <santosh.cheler@appdynamics.com>
…oyproxy#10591)" (envoyproxy#12142) This reverts commit 568b759. Signed-off-by: Lizan Zhou <lizan@tetrate.io> Signed-off-by: scheler <santosh.cheler@appdynamics.com>
Commit Description:
This just introduces plumbing and clones codecs for a legacy versions.
There is no changes to the codecs at this point (the files are just duplicated and the namespace
Legacyis used). Users can set which codecs are used at runtime via the featurenew_codec_behavior. This will be the case for O(4-6 weeks) while the change to new no-exception codecs are pushed (see issue linked) to the new codecs.Format scripts check that h/1 header and source, h/2 header and source, and h/2 codec tests are kept in sync to enforce that devs who make changes to one codec port them to the old one. Devs will need to update the diff if they are making a change that exists in one and not the other. The format script will alert them on what to change in the diff script.
Risk Level: Medium. No-op for behavior, but high because it branches and splits codecs.
Testing:
Release Notes: Added release note
Part of #10878