Shade in kotlin-build-common-test

This commit is contained in:
Alexey Tsvetkov
2016-05-31 21:07:37 +03:00
parent 5fead88ced
commit 5161b6bfe0
2 changed files with 15 additions and 10 deletions
@@ -16,9 +16,6 @@
package org.jetbrains.kotlin.incremental.testingUtils package org.jetbrains.kotlin.incremental.testingUtils
import com.google.common.collect.Sets
import com.google.common.hash.Hashing
import com.google.common.io.Files
import com.google.protobuf.ExtensionRegistry import com.google.protobuf.ExtensionRegistry
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.incremental.LocalFileKotlinClass import org.jetbrains.kotlin.incremental.LocalFileKotlinClass
@@ -36,6 +33,7 @@ import java.io.File
import java.io.PrintWriter import java.io.PrintWriter
import java.io.StringWriter import java.io.StringWriter
import java.util.* import java.util.*
import java.util.zip.CRC32
import kotlin.comparisons.compareBy import kotlin.comparisons.compareBy
// Set this to true if you want to dump all bytecode (test will fail in this case) // Set this to true if you want to dump all bytecode (test will fail in this case)
@@ -45,7 +43,7 @@ fun assertEqualDirectories(expected: File, actual: File, forgiveExtraFiles: Bool
val pathsInExpected = getAllRelativePaths(expected) val pathsInExpected = getAllRelativePaths(expected)
val pathsInActual = getAllRelativePaths(actual) val pathsInActual = getAllRelativePaths(actual)
val commonPaths = Sets.intersection(pathsInExpected, pathsInActual) val commonPaths = pathsInExpected.intersect(pathsInActual)
val changedPaths = commonPaths val changedPaths = commonPaths
.filter { DUMP_ALL || !Arrays.equals(File(expected, it).readBytes(), File(actual, it).readBytes()) } .filter { DUMP_ALL || !Arrays.equals(File(expected, it).readBytes(), File(actual, it).readBytes()) }
.sorted() .sorted()
@@ -71,7 +69,11 @@ fun assertEqualDirectories(expected: File, actual: File, forgiveExtraFiles: Bool
Assert.assertEquals(expectedString, actualString) Assert.assertEquals(expectedString, actualString)
} }
private fun File.hash() = Files.hash(this, Hashing.crc32()) private fun File.checksumString(): String {
val crc32 = CRC32()
crc32.update(this.readBytes())
return java.lang.Long.toHexString(crc32.value)
}
private fun getDirectoryString(dir: File, interestingPaths: List<String>): String { private fun getDirectoryString(dir: File, interestingPaths: List<String>): String {
val buf = StringBuilder() val buf = StringBuilder()
@@ -93,7 +95,7 @@ private fun getDirectoryString(dir: File, interestingPaths: List<String>): Strin
} }
} }
else { else {
p.println(child.name, " ", child.hash()) p.println(child.name, " ", child.checksumString())
} }
} }
+7 -4
View File
@@ -675,25 +675,28 @@
<pathelement path="${bootstrap.reflect}"/> <pathelement path="${bootstrap.reflect}"/>
<pathelement path="${bootstrap.kotlin.test}"/> <pathelement path="${bootstrap.kotlin.test}"/>
<pathelement path="${idea.sdk}/lib/junit-4.12.jar"/> <pathelement path="${idea.sdk}/lib/junit-4.12.jar"/>
<pathelement path="${idea.sdk}/lib/guava-17.0.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-build-common.jar"/> <pathelement path="${kotlin-home}/lib/kotlin-build-common.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/> <pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
<pathelement path="${protobuf.jar}"/> <pathelement path="${protobuf.jar}"/>
</classpath> </classpath>
</javac2> </javac2>
<jar destfile="${kotlin-home}/lib/kotlin-build-common-test.jar"> <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="dependencies/jarjar.jar"/>
<jarjar jarfile="${kotlin-home}/lib/kotlin-build-common-test.jar">
<fileset dir="${output}/classes/kotlin-build-common-test"/> <fileset dir="${output}/classes/kotlin-build-common-test"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/> <zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<zipfileset src="${protobuf.jar}"/>
<rule pattern="com.google.**" result="org.jetbrains.kotlin.com.google.@1"/>
<rule pattern="com.intellij.**" result="org.jetbrains.kotlin.com.intellij.@1"/>
<manifest> <manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/> <attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/> <attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.build.common}"/> <attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.build.common}"/>
<attribute name="Implementation-Version" value="${build.number}"/> <attribute name="Implementation-Version" value="${build.number}"/>
</manifest> </manifest>
</jar> </jarjar>
</target> </target>
<target name="daemon-client"> <target name="daemon-client">