blob: a3ce92b7c96dc8c86cf5a360dac09717b836142d [file] [log] [blame]
// Copyright (c) 2017, 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.regress.b63935662;
import com.android.tools.r8.R8FullTestBuilder;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.utils.AndroidApiLevel;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
public class Regress63935662 extends TestBase {
private TestParameters parameters;
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
.withAllRuntimes()
.withApiLevelsStartingAtIncluding(AndroidApiLevel.N)
.build();
}
public Regress63935662(TestParameters parameters) {
this.parameters = parameters;
}
void run(R8FullTestBuilder testBuilder, Class<?> mainClass) throws Exception {
testBuilder
.addKeepRuleFiles()
.allowAccessModification()
.addDontObfuscate()
.setMinApi(parameters.getApiLevel())
.compile()
.run(parameters.getRuntime(), mainClass)
.assertSuccessWithOutput(runOnJava(mainClass));
}
@Test
public void test() throws Exception {
Class<?> mainClass = TestClass.class;
List<Class<?>> app =
ImmutableList.of(
TestClass.Top.class,
TestClass.Left.class,
TestClass.Right.class,
TestClass.Bottom.class,
TestClass.X1.class,
TestClass.X2.class,
TestClass.X3.class,
TestClass.X4.class,
TestClass.X5.class,
mainClass);
run(
testForR8(parameters.getBackend())
.addProgramClasses(app)
.addKeepMainRule(mainClass)
.enableNoHorizontalClassMergingAnnotations(),
mainClass);
}
@Test
public void test2() throws Exception {
Class<?> mainClass = TestFromBug.class;
List<Class<?>> app =
ImmutableList.of(
TestFromBug.Map.class,
TestFromBug.AbstractMap.class,
TestFromBug.ConcurrentMap.class,
TestFromBug.ConcurrentHashMap.class,
mainClass);
run(
testForR8(parameters.getBackend()).addProgramClasses(app).addKeepMainRule(mainClass),
mainClass);
}
}