├── .gitignore ├── .idea ├── gradle.xml ├── kotlinc.xml ├── migrations.xml ├── misc.xml ├── other.xml ├── vcs.xml └── workspace.xml ├── README.md ├── androidplugin ├── build.gradle.kts └── src │ └── main │ └── java │ └── dev │ └── oianmol │ └── opentestlab │ └── tasks │ ├── AndroidTestDeviceFarmTask.kt │ ├── DeviceFarmPlugin.kt │ ├── OpenTestLabExtension.kt │ ├── TestLabPullReportTask.kt │ ├── getCurrentGitBranchName.kt │ └── runCatchingCancellable.kt ├── build.gradle.kts ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── orchestrator-1.4.1.apk ├── protos ├── build.gradle.kts └── src │ └── main │ └── proto │ ├── device_farm.proto │ ├── device_farm_service.proto │ ├── report_management.proto │ └── test_execution.proto ├── sampleandroidapp ├── .gitignore ├── .idea │ ├── .gitignore │ ├── androidTestResultsUserPreferences.xml │ ├── compiler.xml │ ├── deploymentTargetSelector.xml │ ├── gradle.xml │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── kotlinc.xml │ ├── migrations.xml │ ├── misc.xml │ ├── other.xml │ └── vcs.xml ├── app │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── dev │ │ │ └── oianmol │ │ │ └── sampleandroidapp │ │ │ ├── MainActivityTest.kt │ │ │ ├── rules │ │ │ ├── InstrumentationTestingUtils.kt │ │ │ └── Logcat.kt │ │ │ └── runner │ │ │ ├── OpenAndroidTestRunListener.kt │ │ │ ├── TestSuite.kt │ │ │ └── TestSuiteXmlGen.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── dev │ │ │ │ └── oianmol │ │ │ │ └── sampleandroidapp │ │ │ │ ├── MainActivity.kt │ │ │ │ └── ui │ │ │ │ └── theme │ │ │ │ ├── Color.kt │ │ │ │ ├── Theme.kt │ │ │ │ └── Type.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ │ └── xml │ │ │ ├── backup_rules.xml │ │ │ └── data_extraction_rules.xml │ │ └── test │ │ └── java │ │ └── dev │ │ └── oianmol │ │ └── sampleandroidapp │ │ └── ExampleUnitTest.kt ├── build.gradle.kts ├── gradle.properties ├── gradle │ ├── libs.versions.toml │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle.kts ├── settings.gradle.kts ├── src └── main │ ├── kotlin │ ├── Main.kt │ └── dev │ │ └── oianmol │ │ └── opentestlab │ │ ├── Coroutine+Extensions.kt │ │ └── android │ │ ├── devicefarm │ │ ├── Device.kt │ │ ├── DeviceAvailabilityStore.kt │ │ ├── DeviceDiscovery.kt │ │ ├── DeviceFarmService.kt │ │ └── cli │ │ │ ├── AABToAPKConverter.kt │ │ │ ├── Adb.kt │ │ │ ├── AdbPathFinder.kt │ │ │ └── CommandLine.kt │ │ ├── reporting │ │ └── DeviceFarmReportManagementService.kt │ │ └── testexec │ │ ├── DeviceFarmTestExecScope.kt │ │ ├── TestExecScope.kt │ │ ├── TestExecutionService.kt │ │ ├── TestExecutionTaskSpec.kt │ │ ├── commandrunner │ │ └── DeviceCommandRunner.kt │ │ ├── resultreader │ │ ├── DeviceTestResultReader.kt │ │ └── utils │ │ │ ├── XmlTestSuite.kt │ │ │ └── kotlinXmlMapper.kt │ │ └── testrunner │ │ └── ITestRunner.kt │ └── resources │ ├── orchestrator-1.4.1.apk │ └── test-services-1.4.2.apk └── test-services-1.4.2.apk /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | !**/src/main/**/build/ 5 | !**/src/test/**/build/ 6 | 7 | ### IntelliJ IDEA ### 8 | .idea/modules.xml 9 | .idea/jarRepositories.xml 10 | .idea/compiler.xml 11 | .idea/libraries/ 12 | *.iws 13 | *.iml 14 | *.ipr 15 | out/ 16 | !**/src/main/**/out/ 17 | !**/src/test/**/out/ 18 | 19 | ### Eclipse ### 20 | .apt_generated 21 | .classpath 22 | .factorypath 23 | .project 24 | .settings 25 | .springBeans 26 | .sts4-cache 27 | bin/ 28 | !**/src/main/**/bin/ 29 | !**/src/test/**/bin/ 30 | 31 | ### NetBeans ### 32 | /nbproject/private/ 33 | /nbbuild/ 34 | /dist/ 35 | /nbdist/ 36 | /.nb-gradle/ 37 | 38 | ### VS Code ### 39 | .vscode/ 40 | 41 | ### Mac OS ### 42 | .DS_Store 43 | local.properties -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/migrations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | -------------------------------------------------------------------------------- /.idea/other.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 262 | 263 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 |