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

Replaced Ktlint with Detekt+Ktlin wrapper #452

Merged
merged 1 commit into from Jan 10, 2019
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
521 changes: 521 additions & 0 deletions config/detekt.yml

Large diffs are not rendered by default.

24 changes: 18 additions & 6 deletions test_runner/build.gradle.kts
Expand Up @@ -9,11 +9,21 @@ plugins {
application
jacoco
kotlin("jvm") version Versions.KOTLIN
// https://github.com/JLLeitschuh/ktlint-gradle/releases
// ./gradlew ktlintFormat
// ./gradlew ktlintCheck
// ./gradlew ktlintApplyToIdea
id("org.jlleitschuh.gradle.ktlint") version "6.3.1"

id("io.gitlab.arturbosch.detekt") version Versions.DETEKT
}

detekt {
input = files("src/main/kotlin", "src/test/kotlin")
config = files("../config/detekt.yml")
reports {
xml {
enabled = false
}
html {
enabled = true
}
}
}

// http://www.eclemma.org/jacoco/
Expand Down Expand Up @@ -129,6 +139,8 @@ dependencies {
// todo: move to testImplementation once DI is implemented https://github.com/TestArmada/flank/issues/248
// https://search.maven.org/search?q=a:google-cloud-nio%20g:com.google.cloud
compile("com.google.cloud:google-cloud-nio:0.75.0-alpha")

detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:${Versions.DETEKT}")
}

