< prev index next >

test/jdk/java/lang/reflect/AccessFlag/VersionedLocationsTest.java

Print this page

277 
278     private static void testLatestMatch() {
279         // Verify accessFlag.locations() and
280         // accessFlag.locations(ClassFileFormatVersion.latest()) are
281         // consistent
282         var LATEST = ClassFileFormatVersion.latest();
283         for (var accessFlag : AccessFlag.values()) {
284             var locationSet = accessFlag.locations();
285             var locationLatestSet = accessFlag.locations(LATEST);
286             if (!locationSet.equals(locationLatestSet)) {
287                 throw new RuntimeException("Unequal location sets for " + accessFlag);
288             }
289         }
290     }
291 
292     private static void testFlagVersionConsistency() {
293         for (var flag : AccessFlag.values()) {
294             for (var location : AccessFlag.Location.values()) {
295                 if (location.flags().contains(flag) != flag.locations().contains(location)) {
296                     throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
297                             "flag %s and location %s are inconsistent for the latest version"));
298                 }
299             }
300         }
301         for (var cffv : ClassFileFormatVersion.values()) {
302             for (var flag : AccessFlag.values()) {
303                 for (var location : AccessFlag.Location.values()) {
304                     if (location.flags(cffv).contains(flag) != flag.locations(cffv).contains(location)) {
305                         throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
306                                 "flag %s and location %s are inconsistent for class file version %s"));
307                     }
308                 }
309             }
310         }
311     }
312 
313     private static void testLocationMaskFlagConsistency() {
314         for (var location : AccessFlag.Location.values()) {
315             if (!flagsAndMaskMatch(location.flags(), location.flagsMask())) {
316                 throw new RuntimeException(String.format("Flags and mask mismatch for %s", location));
317             }
318             for (var cffv : ClassFileFormatVersion.values()) {
319                 if (!flagsAndMaskMatch(location.flags(cffv), location.flagsMask(cffv))) {
320                     throw new RuntimeException(String.format("Flags and mask mismatch for %s in %s", location, cffv));
321                 }
322             }
323         }
324     }
325 
326     private static boolean flagsAndMaskMatch(Set<AccessFlag> flags, int mask) {

277 
278     private static void testLatestMatch() {
279         // Verify accessFlag.locations() and
280         // accessFlag.locations(ClassFileFormatVersion.latest()) are
281         // consistent
282         var LATEST = ClassFileFormatVersion.latest();
283         for (var accessFlag : AccessFlag.values()) {
284             var locationSet = accessFlag.locations();
285             var locationLatestSet = accessFlag.locations(LATEST);
286             if (!locationSet.equals(locationLatestSet)) {
287                 throw new RuntimeException("Unequal location sets for " + accessFlag);
288             }
289         }
290     }
291 
292     private static void testFlagVersionConsistency() {
293         for (var flag : AccessFlag.values()) {
294             for (var location : AccessFlag.Location.values()) {
295                 if (location.flags().contains(flag) != flag.locations().contains(location)) {
296                     throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
297                             "flag %s and location %s are inconsistent for the latest version", flag, location));
298                 }
299             }
300         }
301         for (var cffv : ClassFileFormatVersion.values()) {
302             for (var flag : AccessFlag.values()) {
303                 for (var location : AccessFlag.Location.values()) {
304                     if (location.flags(cffv).contains(flag) != flag.locations(cffv).contains(location)) {
305                         throw new RuntimeException(String.format("AccessFlag and Location inconsistency:" +
306                                 "flag %s and location %s are inconsistent for class file version %s", flag, location, cffv));
307                     }
308                 }
309             }
310         }
311     }
312 
313     private static void testLocationMaskFlagConsistency() {
314         for (var location : AccessFlag.Location.values()) {
315             if (!flagsAndMaskMatch(location.flags(), location.flagsMask())) {
316                 throw new RuntimeException(String.format("Flags and mask mismatch for %s", location));
317             }
318             for (var cffv : ClassFileFormatVersion.values()) {
319                 if (!flagsAndMaskMatch(location.flags(cffv), location.flagsMask(cffv))) {
320                     throw new RuntimeException(String.format("Flags and mask mismatch for %s in %s", location, cffv));
321                 }
322             }
323         }
324     }
325 
326     private static boolean flagsAndMaskMatch(Set<AccessFlag> flags, int mask) {
< prev index next >