Skip to content
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

feat: Integrate parallel execution in Corellium domain #2072

Merged
merged 4 commits into from
Jul 19, 2021

Conversation

jan-goral
Copy link
Contributor

@jan-goral jan-goral commented Jul 7, 2021

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.
  • Tasks (previously Steps) flank.corellium.domain.run.test.android.step - Adjust to parallel execution API by defining dynamic signature for each task.
  • Update unit tests and benchmarks.

: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.
  • Unit tests are split into separated files according to changes in RunTestCorelliumAndroidCommand.

Test Plan

How do we know the code works?

Build flank:

. .env
flankScripts assemble flank -d

Run the following command:

flank corellium test android run -c="./test_configs/flank-corellium.yml"

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

  • Documented
  • Unit tested

@jan-goral jan-goral self-assigned this Jul 7, 2021
@jan-goral jan-goral force-pushed the 2002_Integrate_parallel_execution branch from 9e6a382 to d18bbbd Compare July 7, 2021 15:23
@jan-goral jan-goral force-pushed the 2002_Integrate_parallel_execution branch 5 times, most recently from a843202 to c18e4e7 Compare July 13, 2021 08:41
@github-actions
Copy link
Contributor

github-actions bot commented Jul 13, 2021

Timestamp: 2021-07-16 07:07:02
Buildscan url for ubuntu-workflow run 1036587842
https://gradle.com/s/ceft62ckgp6oe

@jan-goral jan-goral marked this pull request as ready for review July 13, 2021 11:06
@bootstraponline bootstraponline force-pushed the 2002_Integrate_parallel_execution branch 2 times, most recently from 328f03a to 5f135c9 Compare July 14, 2021 17:22
@bootstraponline bootstraponline force-pushed the 2002_Integrate_parallel_execution branch from 5f135c9 to 898c8b6 Compare July 16, 2021 06:58
Copy link
Contributor

@adamfilipow92 adamfilipow92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 👍

@mergify mergify bot merged commit 03a4aec into master Jul 19, 2021
@mergify mergify bot deleted the 2002_Integrate_parallel_execution branch July 19, 2021 14:16
@github-actions github-actions bot locked and limited conversation to collaborators Jul 19, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integrate parallel execution
3 participants