Fail compilation if we run non optimized resource shrinking in partial

Change-Id: I397c9676f2301e02e8b977a2384700a791c8a003
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 903a9bd..13ef084 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -782,6 +782,10 @@
       if (forceProguardCompatibility) {
         reporter.error("Partial shrinking does not support Proguard compatibility mode");
       }
+      if (androidResourceProvider != null
+          && !resourceShrinkerConfiguration.isOptimizedShrinking()) {
+        reporter.error("Partial shrinking only supports optimized resource shrinking");
+      }
     }
 
     private void validateProguardConfiguration(
diff --git a/src/test/java/com/android/tools/r8/androidresources/SimpleNoCodeReferenceAndroidResourceTest.java b/src/test/java/com/android/tools/r8/androidresources/SimpleNoCodeReferenceAndroidResourceTest.java
index db652c9..8e3a5e9 100644
--- a/src/test/java/com/android/tools/r8/androidresources/SimpleNoCodeReferenceAndroidResourceTest.java
+++ b/src/test/java/com/android/tools/r8/androidresources/SimpleNoCodeReferenceAndroidResourceTest.java
@@ -8,19 +8,22 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 
+import com.android.tools.r8.R8TestBuilder;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.androidresources.AndroidResourceTestingUtils.AndroidTestResource;
 import com.android.tools.r8.androidresources.AndroidResourceTestingUtils.AndroidTestResourceBuilder;
 import com.android.tools.r8.androidresources.AndroidResourceTestingUtils.ResourceTableInspector;
+import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.FileUtils;
 import com.android.tools.r8.utils.ZipUtils;
 import java.io.IOException;
 import java.nio.charset.Charset;
 import java.nio.file.Path;
 import java.util.Arrays;
+import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -33,17 +36,24 @@
   @Parameter(0)
   public TestParameters parameters;
 
-  @Parameters(name = "{0}")
-  public static TestParametersCollection parameters() {
-    return getTestParameters()
-        .withDefaultDexRuntime()
-        .withAllApiLevels()
-        .withIncludeAllPartialCompilation()
-        .build();
+  @Parameter(1)
+  public boolean optimized;
+
+  @Parameters(name = "{0}, elementType: {1}")
+  public static List<Object[]> data() {
+    return buildParameters(
+        getTestParameters()
+            .withDefaultDexRuntime()
+            .withAllApiLevels()
+            .withIncludeAllPartialCompilation()
+            .build(),
+        BooleanUtils.values());
   }
 
   @Test
   public void testR8() throws Exception {
+    // We don't support running R8Partial with non optimized resource shrinking.
+    assumeTrue(optimized || parameters.getPartialCompilationTestParameters().isNone());
     String manifestPath = "AndroidManifest.xml";
     String resourcePath = "resources.pb";
     String pngPath = "res/drawable/foo.png";
@@ -60,6 +70,7 @@
         .addInnerClasses(getClass())
         .setMinApi(parameters)
         .addAndroidResources(testResource, output)
+        .applyIf(optimized, R8TestBuilder::enableOptimizedShrinking)
         .addKeepMainRule(FooBar.class)
         .compile()
         .inspectShrunkenResources(