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

refactor: Fix & simplify names for Corellium domain & cli #2093

Merged
merged 1 commit into from
Jul 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty
import flank.config.ConfigMap
import flank.config.emptyConfigMap
import flank.corellium.cli.run.test.android.format
import flank.corellium.cli.run.test.android.task.apkApi
import flank.corellium.cli.run.test.android.task.args
import flank.corellium.cli.run.test.android.task.config
import flank.corellium.cli.run.test.android.task.corelliumApi
import flank.corellium.cli.run.test.android.task.jUnitApi
import flank.corellium.domain.RunTestCorelliumAndroid.Args
import flank.corellium.domain.RunTestCorelliumAndroid.CompleteTests
import flank.corellium.domain.RunTestCorelliumAndroid.execute
import flank.corellium.cli.test.android.format
import flank.corellium.cli.test.android.task.apkApi
import flank.corellium.cli.test.android.task.args
import flank.corellium.cli.test.android.task.config
import flank.corellium.cli.test.android.task.corelliumApi
import flank.corellium.cli.test.android.task.jUnitApi
import flank.corellium.domain.TestAndroid.Args
import flank.corellium.domain.TestAndroid.CompleteTests
import flank.corellium.domain.TestAndroid.execute
import flank.exection.parallel.Parallel
import flank.exection.parallel.ParallelState
import flank.exection.parallel.invoke
Expand All @@ -34,11 +34,11 @@ import picocli.CommandLine
header = ["Run tests on Corellium Android instances"],
usageHelpAutoWidth = true
)
class RunTestCorelliumAndroidCommand :
class TestAndroidCommand :
Runnable {

class Context : Parallel.Context() {
val command by !RunTestCorelliumAndroidCommand
val command by !TestAndroidCommand
val config by -Config
}

Expand Down Expand Up @@ -159,7 +159,7 @@ class RunTestCorelliumAndroidCommand :

override fun run() {
val seed: ParallelState = mapOf(
RunTestCorelliumAndroidCommand to this,
TestAndroidCommand to this,
Parallel.Logger to format.output,
)
runBlocking {
Expand All @@ -169,9 +169,9 @@ class RunTestCorelliumAndroidCommand :
}
}

internal companion object : Parallel.Type<RunTestCorelliumAndroidCommand> {
internal companion object : Parallel.Type<TestAndroidCommand> {

val context = Parallel.Function(RunTestCorelliumAndroidCommand::Context)
val context = Parallel.Function(TestAndroidCommand::Context)

// Needs to be evaluated lazy due to strange NullPointerException when RunTestCorelliumAndroidCommandTest is run after ArgsKtTest.
val resolve by lazy {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,46 +1,46 @@
package flank.corellium.cli.run.test.android
package flank.corellium.cli.test.android

import flank.corellium.api.AndroidApps
import flank.corellium.api.AndroidInstance
import flank.corellium.api.CorelliumApi
import flank.corellium.cli.RunTestCorelliumAndroidCommand
import flank.corellium.domain.RunTestCorelliumAndroid
import flank.corellium.cli.TestAndroidCommand
import flank.corellium.domain.TestAndroid
import flank.exection.parallel.type
import flank.instrument.log.Instrument
import flank.log.Event
import flank.log.buildFormatter

internal val format = buildFormatter<String> {

Event.Start(RunTestCorelliumAndroidCommand.Config) { "* Loading configuration" }
Event.Start(RunTestCorelliumAndroid.Args) { "* Preparing arguments" }
Event.Start(TestAndroidCommand.Config) { "* Loading configuration" }
Event.Start(TestAndroid.Args) { "* Preparing arguments" }
Event.Start(type<CorelliumApi>()) { "* Resolving Corellium API" }
Event.Start(RunTestCorelliumAndroid.Authorize) { "* Authorizing" }
Event.Start(RunTestCorelliumAndroid.Authorize) { "* Authorizing" }
Event.Start(RunTestCorelliumAndroid.CleanUp) { "* Cleaning instances" }
Event.Start(RunTestCorelliumAndroid.OutputDir) { "* Preparing output directory" }
Event.Start(RunTestCorelliumAndroid.DumpShards) { "* Dumping shards" }
Event.Start(RunTestCorelliumAndroid.ExecuteTests) { "* Executing tests" }
Event.Start(RunTestCorelliumAndroid.CompleteTests) { "* Finish" }
Event.Start(RunTestCorelliumAndroid.GenerateReport) { "* Generating report" }
Event.Start(RunTestCorelliumAndroid.InstallApks) { "* Installing apks" }
Event.Start(RunTestCorelliumAndroid.InvokeDevices) { "* Invoking devices" }
Event.Start(RunTestCorelliumAndroid.LoadPreviousDurations) { "* Obtaining previous test cases durations" }
Event.Start(RunTestCorelliumAndroid.ParseApkInfo) { "* Parsing apk info" }
Event.Start(RunTestCorelliumAndroid.ParseTestCases) { "* Parsing test cases" }
Event.Start(RunTestCorelliumAndroid.PrepareShards) { "* Calculating shards" }
Event.Start(TestAndroid.Authorize) { "* Authorizing" }
Event.Start(TestAndroid.Authorize) { "* Authorizing" }
Event.Start(TestAndroid.CleanUp) { "* Cleaning instances" }
Event.Start(TestAndroid.OutputDir) { "* Preparing output directory" }
Event.Start(TestAndroid.DumpShards) { "* Dumping shards" }
Event.Start(TestAndroid.ExecuteTests) { "* Executing tests" }
Event.Start(TestAndroid.CompleteTests) { "* Finish" }
Event.Start(TestAndroid.GenerateReport) { "* Generating report" }
Event.Start(TestAndroid.InstallApks) { "* Installing apks" }
Event.Start(TestAndroid.InvokeDevices) { "* Invoking devices" }
Event.Start(TestAndroid.LoadPreviousDurations) { "* Obtaining previous test cases durations" }
Event.Start(TestAndroid.ParseApkInfo) { "* Parsing apk info" }
Event.Start(TestAndroid.ParseTestCases) { "* Parsing test cases" }
Event.Start(TestAndroid.PrepareShards) { "* Calculating shards" }

RunTestCorelliumAndroid.LoadPreviousDurations.Searching { "Searching in $this JUnitReport.xml files..." }
RunTestCorelliumAndroid.LoadPreviousDurations.Summary::class { "For $required test cases, found $matching matching and $unknown unknown" }
RunTestCorelliumAndroid.InstallApks.Status {
TestAndroid.LoadPreviousDurations.Searching { "Searching in $this JUnitReport.xml files..." }
TestAndroid.LoadPreviousDurations.Summary::class { "For $required test cases, found $matching matching and $unknown unknown" }
TestAndroid.InstallApks.Status {
when (this) {
is AndroidApps.Event.Connecting.Agent -> "$instanceId: Connecting agent"
is AndroidApps.Event.Connecting.Console -> "$instanceId: Connecting console"
is AndroidApps.Event.Apk.Uploading -> "$instanceId: Uploading apk $path"
is AndroidApps.Event.Apk.Installing -> "$instanceId: Installing apk $path"
}
}
RunTestCorelliumAndroid.InvokeDevices.Status {
TestAndroid.InvokeDevices.Status {
when (this) {
is AndroidInstance.Event.GettingAlreadyCreated -> "Getting instances already created by flank."
is AndroidInstance.Event.Obtained -> "Obtained $size already created devices"
Expand All @@ -52,26 +52,26 @@ internal val format = buildFormatter<String> {
is AndroidInstance.Event.AllReady -> "All instances invoked and ready to use."
}
}
RunTestCorelliumAndroid.ExecuteTests.Plan {
TestAndroid.ExecuteTests.Plan {
instances.toList().joinToString("\n") { (id, commands) ->
"$id:\n" + commands.joinToString("\n") { " - $it" }
}
}
RunTestCorelliumAndroid.ExecuteTests.Status::class {
TestAndroid.ExecuteTests.Status::class {
when (val status = status) {
is Instrument.Status -> "$id: " + status.details.run { "$className#$testName" } + " - " + status.code
else -> null
}
}
RunTestCorelliumAndroid.ExecuteTests.Error::class {
TestAndroid.ExecuteTests.Error::class {
"""
Error while parsing results from instance $id.
For details check $logFile lines $lines.
""".trimIndent() + cause.stackTraceToString()
}
RunTestCorelliumAndroid.Created { "Created $path" }
RunTestCorelliumAndroid.AlreadyExist { "Already exist $path" }
TestAndroid.Created { "Created $path" }
TestAndroid.AlreadyExist { "Already exist $path" }

match { it as? String } to { this }
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package flank.corellium.cli.run.test.android.task
package flank.corellium.cli.test.android.task

import flank.apk.Apk
import flank.exection.parallel.type
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package flank.corellium.cli.run.test.android.task
package flank.corellium.cli.test.android.task

import flank.config.loadYaml
import flank.corellium.cli.RunTestCorelliumAndroidCommand.Companion.context
import flank.corellium.cli.RunTestCorelliumAndroidCommand.Config
import flank.corellium.domain.RunTestCorelliumAndroid.Args
import flank.corellium.cli.TestAndroidCommand.Companion.context
import flank.corellium.cli.TestAndroidCommand.Config
import flank.corellium.domain.TestAndroid.Args
import flank.exection.parallel.from
import flank.exection.parallel.using

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package flank.corellium.cli.run.test.android.task
package flank.corellium.cli.test.android.task

import flank.config.loadYaml
import flank.config.merge
import flank.corellium.cli.RunTestCorelliumAndroidCommand.Companion.context
import flank.corellium.cli.RunTestCorelliumAndroidCommand.Config
import flank.corellium.domain.RunTestCorelliumAndroid
import flank.corellium.cli.TestAndroidCommand.Companion.context
import flank.corellium.cli.TestAndroidCommand.Config
import flank.corellium.domain.TestAndroid
import flank.exection.parallel.using

internal val config = Config using context {
Expand All @@ -16,12 +16,12 @@ internal val config = Config using context {
}

private fun defaultConfig() = Config().apply {
project = RunTestCorelliumAndroid.Args.DEFAULT_PROJECT
auth = RunTestCorelliumAndroid.Args.AUTH_FILE
this += RunTestCorelliumAndroid.Args.Default
project = TestAndroid.Args.DEFAULT_PROJECT
auth = TestAndroid.Args.AUTH_FILE
this += TestAndroid.Args.Default
}

private operator fun Config.plusAssign(args: RunTestCorelliumAndroid.Args) {
private operator fun Config.plusAssign(args: TestAndroid.Args) {
apks = args.apks
testTargets = args.testTargets
maxTestShards = args.maxShardsCount
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package flank.corellium.cli.run.test.android.task
package flank.corellium.cli.test.android.task

import flank.corellium.api.CorelliumApi
import flank.corellium.cli.RunTestCorelliumAndroidCommand.Companion.context
import flank.corellium.cli.RunTestCorelliumAndroidCommand.Config
import flank.corellium.cli.TestAndroidCommand.Companion.context
import flank.corellium.cli.TestAndroidCommand.Config
import flank.corellium.corelliumApi
import flank.exection.parallel.from
import flank.exection.parallel.type
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package flank.corellium.cli.run.test.android.task
package flank.corellium.cli.test.android.task

import flank.exection.parallel.type
import flank.exection.parallel.using
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package flank.corellium.cli

import flank.corellium.cli.RunTestCorelliumAndroidCommand.Companion.resolve
import flank.corellium.cli.TestAndroidCommand.Companion.resolve
import flank.exection.parallel.ParallelState
import flank.exection.parallel.validate
import org.junit.Test
Expand All @@ -10,7 +10,7 @@ class RunTestCorelliumAndroidCommandTest {
@Test
fun validate() {
val initial: ParallelState = mapOf(
RunTestCorelliumAndroidCommand to RunTestCorelliumAndroidCommand()
TestAndroidCommand to TestAndroidCommand()
)

resolve.validate(initial)
Expand Down

This file was deleted.

Loading