-
Notifications
You must be signed in to change notification settings - Fork 409
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DGPv2 Android integration tests (#3904)
* DGPv2 Android integration tests Create integration tests for using DGPv2 with Android projects. Additionally, create a JUnit extension for helping set up and run the tests. #### Overview - DokkaGradlePluginTestExtension is a JUnit extension for automatically configuring and re-running tests. The behaviour can be configured by providing custom GradleTestProjectInitializer (for setting up the test projects), or custom GradlePropertiesProvider (for providing custom Gradle properties). - The extension will re-run the tests multiple times with different versions. `TestedVersions.testedVersions()` provides all possible, valid combinations of versions used to run the tests. - Add JUnit `@Tag` annotations, to help organise and categorise the tests. - Add two new test projects in dokka-integration-tests/gradle/projects: it-android and it-android-compose. Each project has an `expectedData` directory containing the expected generated Dokka content. - Split GradlePropertiesBuilder into separate class, so it can be re-used in the integration tests * updated expected data * IJ exclude dokka-integration-tests/.kotlin * Add more kdoc * update assertions, use `loadConfigurationCacheReportData` util to avoid detecting CC status via an absence of log output * Skip testing AGP8 until KT-70855 is fixed * improve loadConfigurationCacheReportData, tidy assertions * rm commented out code * fix `updateProjectLocalMavenDir()` * Improve directory-contents assertion to provide much more detailed failure messages * tidy `shouldBeDirectoryWithSameContentAs` assertion * fix gradle task dependency * Improve directory comparison assertion Significantly improve comparison between directories. Currently the failure messages are too obscure, and hard to diagnose. Example: https://ge.jetbrains.com/s/vl2jgh3ivevyi/tests/task/:dokka-integration-tests:gradle:test/details/org.jetbrains.dokka.it.gradle.AndroidProjectIT/generate%20dokka%20HTML(DokkaGradleProjectRunner)%5B1%5D?top-execution=1 * comparing fix binary data * replace non-printable characters with the codepoint * tidy replaceNonPrintableWithCodepoint * try re-building to prevent CC miss on TeamCity ``` configuration cache cannot be reused because the file system entry '../../../../../../../home/teamcity/android-sdk-linux/build-tools/34.0.0/aapt' has been created. ``` * clear CC reports * clear CC reports * formatting * fix import * order properties alphabetically * Only update versions in specific files, to avoid reading and writing to lots of files * add workaround for Gradle not logging aborted tests gradle/gradle#5511 * - rename test tag annotations - Make TestedVersions more strict, with specific subclasses for the Android and AndroidCompose tests. - Split out TestedVersions generation into TestedVersionsSource. * fix Gradle version * Fix finding the annotations for the tested element by searching the parents. * fix Gradle version * Fix test assertion * Improve `shouldHaveOutcome` assertion message * Fix build cache tests
- Loading branch information
Showing
146 changed files
with
9,699 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
dokka-integration-tests/gradle/projects/it-android-compose/build.gradle.kts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
plugins { | ||
alias(libs.plugins.android.library) apply false | ||
alias(libs.plugins.kotlin.multiplatform) apply false | ||
|
||
if ("/* %{KGP_VERSION} */".startsWith("2.")) { | ||
id("org.jetbrains.kotlin.plugin.compose") version "/* %{KGP_VERSION} */" apply false | ||
} | ||
alias(libs.plugins.compose.multiplatform) apply false | ||
|
||
id("org.jetbrains.dokka") version "/* %{DGP_VERSION} */" | ||
} | ||
|
||
dependencies { | ||
dokka(project(":core")) | ||
dokka(project(":material3")) | ||
} |
45 changes: 45 additions & 0 deletions
45
dokka-integration-tests/gradle/projects/it-android-compose/core/build.gradle.kts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
plugins { | ||
alias(libs.plugins.android.library) | ||
alias(libs.plugins.kotlin.multiplatform) | ||
id("org.jetbrains.dokka") | ||
|
||
if ("/* %{KGP_VERSION} */".startsWith("2.")) { | ||
id("org.jetbrains.kotlin.plugin.compose") | ||
} | ||
alias(libs.plugins.compose.multiplatform) | ||
} | ||
|
||
group = "org.dokka.it.android.kmp" | ||
version = "1.0" | ||
|
||
android { | ||
namespace = "org.dokka.it.android.kmp" | ||
|
||
buildTypes { | ||
release { | ||
isMinifyEnabled = false | ||
proguardFiles( | ||
getDefaultProguardFile("proguard-android-optimize.txt"), | ||
"proguard-rules.pro" | ||
) | ||
} | ||
} | ||
} | ||
|
||
kotlin { | ||
jvmToolchain(17) | ||
|
||
androidTarget { | ||
publishLibraryVariants("release") | ||
} | ||
|
||
sourceSets { | ||
commonMain { | ||
dependencies { | ||
implementation(compose.runtime) | ||
implementation(compose.foundation) | ||
implementation(compose.animation) | ||
} | ||
} | ||
} | ||
} |
2 changes: 2 additions & 0 deletions
2
...gration-tests/gradle/projects/it-android-compose/core/src/androidMain/AndroidManifest.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest /> |
12 changes: 12 additions & 0 deletions
12
...tegration-tests/gradle/projects/it-android-compose/core/src/commonMain/kotlin/MenuItem.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package org.dokka.it.android.kmp.core | ||
|
||
import androidx.compose.runtime.Stable | ||
import androidx.compose.ui.graphics.vector.ImageVector | ||
|
||
@Stable | ||
public data class MenuItem( | ||
val label: String, | ||
val imageVector: ImageVector, | ||
val onClick: () -> Unit, | ||
val isImportant: Boolean, | ||
) |
103 changes: 103 additions & 0 deletions
103
dokka-integration-tests/gradle/projects/it-android-compose/expectedData/html/core/index.html
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
32 changes: 32 additions & 0 deletions
32
...tegration-tests/gradle/projects/it-android-compose/expectedData/html/core/navigation.html
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
84 changes: 84 additions & 0 deletions
84
...d-compose/expectedData/html/core/org.dokka.it.android.kmp.core/-menu-item/-menu-item.html
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.