blob: cf2be5918e903667d934a5ba3d4279882d61b9fb [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.resolution;
import com.android.tools.r8.AsmTestBase;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.DexVm.Version;
import com.android.tools.r8.VmTestRunner;
import com.android.tools.r8.VmTestRunner.IgnoreIfVmOlderOrEqualThan;
import com.android.tools.r8.resolution.singletarget.Main;
import com.android.tools.r8.resolution.singletarget.one.AbstractSubClass;
import com.android.tools.r8.resolution.singletarget.one.AbstractTopClass;
import com.android.tools.r8.resolution.singletarget.one.InterfaceWithDefault;
import com.android.tools.r8.resolution.singletarget.one.IrrelevantInterfaceWithDefaultDump;
import com.android.tools.r8.resolution.singletarget.one.SubSubClassOne;
import com.android.tools.r8.resolution.singletarget.one.SubSubClassThree;
import com.android.tools.r8.resolution.singletarget.one.SubSubClassTwo;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(VmTestRunner.class)
public class SingleTargetExecutionTest extends AsmTestBase {
public static List<Class> CLASSES = ImmutableList.of(
InterfaceWithDefault.class,
AbstractTopClass.class,
AbstractSubClass.class,
SubSubClassOne.class,
SubSubClassTwo.class,
SubSubClassThree.class,
Main.class
);
public static List<byte[]> ASM_CLASSES = ImmutableList.of(
getBytesFromAsmClass(IrrelevantInterfaceWithDefaultDump::dump)
);
@Test
// TODO(b/72208584) The desugared version of this test masks ICCE.
@IgnoreIfVmOlderOrEqualThan(Version.V7_0_0)
public void runSingleTargetTest() throws Exception {
List<byte[]> allBytes = new ArrayList<>();
allBytes.addAll(ASM_CLASSES);
for (Class clazz : CLASSES) {
allBytes.add(ToolHelper.getClassAsBytes(clazz));
}
ensureSameOutput(Main.class.getCanonicalName(),
ToolHelper.getMinApiLevelForDexVm(),
allBytes.toArray(new byte[allBytes.size()][]));
}
}