diff options
author | Ian Zerny <zerny@google.com> | 2017-10-26 13:36:14 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-10-26 13:36:14 +0000 |
commit | bc8be4d8a8438ebd0be73fe655e160e22da3be9d (patch) | |
tree | bf673bdf67ec542a3a59977056ae396b172e7443 /src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java | |
parent | 4d22d2d18bab390754a423972ffc2a7b47fbde79 (diff) | |
parent | f76614b69a9a5cdf865087797546add35401ab07 (diff) | |
download | r8-bc8be4d8a8438ebd0be73fe655e160e22da3be9d.tar.gz |
Merge "Define distinct access-flag types for classes, methods and fields."
Diffstat (limited to 'src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java')
-rw-r--r-- | src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java index 6dc19aa5a..d119423d8 100644 --- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java +++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java @@ -14,8 +14,10 @@ import static org.junit.Assert.fail; import com.android.tools.r8.DiagnosticsHandler; import com.android.tools.r8.TestBase; import com.android.tools.r8.ToolHelper; -import com.android.tools.r8.graph.DexAccessFlags; +import com.android.tools.r8.graph.ClassAccessFlags; import com.android.tools.r8.graph.DexItemFactory; +import com.android.tools.r8.graph.FieldAccessFlags; +import com.android.tools.r8.graph.MethodAccessFlags; import com.android.tools.r8.utils.DefaultDiagnosticsHandler; import com.android.tools.r8.utils.FileUtils; import com.android.tools.r8.utils.InternalOptions.PackageObfuscationMode; @@ -224,33 +226,39 @@ public class ProguardConfigurationParserTest extends TestBase { List<ProguardConfigurationRule> rules = parser.getConfig().getRules(); assertEquals(1, rules.size()); ProguardConfigurationRule rule = rules.get(0); - DexAccessFlags publicAndFinalFlags = new DexAccessFlags(0); + ClassAccessFlags publicAndFinalFlags = ClassAccessFlags.fromSharedAccessFlags(0); publicAndFinalFlags.setPublic(); publicAndFinalFlags.setFinal(); - assertTrue(rule.getClassAccessFlags().containsNoneOf(publicAndFinalFlags)); - assertTrue(rule.getNegatedClassAccessFlags().containsAllOf(publicAndFinalFlags)); - DexAccessFlags abstractFlags = new DexAccessFlags(0); + assertTrue(rule.getClassAccessFlags().containsNone(publicAndFinalFlags)); + assertTrue(rule.getNegatedClassAccessFlags().containsAll(publicAndFinalFlags)); + ClassAccessFlags abstractFlags = ClassAccessFlags.fromSharedAccessFlags(0); abstractFlags.setAbstract(); - assertTrue(rule.getClassAccessFlags().containsAllOf(abstractFlags)); - assertTrue(rule.getNegatedClassAccessFlags().containsNoneOf(abstractFlags)); + assertTrue(rule.getClassAccessFlags().containsAll(abstractFlags)); + assertTrue(rule.getNegatedClassAccessFlags().containsNone(abstractFlags)); for (ProguardMemberRule member : rule.getMemberRules()) { if (member.getRuleType() == ProguardMemberType.ALL_FIELDS) { - DexAccessFlags publicFlags = new DexAccessFlags(0); - publicAndFinalFlags.setPublic(); - assertTrue(member.getAccessFlags().containsAllOf(publicFlags)); - assertTrue(member.getNegatedAccessFlags().containsNoneOf(publicFlags)); - DexAccessFlags staticFlags = new DexAccessFlags(0); + FieldAccessFlags publicFlags = FieldAccessFlags.fromSharedAccessFlags(0); + publicFlags.setPublic(); + assertTrue(member.getAccessFlags().containsAll(publicFlags)); + assertTrue(member.getNegatedAccessFlags().containsNone(publicFlags)); + FieldAccessFlags staticFlags = FieldAccessFlags.fromSharedAccessFlags(0); staticFlags.setStatic(); - assertTrue(member.getAccessFlags().containsNoneOf(staticFlags)); - assertTrue(member.getNegatedAccessFlags().containsAllOf(staticFlags)); + assertTrue(member.getAccessFlags().containsNone(staticFlags)); + assertTrue(member.getNegatedAccessFlags().containsAll(staticFlags)); } else { assertTrue(member.getRuleType() == ProguardMemberType.ALL_METHODS); - DexAccessFlags publicProtectedVolatileFlags = new DexAccessFlags(0); - publicProtectedVolatileFlags.setPublic(); - publicProtectedVolatileFlags.setProtected(); - publicProtectedVolatileFlags.setVolatile(); - assertTrue(member.getAccessFlags().containsNoneOf(publicProtectedVolatileFlags)); - assertTrue(member.getNegatedAccessFlags().containsAllOf(publicProtectedVolatileFlags)); + + MethodAccessFlags publicNativeFlags = MethodAccessFlags.fromSharedAccessFlags(0, false); + publicNativeFlags.setPublic(); + publicNativeFlags.setNative(); + assertTrue(member.getAccessFlags().containsAll(publicNativeFlags)); + assertFalse(member.getNegatedAccessFlags().containsNone(publicNativeFlags)); + + MethodAccessFlags protectedNativeFlags = MethodAccessFlags.fromSharedAccessFlags(0, false); + protectedNativeFlags.setProtected(); + protectedNativeFlags.setNative(); + assertTrue(member.getAccessFlags().containsAll(protectedNativeFlags)); + assertFalse(member.getNegatedAccessFlags().containsNone(protectedNativeFlags)); } } } |