| // 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.compatproguard; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import com.android.tools.r8.compatproguard.CompatProguard.CompatProguardOptions; |
| import org.junit.Test; |
| |
| public class CompatProguardTest { |
| |
| private CompatProguardOptions parseArgs(String... args)throws Exception { |
| return CompatProguard.CompatProguardOptions.parse(args); |
| } |
| |
| @Test |
| public void testShortLine() throws Exception { |
| CompatProguardOptions options; |
| options = parseArgs("-"); |
| assertEquals(1, options.proguardConfig.size()); |
| } |
| |
| @Test |
| public void testProguardOptions() throws Exception { |
| CompatProguardOptions options; |
| |
| options = parseArgs("-xxx"); |
| assertEquals(1, options.proguardConfig.size()); |
| options = parseArgs("-xxx", "xxx"); |
| assertEquals(1, options.proguardConfig.size()); |
| options = parseArgs("-xxx", "-yyy"); |
| assertEquals(2, options.proguardConfig.size()); |
| options = parseArgs("-xxx", "xxx", "-yyy", "yyy"); |
| assertEquals(2, options.proguardConfig.size()); |
| } |
| |
| @Test |
| public void testInjarsAndOutput() throws Exception { |
| CompatProguardOptions options; |
| String injars = "input.jar"; |
| String output = "outputdir"; |
| options = parseArgs("-injars", injars, "--output", output); |
| assertEquals(output, options.output); |
| assertEquals(1, options.proguardConfig.size()); |
| options = parseArgs("--output", output, "-injars", injars); |
| assertEquals(1, options.proguardConfig.size()); |
| } |
| |
| @Test |
| public void testMainDexList() throws Exception { |
| CompatProguardOptions options; |
| String mainDexList = "maindexlist.txt"; |
| |
| options = parseArgs("--main-dex-list", mainDexList); |
| assertEquals(mainDexList, options.mainDexList); |
| options = parseArgs("--main-dex-list=" + mainDexList); |
| assertEquals(mainDexList, options.mainDexList); |
| options = parseArgs("--main-dex-list", mainDexList, "--minimal-main-dex"); |
| assertEquals(mainDexList, options.mainDexList); |
| options = parseArgs("--minimal-main-dex", "--main-dex-list=" + mainDexList); |
| assertEquals(mainDexList, options.mainDexList); |
| } |
| |
| @Test |
| public void testInclude() throws Exception { |
| CompatProguardOptions options; |
| |
| options = parseArgs("-include --my-include-file.txt"); |
| assertEquals(1, options.proguardConfig.size()); |
| assertEquals("-include --my-include-file.txt", options.proguardConfig.get(0)); |
| } |
| |
| @Test |
| public void testNoLocalsOption() throws Exception { |
| CompatProguardOptions options; |
| |
| options = parseArgs("--no-locals"); |
| assertEquals(0, options.proguardConfig.size()); |
| } |
| } |