Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
test: added module for check recompilation of test app
  • Loading branch information
skylot committed Oct 10, 2015
1 parent ef8a685 commit 1118236
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
@@ -0,0 +1,3 @@
[submodule "jadx-test-app/test-app"]
path = jadx-test-app/test-app
url = git://github.com/skylot/jadx-test-app.git
3 changes: 3 additions & 0 deletions build.gradle
Expand Up @@ -93,6 +93,9 @@ task dist(dependsOn: pack) {
task samples(dependsOn: 'jadx-samples:samples') {
}

task testAppCheck(dependsOn: 'jadx-test-app:testAppCheck') {
}

task pitest(overwrite: true, dependsOn: 'jadx-core:pitest') {
}

Expand Down
14 changes: 14 additions & 0 deletions jadx-test-app/README.md
@@ -0,0 +1,14 @@
### Run jadx on test android application

This module contains build scripts for test recompilation of simple android app from:
https://github.com/skylot/jadx-test-app

For run tests type follow commands in jadx root directory:

```java
git submodule init
git submodule update
./gradlew testAppCheck
```

Note: You will need connected device or emulator for success
69 changes: 69 additions & 0 deletions jadx-test-app/build.gradle
@@ -0,0 +1,69 @@
project.ext {
testAppDir = 'test-app'
testAppTmpDir = 'test-app-tmp'

buildFile = "${testAppTmpDir}/build.gradle"
apkFile = "${testAppTmpDir}/build/outputs/apk/test-app-tmp-debug.apk"
outSrcDir = "${testAppTmpDir}/src/main/java"
outResDir = "${testAppTmpDir}/src/main"
checkTask = 'connectedCheck'
}

dependencies {
compile(project(":jadx-cli"))
}

sonarRunner {
skipProject = true
}

task deleteTmp(type:Delete) {
delete testAppTmpDir
}

task copyApp(type:Copy, dependsOn: deleteTmp) {
from testAppDir
into testAppTmpDir
}

task buildApp(type:Exec, dependsOn: copyApp) {
workingDir testAppTmpDir
commandLine "./gradlew clean build ${checkTask}".split(' ')
}

task removeSource(type:Delete, dependsOn: buildApp) {
delete "${outResDir}/**"
}

task runJadxSrc(type: JavaExec, dependsOn: removeSource) {
classpath = sourceSets.main.output + configurations.compile
main = project(':jadx-cli').mainClassName
args = ['-d', outSrcDir, '-r', apkFile, '-v']
}

task runJadxResources(type: JavaExec, dependsOn: runJadxSrc) {
classpath = sourceSets.main.output + configurations.compile
main = project(':jadx-cli').mainClassName
args = ['-d', outResDir, '-s', apkFile, '-v']
}

task decompile(type:Delete, dependsOn: runJadxResources) {
delete "${outSrcDir}/com/github/skylot/jadx/testapp/BuildConfig.java"
delete "${outSrcDir}/com/github/skylot/jadx/testapp/R.java"
}

task runChecks(type:Exec, dependsOn: decompile) {
workingDir testAppTmpDir
commandLine "./gradlew clean build ${checkTask}".split(' ')
}

task testAppCheck(dependsOn: runChecks) {
doFirst {
def buildFile = file(buildFile)
if (!buildFile.exists() || !buildFile.isFile()) {
throw new StopExecutionException("Test app not found")
}
}
}

clean.dependsOn deleteTmp
1 change: 1 addition & 0 deletions jadx-test-app/test-app
Submodule test-app added at 2f34a7
1 change: 1 addition & 0 deletions settings.gradle
Expand Up @@ -4,3 +4,4 @@ include 'jadx-core'
include 'jadx-cli'
include 'jadx-gui'
include 'jadx-samples'
include 'jadx-test-app'

0 comments on commit 1118236

Please sign in to comment.