blob: 6cd9cfd448be14c58df62d6deea16876db9b7eb0 [file] [log] [blame]
// Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8;
import static org.hamcrest.CoreMatchers.containsString;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.FileUtils;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import org.hamcrest.Matcher;
public abstract class KotlinTestBase extends TestBase {
protected static final String checkParameterIsNotNullSignature =
"void kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull("
+ "java.lang.Object, java.lang.String)";
protected static final String throwParameterIsNotNullExceptionSignature =
"void kotlin.jvm.internal.Intrinsics.throwParameterIsNullException(java.lang.String)";
public static final String METADATA_DESCRIPTOR = "Lkotlin/Metadata;";
public static final String METADATA_TYPE =
DescriptorUtils.descriptorToJavaType(METADATA_DESCRIPTOR);
private static final String RSRC = "kotlinR8TestResources";
protected final KotlinTargetVersion targetVersion;
protected KotlinTestBase(KotlinTargetVersion targetVersion) {
this.targetVersion = targetVersion;
}
protected static List<Path> getKotlinFilesInTestPackage(Package pkg) throws IOException {
String folder = DescriptorUtils.getBinaryNameFromJavaType(pkg.getName());
return Files.walk(Paths.get(ToolHelper.TESTS_DIR, "java", folder))
.filter(path -> path.toString().endsWith(".kt"))
.collect(Collectors.toList());
}
protected static Path getKotlinFileInTestPackage(Package pkg, String fileName)
throws IOException {
String folder = DescriptorUtils.getBinaryNameFromJavaType(pkg.getName());
return getKotlinFileInTest(folder, fileName);
}
protected static Path getKotlinFileInTest(String folder, String fileName) {
return Paths.get(ToolHelper.TESTS_DIR, "java", folder, fileName + FileUtils.KT_EXTENSION);
}
protected static Path getKotlinFileInResource(String folder, String fileName) {
return Paths.get(ToolHelper.TESTS_DIR, RSRC, folder, fileName + FileUtils.KT_EXTENSION);
}
protected Path getKotlinJarFile(String folder) {
return Paths.get(ToolHelper.TESTS_BUILD_DIR, RSRC,
targetVersion.getFolderName(), folder + FileUtils.JAR_EXTENSION);
}
protected Path getJavaJarFile(String folder) {
return Paths.get(ToolHelper.TESTS_BUILD_DIR, RSRC,
targetVersion.getFolderName(), folder + ".java" + FileUtils.JAR_EXTENSION);
}
protected Path getMappingfile(String folder, String mappingFileName) {
return Paths.get(ToolHelper.TESTS_DIR, RSRC, folder, mappingFileName);
}
protected static Matcher<String> expectedInfoMessagesFromKotlinStdLib() {
return containsString("No VersionRequirement");
}
}