feat: Integrate parallel execution in Corellium domain #2072
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2002
This PR integrates the Flank-Corellium domain with a parallel execution tool and is rather like refactor.
There are no changes in logic, produced results, or logs.
The most noticeable change from the end-user perspective is the tasks execution order is automatically calculated so can be different than previously, also some tasks will run in parallel.
Review
This PR is affecting the following modules according to
:tool:execution:parallel
API requirements::corellium:domain
RunTestCorelliumAndroid
- Remove redundant State structure and make the Context a source of both arguments and state values.flank.corellium.domain.run.test.android.step
- Adjust to parallel execution API by defining dynamic signature for each task.:corellium:cli
RunTestCorelliumAndroidCommand
- Simplify by moving dependency declaration outside of file.flank.corellium.cli.run.test.android.task
- Use parallel execution tool for dynamic dependency resolution, define dedicated task for each dependency type.flank.corellium.cli.run.test.android.FormatKt
- Move structural log formatter into dedicated file.RunTestCorelliumAndroidCommand
.Test Plan
Build flank:
. .env flankScripts assemble flank -d
Run the following command:
Then expect similar results to those from the master branch.
The most visible change will be, that some tasks can be run in a different order.
The order can change between executions, for the tasks that are run in parallel.
Checklist