| // 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.debug; |
| |
| import com.android.tools.r8.OutputMode; |
| import com.android.tools.r8.ToolHelper; |
| import com.android.tools.r8.utils.AndroidApp; |
| import java.nio.file.Path; |
| import java.nio.file.Paths; |
| import java.util.Collections; |
| import org.junit.rules.TemporaryFolder; |
| |
| /** |
| * Shared test configuration for D8 compiled resources from the "debugTestResourcesKotlin" target. |
| */ |
| class KotlinD8Config extends D8DebugTestConfig { |
| |
| public static final Path DEBUGGEE_KOTLIN_JAR = |
| Paths.get(ToolHelper.BUILD_DIR, "test", "debug_test_resources_kotlin.jar"); |
| |
| private static AndroidApp compiledResources = null; |
| |
| private static synchronized AndroidApp getCompiledResources() throws Throwable { |
| if (compiledResources == null) { |
| compiledResources = |
| D8DebugTestConfig.d8Compile( |
| Collections.singletonList(DEBUGGEE_KOTLIN_JAR), null); |
| } |
| return compiledResources; |
| } |
| |
| public KotlinD8Config(TemporaryFolder temp) { |
| super(); |
| try { |
| Path out = temp.newFolder().toPath().resolve("d8_debug_test_resources_kotlin.jar"); |
| getCompiledResources().write(out, OutputMode.DexIndexed); |
| addPaths(out); |
| } catch (Throwable e) { |
| throw new RuntimeException(e); |
| } |
| } |
| } |