diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt index a6abf59a1b8..f485d4d781f 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt @@ -15,6 +15,7 @@ import java.util.jar.JarEntry import java.util.jar.JarOutputStream import java.util.jar.Manifest import kotlin.script.experimental.jvm.util.classPathFromTypicalResourceUrls +import kotlin.script.experimental.jvm.util.classpathFromClass import kotlin.script.experimental.jvm.util.classpathFromClassloader import kotlin.script.experimental.jvm.util.scriptCompilationClasspathFromContextOrNull @@ -80,6 +81,13 @@ class ClassPathTest : TestCase() { tempDir.deleteRecursively() } } + + @Test + fun testClasspathFromClass() { + val cpFromThis = classpathFromClass(this::class) + val expectedSuffix = "classes/kotlin/test" + assertTrue("Path should end with $expectedSuffix, got: $cpFromThis", cpFromThis!!.first().path.endsWith(expectedSuffix)) + } } private val emulatedCollectionFiles = arrayOf( diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/util/jvmClasspathUtil.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/util/jvmClasspathUtil.kt index f64ee59e9e4..6ba5e6bd538 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/util/jvmClasspathUtil.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/util/jvmClasspathUtil.kt @@ -118,7 +118,7 @@ internal fun ClassLoader.rawClassPathFromKeyResourcePath(keyResourcePath: String keyResourcePathDepth = keyResourcePath.trim('/').count { it == '/' } } var root = file - for (i in 1..keyResourcePathDepth) { + for (i in 0..keyResourcePathDepth) { root = root.parentFile } root