JFR compatibility testing
Describe the feature
Add testing scenarios that check both forward & backward compatibilities for JFRs generated by the async-profiler
Basically use two different versions of the profiler to generate JFRs & try to read/process those JFRs, these two versions would be:
- Latest public release of the profiler
- Latest nightly release of the profiler
Currently there are no tests that check that changes on the JFR won't break backward/forward compatibility
Use Case
Make sure that newer version of the profiler are able to read/process recordings generated by previous profiler versions to guarantee backward compatibility
Check that JFRs generated by newer versions are parseable using an older version of the profiler or at the very least document in what ways the older profiler will fail to process newer JFRs (Forward compatibility)
Proposed Solution
Create a suite of tests, in which:
- Run tests using older profiler version
- Collect generated JFRs
- Read JFRs using latest profiler version to guarantee to check that it's able to correctly process it
The reverse might be done for Forward compatibility
Acknowledgements
- I may be able to implement this feature request
- This feature might incur a breaking change
Source: async-profiler/async-profiler