You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.2 KiB
134 lines
4.2 KiB
pluginManagement { |
|
repositories { |
|
google() |
|
gradlePluginPortal() |
|
mavenCentral() |
|
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") |
|
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") |
|
mavenLocal() |
|
} |
|
|
|
plugins { |
|
id("org.jetbrains.compose").version(extra["compose.version"] as String) |
|
} |
|
} |
|
|
|
rootProject.name = "composable-test-cases" |
|
|
|
fun module(name: String, path: String) { |
|
include(name) |
|
val projectDir = rootDir.resolve(path).normalize().absoluteFile |
|
if (!projectDir.exists()) { |
|
throw AssertionError("file $projectDir does not exist") |
|
} |
|
project(name).projectDir = projectDir |
|
} |
|
|
|
gradle.startParameter.setContinueOnFailure(true) |
|
|
|
enum class CasesToRun(val value: String) { |
|
Default("default"), |
|
FailingJs("failingJs"), |
|
; |
|
|
|
fun isDefault() = this == Default |
|
} |
|
|
|
val casesToRun = CasesToRun.values().firstOrNull { |
|
it.value == extra["tests.casesToRun"] |
|
} ?: CasesToRun.Default |
|
|
|
|
|
val listOfFailingJsCases = (extra.properties.getOrDefault("tests.failing.kjs", "") as String).split(",") |
|
val failingJsSuffix = "failingJs" |
|
|
|
fun getFailingSuffix(testCaseName: String): String? { |
|
if (casesToRun == CasesToRun.FailingJs && |
|
listOfFailingJsCases.contains(testCaseName) |
|
) { |
|
return failingJsSuffix |
|
} |
|
return null |
|
} |
|
|
|
fun addRememberAnonymousObjTestCase(testFailingJs: Boolean = false) { |
|
val libName = ":testcase-rememberAnonymousObj-lib".let { |
|
if (testFailingJs) { |
|
it.replace("-lib", "-$failingJsSuffix-lib") |
|
} else { |
|
it |
|
} |
|
} |
|
val mainName = ":testcase-rememberAnonymousObj-main".let { |
|
if (testFailingJs) { |
|
it.replace("-main", "-$failingJsSuffix-main") |
|
} else { |
|
it |
|
} |
|
} |
|
module(libName, "testcases/rememberAnonymousObj/lib") |
|
module(mainName, "testcases/rememberAnonymousObj/main") |
|
} |
|
|
|
/** |
|
* @param name - the name of a test case |
|
* @param failingTestCaseNameSuffix - the suffix to add for a failing test case. |
|
* Each platform should have its own unique suffix. |
|
*/ |
|
fun addATestCase(name: String, failingTestCaseNameSuffix: String? = null) { |
|
val libName = ":testcase-$name-lib".let { |
|
if (failingTestCaseNameSuffix != null) { |
|
it.replace("-lib", "-$failingTestCaseNameSuffix-lib") |
|
} else { |
|
it |
|
} |
|
} |
|
val mainName = ":testcase-$name-main".let { |
|
if (failingTestCaseNameSuffix != null) { |
|
it.replace("-main", "-$failingTestCaseNameSuffix-main") |
|
} else { |
|
it |
|
} |
|
} |
|
|
|
println("adding $libName, $mainName") |
|
module(libName, "testcases/$name/lib") |
|
module(mainName, "testcases/$name/main") |
|
} |
|
|
|
include(":common") |
|
|
|
if (casesToRun.isDefault()) { |
|
module(":testcase-template-lib", "testcases/template/lib") |
|
module(":testcase-template-main", "testcases/template/main") |
|
|
|
module(":testcase-inheritance-composableInterface-lib", "testcases/inheritance/composableInterface/lib") |
|
module(":testcase-inheritance-composableInterface-main", "testcases/inheritance/composableInterface/main") |
|
|
|
module(":testcase-inheritance-funInterface-lib", "testcases/inheritance/funInterface/lib") |
|
module(":testcase-inheritance-funInterface-main", "testcases/inheritance/funInterface/main") |
|
|
|
module(":testcase-constructors-lib", "testcases/constructors/lib") |
|
module(":testcase-constructors-main", "testcases/constructors/main") |
|
|
|
module(":testcase-anonymousObjects-lib", "testcases/anonymousObjects/lib") |
|
module(":testcase-anonymousObjects-main", "testcases/anonymousObjects/main") |
|
|
|
module(":testcase-valueClass-lib", "testcases/valueClass/lib") |
|
module(":testcase-valueClass-main", "testcases/valueClass/main") |
|
|
|
module(":testcase-lambdas-lib", "testcases/lambdas/lib") |
|
module(":testcase-lambdas-main", "testcases/lambdas/main") |
|
|
|
module(":testcase-expectActual-lib", "testcases/expectActual/lib") |
|
module(":testcase-expectActual-main", "testcases/expectActual/main") |
|
} |
|
|
|
/** |
|
* Below we add modules for cases which are known to be failing at least on 1 platform. |
|
* These cases should be fixed! |
|
*/ |
|
|
|
"rememberAnonymousObj".also { |
|
addATestCase(name = it, failingTestCaseNameSuffix = getFailingSuffix(it)) |
|
}
|
|
|