You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enabling testing of 2.0 file format features (#20109)
The issue we have in our tests (mostly end-to-end tests) is that we are not testing new capabilities that are either enabled or will be enabled by customers as part of 2.0 timeframe. Example of the features are:
1. Id Compressor
2. op compression
3. op chunking
4. op grouping
Successful solution here will have these properties:
1. We will enable all the features in our tests that are possible to enable, in order to get best coverage
- i.e. in tests that use only 2.0, all the recent features will be enabled.
3. At the same time, we will reduce usage of such features in tests to a level that the minimum runtime version understands.
- I.e. in tests that uses 1.3 directly, or mixes 1.3 and 2.0, we will disable all the features that 1.3 does not understand.
The obvious question to ask - are we losing too much of coverage for when these features are off?
I'd say no, as
- Any test combos that use a mix of 1.3 & 2.0 still test it
- When options are off, we are (ideally, not guaranteed) should get to well know state that was already tested (before such features were added). There are no guarantees here, but there are even less guarantees for these features to be working when they are On, as that's a lot of new code.
Please note that this question is orthogonal to a question - should each feature in question here be properly tested by dedicated UT with on & off states. The answer is - absolutely yes, but that's not enough.
Here are bugs found and already fixed thanks to this work (I also hit first two bugs independently while stress testing unrelated piece of code that used ID compressor):
1. #20089
2. #20080
3. #20111
4. #20115
As for results:
- Initial commit (for this PR) has comments describing how many tests are failing. That was 2 weeks back or so.
- Rerunning it today (with merging rebasing to latest main, which includes first 2 commits/PRs mentioned above) shows smaller number of failures. I expect that the PRs I've mentioned above (that I merged this week) are addressing some of the issues we are seeing here (but I have not validated that).
- I'll keep adding PRs to the list with bugfixes as I identify issues and fixes.
This is just a prototype.
I think the next steps are:
1. Investigate all the failures and fix all the production / test bugs that this direction finds.
- Or possibly - learn that direction has a flaw.
2. Expose by container runtime package a default config & max config for testing
5. Test packages use above if available, and not hard code options in test code.
6. We need to fix AzureClient not to use Immediate Flush mode, and approach it in exactly same way as the rest of runtime options (in terms of testing / flighting / making it eventually a reality)
0 commit comments