// Fix Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.hash.Hashing.crc32c()Lcom/google/common/hash/HashFunction;
Expand Down Expand Up @@ -161,4 +173,4 @@ tasks.withType<KotlinCompile> {

// https://github.com/gradle/kotlin-dsl/blob/master/samples/task-dependencies/build.gradle.kts#L41
// https://github.com/codecov/example-gradle/blob/master/build.gradle#L25
tasks["check"].dependsOn(tasks["jacocoTestReport"])
tasks["check"].dependsOn(tasks["jacocoTestReport"], tasks["detekt"])
2 changes: 2 additions & 0 deletions test_runner/buildSrc/src/main/java/Deps.java
Expand Up @@ -6,6 +6,8 @@ abstract class Versions {
public static final String KOTLIN_COROUTINES = "1.1.0";
// https://github.com/FasterXML/jackson-core/releases
public static final String JACKSON = "2.9.8";
// https://github.com/arturbosch/detekt
public static final String DETEKT = "1.0.0-RC12";
}

@SuppressWarnings("unused")
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/android/AndroidCatalog.kt
@@ -1,8 +1,8 @@
package ftl.android

import com.google.api.services.testing.model.AndroidDevice
import ftl.http.executeWithRetry
import ftl.gc.GcTesting
import ftl.http.executeWithRetry

/**
* Contains lists of possible Android device and version ids, as well as checks
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt
Expand Up @@ -28,9 +28,9 @@ import ftl.config.FtlConstants.useMock
import ftl.filter.TestFilters
import ftl.gc.GcStorage
import ftl.util.Utils
import kotlinx.coroutines.runBlocking
import java.nio.file.Files
import java.nio.file.Path
import kotlinx.coroutines.runBlocking

// set default values, init properties, etc.
class AndroidArgs(
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/args/ArgsHelper.kt
Expand Up @@ -112,7 +112,7 @@ object ArgsHelper {
if (bucket.startsWith("test-lab-")) return bucket

val storage = StorageOptions.newBuilder().setProjectId(projectId).build().service
val bucketLabel = mapOf(Pair("flank", ""))
val bucketLabel = mapOf("flank" to "")
val storageLocation = "us-central1"

val bucketListOption = Storage.BucketListOption.prefix(bucket)
Expand Down
Expand Up @@ -2,9 +2,9 @@ package ftl.cli.firebase.test.android

import ftl.args.AndroidArgs
import ftl.doctor.Doctor.validateYaml
import java.nio.file.Paths
import picocli.CommandLine.Command
import picocli.CommandLine.Option
import java.nio.file.Paths

@Command(
name = "doctor",
Expand Down
Expand Up @@ -8,10 +8,10 @@ import ftl.config.FtlConstants.defaultAndroidVersion
import ftl.config.FtlConstants.defaultLocale
import ftl.config.FtlConstants.defaultOrientation
import ftl.run.TestRunner
import java.nio.file.Paths
import kotlinx.coroutines.runBlocking
import picocli.CommandLine.Command
import picocli.CommandLine.Option
import java.nio.file.Paths

@Command(
name = "run",
Expand Down
Expand Up @@ -3,9 +3,9 @@ package ftl.cli.firebase.test.ios
import ftl.args.IosArgs
import ftl.doctor.Doctor.checkIosCatalog
import ftl.doctor.Doctor.validateYaml
import java.nio.file.Paths
import picocli.CommandLine.Command
import picocli.CommandLine.Option
import java.nio.file.Paths

@Command(
name = "doctor",
Expand Down
Expand Up @@ -6,10 +6,10 @@ import ftl.config.FtlConstants
import ftl.config.FtlConstants.defaultIosModel
import ftl.config.FtlConstants.defaultIosVersion
import ftl.run.TestRunner
import java.nio.file.Paths
import kotlinx.coroutines.runBlocking
import picocli.CommandLine.Command
import picocli.CommandLine.Option
import java.nio.file.Paths

@Command(
name = "run",
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/ios/IosCatalog.kt
@@ -1,7 +1,7 @@
package ftl.ios

import ftl.http.executeWithRetry
import ftl.gc.GcTesting
import ftl.http.executeWithRetry

/**
* Validates iOS device model and version
Expand Down
4 changes: 2 additions & 2 deletions test_runner/src/main/kotlin/ftl/reports/HtmlErrorReport.kt
Expand Up @@ -66,15 +66,15 @@ object HtmlErrorReport : IReport {
}
}

return Pair(groupList, itemList)
return groupList to itemList
}

private fun reactJson(testSuites: JUnitTestResult): Pair<String, String>? {
val groupItemList = groupItemList(testSuites) ?: return null

val groupJson = gson.toJson(groupItemList.first)
val itemJson = gson.toJson(groupItemList.second)
return Pair(groupJson, itemJson)
return groupJson to itemJson
}

override fun run(matrices: MatrixMap, testSuite: JUnitTestResult?, printToStdout: Boolean) {
Expand Down
Expand Up @@ -9,8 +9,8 @@ import ftl.reports.HtmlErrorReport
import ftl.reports.JUnitReport
import ftl.reports.MatrixResultsReport
import ftl.reports.xml.model.JUnitTestResult
import ftl.reports.xml.parseOneSuiteXml
import ftl.reports.xml.parseAllSuitesXml
import ftl.reports.xml.parseOneSuiteXml
import ftl.util.Artifacts
import ftl.util.resolveLocalRunPath
import java.io.File
Expand Down
Expand Up @@ -3,6 +3,7 @@ package ftl.reports.xml.model
import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty

@Suppress("UnusedPrivateClass")
private class FilterNotNull {
override fun equals(other: Any?): Boolean {
// other is null = present
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/run/AndroidTestRunner.kt
Expand Up @@ -76,6 +76,6 @@ object AndroidTestRunner {
}
}

Pair(appApkGcsPath.await(), testApkGcsPath.await())
appApkGcsPath.await() to testApkGcsPath.await()
}
}
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/run/GenericTestRunner.kt
Expand Up @@ -15,7 +15,7 @@ object GenericTestRunner {
TestRunner.assertMockUrl()

val resultsDir = args.resultsDir ?: Utils.uniqueObjectName()
return Pair(stopwatch, resultsDir)
return stopwatch to resultsDir
}

fun afterRunTests(
Expand Down
6 changes: 3 additions & 3 deletions test_runner/src/main/kotlin/ftl/run/TestRunner.kt
Expand Up @@ -27,15 +27,15 @@ import ftl.util.MatrixState
import ftl.util.StopWatch
import ftl.util.Utils
import ftl.util.Utils.fatalError
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths

object TestRunner {
private val gson = GsonBuilder().setPrettyPrinting().create()!!
Expand Down
3 changes: 2 additions & 1 deletion test_runner/src/main/kotlin/ftl/util/Utils.kt
Expand Up @@ -34,6 +34,7 @@ object Utils {
try {
Thread.sleep(ofSeconds(seconds).toMillis())
} catch (e: Exception) {
System.err.println(e)
}
}

Expand Down Expand Up @@ -86,7 +87,7 @@ object Utils {
val random = Random()
// a-z: 97 - 122
// A-Z: 65 - 90
for (i in 0..3) {
repeat(4) {
val ascii = random.nextInt(26)
var letter = (ascii + 'a'.toInt()).toChar()

Expand Down
4 changes: 2 additions & 2 deletions test_runner/src/test/kotlin/ftl/args/AndroidArgsFileTest.kt
Expand Up @@ -8,6 +8,7 @@ import ftl.args.yml.GcloudYml
import ftl.args.yml.GcloudYmlParams
import ftl.config.Device
import ftl.test.util.FlankTestRunner
import ftl.test.util.TestHelper.absolutePath
import ftl.test.util.TestHelper.assert
import ftl.test.util.TestHelper.getPath
import ftl.test.util.TestHelper.getString
Expand All @@ -17,7 +18,6 @@ import org.junit.contrib.java.lang.system.SystemErrRule
import org.junit.contrib.java.lang.system.SystemOutRule
import org.junit.rules.ExpectedException
import org.junit.runner.RunWith
import ftl.test.util.TestHelper.absolutePath

@RunWith(FlankTestRunner::class)
class AndroidArgsFileTest {
Expand Down Expand Up @@ -69,7 +69,7 @@ class AndroidArgsFileTest {

assert(autoGoogleLogin, true)
assert(useOrchestrator, true)
assert(environmentVariables, mapOf(Pair("clearPackageData", "true")))
assert(environmentVariables, mapOf("clearPackageData" to "true"))
assert(directoriesToPull, listOf(directoryToPull))
assert(resultsBucket, "tmp_bucket_2")
assert(performanceMetrics, true)
Expand Down
Expand Up @@ -3,11 +3,11 @@ package ftl.args
import com.google.common.truth.Truth
import ftl.test.util.FlankTestRunner
import ftl.test.util.TestHelper.absolutePath
import java.io.File
import org.junit.Rule
import org.junit.Test
import org.junit.contrib.java.lang.system.EnvironmentVariables
import org.junit.runner.RunWith
import java.io.File

@RunWith(FlankTestRunner::class)
class ArgsHelperFilePathTest {
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/test/kotlin/ftl/args/ArgsHelperTest.kt
Expand Up @@ -13,13 +13,13 @@ import ftl.shard.TestShard
import ftl.shard.stringShards
import ftl.test.util.FlankTestRunner
import ftl.test.util.TestHelper.absolutePath
import java.io.File
import org.junit.Rule
import org.junit.Test
import org.junit.contrib.java.lang.system.EnvironmentVariables
import org.junit.contrib.java.lang.system.SystemErrRule
import org.junit.rules.ExpectedException
import org.junit.runner.RunWith
import java.io.File

@RunWith(FlankTestRunner::class)
class ArgsHelperTest {
Expand Down
Expand Up @@ -3,14 +3,14 @@ package ftl.cli.firebase
import com.google.common.truth.Truth
import com.google.common.truth.Truth.assertThat
import ftl.test.util.FlankTestRunner
import java.nio.file.Files
import java.nio.file.Paths
import org.junit.Rule
import org.junit.Test
import org.junit.contrib.java.lang.system.ExpectedSystemExit
import org.junit.contrib.java.lang.system.SystemOutRule
import org.junit.runner.RunWith
import picocli.CommandLine
import java.nio.file.Files
import java.nio.file.Paths

@RunWith(FlankTestRunner::class)
class RefreshCommandTest {
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/test/kotlin/ftl/doctor/DoctorTest.kt
Expand Up @@ -4,9 +4,9 @@ import com.google.common.truth.Truth.assertThat
import ftl.args.AndroidArgs
import ftl.args.IosArgs
import ftl.test.util.FlankTestRunner
import java.nio.file.Paths
import org.junit.Test
import org.junit.runner.RunWith
import java.nio.file.Paths

@RunWith(FlankTestRunner::class)
class DoctorTest {
Expand Down
4 changes: 2 additions & 2 deletions test_runner/src/test/kotlin/ftl/ios/XctestrunTest.kt
Expand Up @@ -4,10 +4,10 @@ import com.dd.plist.NSDictionary
import com.google.common.truth.Truth.assertThat
import ftl.test.util.FlankTestRunner
import ftl.test.util.TestArtifact.fixturesPath
import org.junit.Test
import org.junit.runner.RunWith
import java.nio.file.Files
import java.nio.file.Paths
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(FlankTestRunner::class)
class XctestrunTest {
Expand Down
4 changes: 2 additions & 2 deletions test_runner/src/test/kotlin/ftl/json/SavedMatrixTest.kt
Expand Up @@ -37,8 +37,8 @@ class SavedMatrixTest {
return testExecution
}

private val mockFileName = "mockFileName"
private val mockBucket = "mockBucket"
private const val mockFileName = "mockFileName"
private const val mockBucket = "mockBucket"
private val mockGcsPath = "$mockBucket/$mockFileName"

fun createResultsStorage(): ResultStorage {
Expand Down
Expand Up @@ -2,8 +2,8 @@ package ftl.reports

import com.google.common.truth.Truth.assertThat
import ftl.reports.xml.JUnitXmlTest
import ftl.reports.xml.parseOneSuiteXml
import ftl.reports.xml.parseAllSuitesXml
import ftl.reports.xml.parseOneSuiteXml
import org.junit.Test

class HtmlErrorReportTest {
Expand Down
@@ -1,8 +1,8 @@
package ftl.reports.xml

import com.google.common.truth.Truth.assertThat
import org.junit.Test
import java.nio.file.Paths
import org.junit.Test

class JUnitXmlTest {

Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/test/kotlin/ftl/run/TestRunnerTest.kt
Expand Up @@ -3,10 +3,10 @@ package ftl.run
import ftl.args.AndroidArgs
import ftl.args.IosArgs
import ftl.test.util.FlankTestRunner
import java.nio.file.Paths
import kotlinx.coroutines.runBlocking
import org.junit.Test
import org.junit.runner.RunWith
import java.nio.file.Paths

@RunWith(FlankTestRunner::class)
class TestRunnerTest {
Expand Down
4 changes: 2 additions & 2 deletions test_runner/src/test/kotlin/ftl/shard/ShardTest.kt
Expand Up @@ -7,12 +7,12 @@ import ftl.reports.xml.model.JUnitTestCase
import ftl.reports.xml.model.JUnitTestResult
import ftl.reports.xml.model.JUnitTestSuite
import ftl.test.util.FlankTestRunner
import java.util.concurrent.TimeUnit
import kotlin.system.measureNanoTime
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
import java.util.concurrent.TimeUnit
import kotlin.system.measureNanoTime

@RunWith(FlankTestRunner::class)
class ShardTest {
Expand Down
Expand Up @@ -2,8 +2,8 @@ package ftl.test.util

import ftl.config.FtlConstants
import ftl.util.Bash
import org.junit.runners.BlockJUnit4ClassRunner
import java.net.BindException
import org.junit.runners.BlockJUnit4ClassRunner

class FlankTestRunner(klass: Class<*>) : BlockJUnit4ClassRunner(klass) {

Expand Down