Skip to content

Commit

Permalink
Bump version of ktlint to fix naming bug: pinterest/ktlint#1521
Browse files Browse the repository at this point in the history
Revert to extension function.
Fix warnings.
  • Loading branch information
restingbull committed Sep 16, 2022
1 parent d6a287a commit 2f734a8
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,66 +12,67 @@ import java.nio.file.Paths
import java.nio.file.SimpleFileVisitor
import java.nio.file.attribute.BasicFileAttributes

object JacocoInstrumentation {
fun JvmCompilationTask.createCoverageInstrumentedJar() {
val instrumentedClassesDirectory = Paths.get(directories.coverageMetadataClasses)
Files.createDirectories(instrumentedClassesDirectory)

internal fun JvmCompilationTask.createCoverageInstrumentedJar() {
val instrumentedClassesDirectory = Paths.get(directories.coverageMetadataClasses)
Files.createDirectories(instrumentedClassesDirectory)
val instr = Instrumenter(OfflineInstrumentationAccessGenerator())

val instr = Instrumenter(OfflineInstrumentationAccessGenerator())
instrumentRecursively(instr, instrumentedClassesDirectory, Paths.get(directories.classes))
instrumentRecursively(instr, instrumentedClassesDirectory, Paths.get(directories.javaClasses))
instrumentRecursively(
instr,
instrumentedClassesDirectory,
Paths.get(directories.generatedClasses),
)

instrumentRecursively(instr, instrumentedClassesDirectory, Paths.get(directories.classes))
instrumentRecursively(instr, instrumentedClassesDirectory, Paths.get(directories.javaClasses))
instrumentRecursively(
instr,
instrumentedClassesDirectory,
Paths.get(directories.generatedClasses),
)
val pathsForCoverage = instrumentedClassesDirectory.resolve(
"${Paths.get(outputs.jar).fileName}-paths-for-coverage.txt",
)
Files.write(
pathsForCoverage,
inputs.javaSourcesList + inputs.kotlinSourcesList,
)

val pathsForCoverage = instrumentedClassesDirectory.resolve(
"${Paths.get(outputs.jar).fileName}-paths-for-coverage.txt",
)
Files.write(
pathsForCoverage,
inputs.javaSourcesList + inputs.kotlinSourcesList,
)

JarCreator(
path = Paths.get(outputs.jar),
normalize = true,
verbose = false,
).also {
it.addDirectory(Paths.get(directories.classes))
it.addDirectory(Paths.get(directories.javaClasses))
it.addDirectory(Paths.get(directories.generatedClasses))
it.addDirectory(instrumentedClassesDirectory)
it.setJarOwner(info.label, info.bazelRuleKind)
it.execute()
}
JarCreator(
path = Paths.get(outputs.jar),
normalize = true,
verbose = false,
).also {
it.addDirectory(Paths.get(directories.classes))
it.addDirectory(Paths.get(directories.javaClasses))
it.addDirectory(Paths.get(directories.generatedClasses))
it.addDirectory(instrumentedClassesDirectory)
it.setJarOwner(info.label, info.bazelRuleKind)
it.execute()
}
}

private fun instrumentRecursively(instr: Instrumenter, metadataDir: Path, root: Path) {
val visitor = object : SimpleFileVisitor<Path>() {
override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult {
if (file.toFile().extension != "class") {
return FileVisitResult.CONTINUE
}
private fun instrumentRecursively(
instr: Instrumenter,
metadataDir: Path,
root: Path,
) {
val visitor = object : SimpleFileVisitor<Path>() {
override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult {
if (file.toFile().extension != "class") {
return FileVisitResult.CONTINUE
}

val absoluteUninstrumentedCopy = Paths.get("$file.uninstrumented")
val uninstrumentedCopy = metadataDir.resolve(root.relativize(absoluteUninstrumentedCopy))
val absoluteUninstrumentedCopy = Paths.get("$file.uninstrumented")
val uninstrumentedCopy = metadataDir.resolve(root.relativize(absoluteUninstrumentedCopy))

Files.createDirectories(uninstrumentedCopy.parent)
Files.move(file, uninstrumentedCopy)
Files.createDirectories(uninstrumentedCopy.parent)
Files.move(file, uninstrumentedCopy)

Files.newInputStream(uninstrumentedCopy).buffered().use { input ->
Files.newOutputStream(file).buffered().use { output ->
instr.instrument(input, output, file.toString())
}
Files.newInputStream(uninstrumentedCopy).buffered().use { input ->
Files.newOutputStream(file).buffered().use { output ->
instr.instrument(input, output, file.toString())
}

return FileVisitResult.CONTINUE
}

return FileVisitResult.CONTINUE
}
Files.walkFileTree(root, visitor)
}
Files.walkFileTree(root, visitor)
}
4 changes: 2 additions & 2 deletions src/main/starlark/core/repositories/versions.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ versions = struct(
IO_BAZEL_STARDOC_SHA = "5bcd62378fc5ea87936169b49245d0595c690bde41ef695ce319752cc9929c34",
BAZEL_JAVA_LAUNCHER_VERSION = "5.0.0",
PINTEREST_KTLINT = version(
version = "0.46.1",
version = "0.47.1",
url_templates = [
"https://github.com/pinterest/ktlint/releases/download/{version}/ktlint",
],
sha256 = "45c5e1104490b2f2a342d3b7ddd94898ea76e267c999100be40791ff724276ad",
sha256 = "a333ad0172369a5cd973aea83e02e8b698c06a2daac6f32925da03049aa3dce7",
),
KOTLIN_CURRENT_COMPILER_RELEASE = version(
version = "1.7.10",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*
*/
package io.bazel.kotlin.builder.tasks.jvm;
package io.bazel.kotlin.builder.tasks.jvm

import io.bazel.kotlin.builder.DirectoryType
import io.bazel.kotlin.builder.KotlinJvmTestBuilder
Expand All @@ -29,7 +29,7 @@ class KotlinBuilderJvmCoverageTest {

@Test
fun `generates coverage metadata`() {
val deps = ctx.runCompileTask(Consumer { c: KotlinJvmTestBuilder.TaskBuilder ->
ctx.runCompileTask(Consumer { c: KotlinJvmTestBuilder.TaskBuilder ->
c.addSource("KotlinClass.kt",
"""
package something
Expand All @@ -48,7 +48,7 @@ class KotlinBuilderJvmCoverageTest {

@Test
fun `generates coverage metadata for multiple Kotlin classes`() {
val deps = ctx.runCompileTask(Consumer { c: KotlinJvmTestBuilder.TaskBuilder ->
ctx.runCompileTask(Consumer { c: KotlinJvmTestBuilder.TaskBuilder ->
c.addSource("KotlinClass.kt",
"""
package something;
Expand Down

0 comments on commit 2f734a8

Please sign in to comment.