Skip to content

Commit e548679

Browse files
committed
windows test failing
1 parent 1683ffd commit e548679

File tree

6 files changed

+56
-19
lines changed

6 files changed

+56
-19
lines changed

src/main/kotlin/components/Execution.kt

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,26 @@ fun execute(command: String): String = execute(Runtime.getRuntime(), command)
1010

1111
private fun execute(runtime: Runtime, command: String): String {
1212
return try {
13-
runtime.exec(
14-
arrayOf(
15-
"/bin/bash",
16-
"-c",
17-
command
18-
)
19-
).outputString()
13+
when (getOs()) {
14+
Os.WINDOWS -> {
15+
val com = mutableListOf<String>()
16+
command.replace("\n", " ").split(" ").forEach {
17+
if (it.trim().isNotEmpty()) {
18+
com.add(it)
19+
}
20+
}
21+
runtime.exec(arrayOf("cmd", "/c", com.joinToString(" ").replace("&&", "&"))).outputString()
22+
}
23+
Os.OSX -> {
24+
runtime.exec(
25+
arrayOf(
26+
"/bin/bash",
27+
"-c",
28+
command
29+
)
30+
).outputString()
31+
}
32+
}
2033
} catch (e: IOException) {
2134
""
2235
}

src/main/kotlin/components/Extensions.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,11 @@ fun Project.createExtension(): Extension {
9494
return extension
9595
}
9696

97-
fun Process.outputString() = this.inputStream.bufferedReader().use { it.readText() }
97+
fun Process.outputString(): String {
98+
val input = this.inputStream.bufferedReader().use { it.readText() }
99+
val error = this.errorStream.bufferedReader().use { it.readText() }
100+
return if (input.isNotEmpty()) input else error
101+
}
98102

99103
fun defaultConfig(): Configuration {
100104
return Configuration("app").apply {

src/main/kotlin/components/Tasks.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,16 @@ internal fun gradleWrapper(): String = when (getOs()) {
1313
internal fun pluginBuildTask(): String = "${when (getOs()) {
1414
Os.WINDOWS -> wrapperWindows
1515
Os.OSX -> wrapperOsX
16-
}} build -d --exclude-task test"
16+
}} build -d --exclude-task test"
17+
18+
internal fun deleteFolderCommand(directory: String): String = when (getOs()) {
19+
Os.WINDOWS -> "$deleteCommandWindows $directory"
20+
Os.OSX -> "$deleteCommandOsX $directory"
21+
}
22+
23+
internal fun copyCommand(): String = when (getOs()) {
24+
Os.WINDOWS -> copyCommandWindows
25+
Os.OSX -> copyCommandOsX
26+
}
27+
28+

src/main/kotlin/components/Vars.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ internal const val winLib = "libsignKey.dll"
66
internal const val osxLib = "libsignKey.dylib"
77
internal const val wrapperOsX = "./gradlew"
88
internal const val wrapperWindows = "gradlew.bat"
9+
internal const val deleteCommandOsX = "rm -rf"
10+
internal const val deleteCommandWindows = "RD /S /Q"
11+
internal const val copyCommandOsX = "cp"
12+
internal const val copyCommandWindows = "copy"
913
internal const val emptyChar = ""
1014

1115
internal const val backupStringRes: String = "backupStringResources"
-10.5 KB
Binary file not shown.

src/test/kotlin/SCTest.kt

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ class SCTest {
1414
private val mainModuleTest = "$projectName${File.separator}$mainModule"
1515

1616
private val librarySetupTask = """
17-
cp src/main/kotlin/components/jni/$osxLib out/production/classes/$osxLib
18-
cp src/main/kotlin/components/jni/$winLib out/production/classes/$winLib
17+
${copyCommand()} src${File.separator}main${File.separator}kotlin${File.separator}components${File.separator}jni${File.separator}$osxLib out${File.separator}production${File.separator}classes${File.separator}$osxLib &&
18+
${copyCommand()} src${File.separator}main${File.separator}kotlin${File.separator}components${File.separator}jni${File.separator}$winLib out${File.separator}production${File.separator}classes${File.separator}$winLib
1919
""".trimIndent()
2020

2121
private val prepareTask = """
22-
rm -rf $projectName &&
22+
${deleteFolderCommand(projectName)} &&
2323
git clone https://github.com/StringCare/$projectName.git &&
2424
cd $projectName
2525
""".trimIndent()
@@ -82,7 +82,7 @@ class SCTest {
8282
assert(restoreFiles(projectName, mainModule).isEmpty())
8383
assert(backupFiles(projectName, defaultConfig().apply {
8484
stringFiles.add("strings_extra.xml")
85-
srcFolders.add("src/other_source")
85+
srcFolders.add("src${File.separator}other_source")
8686
}).isNotEmpty())
8787
assert(restoreFiles(projectName, mainModule).isNotEmpty())
8888
}
@@ -101,13 +101,15 @@ class SCTest {
101101
@Test
102102
fun `08 - (PLUGIN) obfuscate string values`() {
103103
signingReportTask.runCommand { _, report ->
104+
val key = report.extractFingerprint()
105+
assert(key.isNotEmpty())
104106
val files = locateFiles(projectName, defaultConfig())
105107
files.forEach { file ->
106108
val entities = parseXML(file.file)
107109
entities.forEach { entity ->
108110
val obfuscated = obfuscate(
109111
mainModuleTest,
110-
report.extractFingerprint(),
112+
key,
111113
entity
112114
)
113115
assert(obfuscated.value != entity.value)
@@ -119,23 +121,25 @@ class SCTest {
119121
@Test
120122
fun `09 - (PLUGIN) obfuscate and reveal string values`() {
121123
signingReportTask.runCommand { _, report ->
124+
val key = report.extractFingerprint()
125+
assert(key.isNotEmpty())
122126
val files = locateFiles(projectName, defaultConfig().apply {
123127
stringFiles.add("strings_extra.xml")
124-
srcFolders.add("src/other_source")
128+
srcFolders.add("src${File.separator}other_source")
125129
})
126130
files.forEach { file ->
127131
val entities = parseXML(file.file)
128132
entities.forEach { entity ->
129133
val obfuscated = obfuscate(
130134
mainModuleTest,
131-
report.extractFingerprint(),
135+
key,
132136
entity
133137
)
134138
assert(obfuscated.value != entity.value)
135139

136140
val original = reveal(
137141
mainModuleTest,
138-
report.extractFingerprint(),
142+
key,
139143
obfuscated
140144
)
141145

@@ -172,7 +176,7 @@ class SCTest {
172176
signingReportTask.runCommand { _, report ->
173177
val files = locateFiles(projectName, defaultConfig().apply {
174178
stringFiles.add("strings_extra.xml")
175-
srcFolders.add("src/other_source")
179+
srcFolders.add("src${File.separator}other_source")
176180
})
177181
files.forEach { file ->
178182
val entities = parseXML(file.file)
@@ -181,7 +185,7 @@ class SCTest {
181185
}
182186
val filesObfuscated = locateFiles(projectName, defaultConfig().apply {
183187
stringFiles.add("strings_extra.xml")
184-
srcFolders.add("src/other_source")
188+
srcFolders.add("src${File.separator}other_source")
185189
})
186190
filesObfuscated.forEach { file ->
187191
val entities = parseXML(file.file)

0 commit comments

Comments
 (0)