blob: 7621522273da60ca49274493f89a57c9b9519a0f [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.shaking;
import static org.junit.Assert.assertEquals;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.utils.FileUtils;
import com.google.common.base.Charsets;
import com.google.common.collect.ImmutableList;
import java.nio.file.Path;
import org.junit.Test;
class PrintConfigurationTestClass {
public static void main(String[] args) {
}
}
public class PrintConfigurationTest extends TestBase {
@Test
public void testSingleCOnfiguration() throws Exception {
Class mainClass = PrintConfigurationTestClass.class;
String proguardConfig = keepMainProguardConfiguration(mainClass);
Path printConfigurationFile = temp.newFile().toPath();
proguardConfig += "\n-printconfiguration " + printConfigurationFile.toString();
compileWithR8(ImmutableList.of(mainClass), proguardConfig);
assertEquals(proguardConfig, FileUtils.readTextFile(printConfigurationFile, Charsets.UTF_8));
}
@Test
public void testIncludeFile() throws Exception {
Class mainClass = PrintConfigurationTestClass.class;
String includeProguardConfig = keepMainProguardConfiguration(mainClass);
Path includeFile = temp.newFile().toPath();
FileUtils.writeTextFile(includeFile, includeProguardConfig);
Path printConfigurationFile = temp.newFile().toPath();
String proguardConfig = String.join(System.lineSeparator(), ImmutableList.of(
"-include " + includeFile.toString(),
"-printconfiguration " + printConfigurationFile.toString()
));
String expected = String.join(System.lineSeparator(), ImmutableList.of(
"", // The -include line turns into an empty line.
includeProguardConfig,
"", // Writing to the file adds an ending line separator
"", // An empty line is emitted between two parts
"-printconfiguration " + printConfigurationFile.toString()
));
compileWithR8(ImmutableList.of(mainClass), proguardConfig);
assertEquals(expected, FileUtils.readTextFile(printConfigurationFile, Charsets.UTF_8));
}
}