summaryrefslogtreecommitdiff
path: root/jsr166-tests
diff options
context:
space:
mode:
authorPete Gillin <peteg@google.com>2018-03-20 14:55:37 +0000
committerPete Gillin <peteg@google.com>2018-03-20 15:04:10 +0000
commitfbdae2c2089483a18a01771141434299412df13f (patch)
tree908ea4cf5bfbe70fcbac30b0bc1ca8dc4b41a517 /jsr166-tests
parent26204f5aef6e48da7d244a975bcb9b71dad93f0c (diff)
Restore the visibility checks in Atomic.*FieldUpdater.
This change is just reverting unintended diffs against upstream sources. (The call to checkPackageAccess is a noop on Android because it only does SecurityManager checks, so this change leaves that suppresses as it is right now. The call to ensureMemberAccess does regular visibility checks, and is restored in this change.) Bug: 75269521 Test: cts-tradefed run cts-dev -m CtsLibcoreJsr166TestCases Test: cts-tradefed run cts-dev -m CtsLibcoreTestCases Change-Id: I5e050f786709fb28543ca4ea409eb9876539fc6f
Diffstat (limited to 'jsr166-tests')
-rw-r--r--jsr166-tests/src/test/java/jsr166/AtomicIntegerFieldUpdaterTest.java124
-rw-r--r--jsr166-tests/src/test/java/jsr166/AtomicLongFieldUpdaterTest.java124
-rw-r--r--jsr166-tests/src/test/java/jsr166/AtomicReferenceFieldUpdaterTest.java117
3 files changed, 177 insertions, 188 deletions
diff --git a/jsr166-tests/src/test/java/jsr166/AtomicIntegerFieldUpdaterTest.java b/jsr166-tests/src/test/java/jsr166/AtomicIntegerFieldUpdaterTest.java
index c8d3856728..818a3b2d88 100644
--- a/jsr166-tests/src/test/java/jsr166/AtomicIntegerFieldUpdaterTest.java
+++ b/jsr166-tests/src/test/java/jsr166/AtomicIntegerFieldUpdaterTest.java
@@ -30,56 +30,55 @@ public class AtomicIntegerFieldUpdaterTest extends JSR166TestCase {
// }
// for testing subclass access
- // android-note: Removed because android doesn't restrict reflection access
- // static class AtomicIntegerFieldUpdaterTestSubclass extends AtomicIntegerFieldUpdaterTest {
- // public void checkPrivateAccess() {
- // try {
- // AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
- // AtomicIntegerFieldUpdater.newUpdater
- // (AtomicIntegerFieldUpdaterTest.class, "privateField");
- // shouldThrow();
- // } catch (RuntimeException success) {
- // assertNotNull(success.getCause());
- // }
- // }
+ static class AtomicIntegerFieldUpdaterTestSubclass extends AtomicIntegerFieldUpdaterTest {
+ public void checkPrivateAccess() {
+ try {
+ AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
+ AtomicIntegerFieldUpdater.newUpdater
+ (AtomicIntegerFieldUpdaterTest.class, "privateField");
+ shouldThrow();
+ } catch (RuntimeException success) {
+ assertNotNull(success.getCause());
+ }
+ }
- // public void checkCompareAndSetProtectedSub() {
- // AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
- // AtomicIntegerFieldUpdater.newUpdater
- // (AtomicIntegerFieldUpdaterTest.class, "protectedField");
- // this.protectedField = 1;
- // assertTrue(a.compareAndSet(this, 1, 2));
- // assertTrue(a.compareAndSet(this, 2, -4));
- // assertEquals(-4, a.get(this));
- // assertFalse(a.compareAndSet(this, -5, 7));
- // assertEquals(-4, a.get(this));
- // assertTrue(a.compareAndSet(this, -4, 7));
- // assertEquals(7, a.get(this));
- // }
- // }
+ public void checkCompareAndSetProtectedSub() {
+ AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
+ AtomicIntegerFieldUpdater.newUpdater
+ (AtomicIntegerFieldUpdaterTest.class, "protectedField");
+ this.protectedField = 1;
+ assertTrue(a.compareAndSet(this, 1, 2));
+ assertTrue(a.compareAndSet(this, 2, -4));
+ assertEquals(-4, a.get(this));
+ assertFalse(a.compareAndSet(this, -5, 7));
+ assertEquals(-4, a.get(this));
+ assertTrue(a.compareAndSet(this, -4, 7));
+ assertEquals(7, a.get(this));
+ }
+ }
- // static class UnrelatedClass {
- // public void checkPackageAccess(AtomicIntegerFieldUpdaterTest obj) {
- // obj.x = 72;
- // AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
- // AtomicIntegerFieldUpdater.newUpdater
- // (AtomicIntegerFieldUpdaterTest.class, "x");
- // assertEquals(72, a.get(obj));
- // assertTrue(a.compareAndSet(obj, 72, 73));
- // assertEquals(73, a.get(obj));
- // }
+ static class UnrelatedClass {
+ public void checkPackageAccess(AtomicIntegerFieldUpdaterTest obj) {
+ obj.x = 72;
+ AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
+ AtomicIntegerFieldUpdater.newUpdater
+ (AtomicIntegerFieldUpdaterTest.class, "x");
+ assertEquals(72, a.get(obj));
+ assertTrue(a.compareAndSet(obj, 72, 73));
+ assertEquals(73, a.get(obj));
+ }
- // public void checkPrivateAccess(AtomicIntegerFieldUpdaterTest obj) {
- // try {
- // AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
- // AtomicIntegerFieldUpdater.newUpdater
- // (AtomicIntegerFieldUpdaterTest.class, "privateField");
- // throw new AssertionError("should throw");
- // } catch (RuntimeException success) {
- // assertNotNull(success.getCause());
- // }
- // }
- // }
+ public void checkPrivateAccess(AtomicIntegerFieldUpdaterTest obj) {
+ try {
+ AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
+ AtomicIntegerFieldUpdater.newUpdater
+ (AtomicIntegerFieldUpdaterTest.class, "privateField");
+ throw new AssertionError("should throw");
+ } catch (RuntimeException success) {
+ assertNotNull(success.getCause());
+ }
+ }
+ }
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> updaterFor(String fieldName) {
return AtomicIntegerFieldUpdater.newUpdater
@@ -121,22 +120,20 @@ public class AtomicIntegerFieldUpdaterTest extends JSR166TestCase {
/**
* construction using private field from subclass throws RuntimeException
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testPrivateFieldInSubclass() {
- // AtomicIntegerFieldUpdaterTestSubclass s =
- // new AtomicIntegerFieldUpdaterTestSubclass();
- // s.checkPrivateAccess();
- // }
+ public void testPrivateFieldInSubclass() {
+ AtomicIntegerFieldUpdaterTestSubclass s =
+ new AtomicIntegerFieldUpdaterTestSubclass();
+ s.checkPrivateAccess();
+ }
/**
* construction from unrelated class; package access is allowed,
* private access is not
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testUnrelatedClassAccess() {
- // new UnrelatedClass().checkPackageAccess(this);
- // new UnrelatedClass().checkPrivateAccess(this);
- // }
+ public void testUnrelatedClassAccess() {
+ new UnrelatedClass().checkPackageAccess(this);
+ new UnrelatedClass().checkPrivateAccess(this);
+ }
/**
* get returns the last value set or assigned
@@ -203,12 +200,11 @@ public class AtomicIntegerFieldUpdaterTest extends JSR166TestCase {
* compareAndSet succeeds in changing protected field value if
* equal to expected else fails
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testCompareAndSetProtectedInSubclass() {
- // AtomicIntegerFieldUpdaterTestSubclass s =
- // new AtomicIntegerFieldUpdaterTestSubclass();
- // s.checkCompareAndSetProtectedSub();
- // }
+ public void testCompareAndSetProtectedInSubclass() {
+ AtomicIntegerFieldUpdaterTestSubclass s =
+ new AtomicIntegerFieldUpdaterTestSubclass();
+ s.checkCompareAndSetProtectedSub();
+ }
/**
* compareAndSet in one thread enables another waiting for value
diff --git a/jsr166-tests/src/test/java/jsr166/AtomicLongFieldUpdaterTest.java b/jsr166-tests/src/test/java/jsr166/AtomicLongFieldUpdaterTest.java
index d46280b889..69b97bc142 100644
--- a/jsr166-tests/src/test/java/jsr166/AtomicLongFieldUpdaterTest.java
+++ b/jsr166-tests/src/test/java/jsr166/AtomicLongFieldUpdaterTest.java
@@ -30,56 +30,55 @@ public class AtomicLongFieldUpdaterTest extends JSR166TestCase {
// }
// for testing subclass access
- // android-note: Removed because android doesn't restrict reflection access
- // static class AtomicLongFieldUpdaterTestSubclass extends AtomicLongFieldUpdaterTest {
- // public void checkPrivateAccess() {
- // try {
- // AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
- // AtomicLongFieldUpdater.newUpdater
- // (AtomicLongFieldUpdaterTest.class, "privateField");
- // shouldThrow();
- // } catch (RuntimeException success) {
- // assertNotNull(success.getCause());
- // }
- // }
+ static class AtomicLongFieldUpdaterTestSubclass extends AtomicLongFieldUpdaterTest {
+ public void checkPrivateAccess() {
+ try {
+ AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
+ AtomicLongFieldUpdater.newUpdater
+ (AtomicLongFieldUpdaterTest.class, "privateField");
+ shouldThrow();
+ } catch (RuntimeException success) {
+ assertNotNull(success.getCause());
+ }
+ }
- // public void checkCompareAndSetProtectedSub() {
- // AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
- // AtomicLongFieldUpdater.newUpdater
- // (AtomicLongFieldUpdaterTest.class, "protectedField");
- // this.protectedField = 1;
- // assertTrue(a.compareAndSet(this, 1, 2));
- // assertTrue(a.compareAndSet(this, 2, -4));
- // assertEquals(-4, a.get(this));
- // assertFalse(a.compareAndSet(this, -5, 7));
- // assertEquals(-4, a.get(this));
- // assertTrue(a.compareAndSet(this, -4, 7));
- // assertEquals(7, a.get(this));
- // }
- // }
+ public void checkCompareAndSetProtectedSub() {
+ AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
+ AtomicLongFieldUpdater.newUpdater
+ (AtomicLongFieldUpdaterTest.class, "protectedField");
+ this.protectedField = 1;
+ assertTrue(a.compareAndSet(this, 1, 2));
+ assertTrue(a.compareAndSet(this, 2, -4));
+ assertEquals(-4, a.get(this));
+ assertFalse(a.compareAndSet(this, -5, 7));
+ assertEquals(-4, a.get(this));
+ assertTrue(a.compareAndSet(this, -4, 7));
+ assertEquals(7, a.get(this));
+ }
+ }
- // static class UnrelatedClass {
- // public void checkPackageAccess(AtomicLongFieldUpdaterTest obj) {
- // obj.x = 72L;
- // AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
- // AtomicLongFieldUpdater.newUpdater
- // (AtomicLongFieldUpdaterTest.class, "x");
- // assertEquals(72L, a.get(obj));
- // assertTrue(a.compareAndSet(obj, 72L, 73L));
- // assertEquals(73L, a.get(obj));
- // }
+ static class UnrelatedClass {
+ public void checkPackageAccess(AtomicLongFieldUpdaterTest obj) {
+ obj.x = 72L;
+ AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
+ AtomicLongFieldUpdater.newUpdater
+ (AtomicLongFieldUpdaterTest.class, "x");
+ assertEquals(72L, a.get(obj));
+ assertTrue(a.compareAndSet(obj, 72L, 73L));
+ assertEquals(73L, a.get(obj));
+ }
- // public void checkPrivateAccess(AtomicLongFieldUpdaterTest obj) {
- // try {
- // AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
- // AtomicLongFieldUpdater.newUpdater
- // (AtomicLongFieldUpdaterTest.class, "privateField");
- // throw new AssertionError("should throw");
- // } catch (RuntimeException success) {
- // assertNotNull(success.getCause());
- // }
- // }
- // }
+ public void checkPrivateAccess(AtomicLongFieldUpdaterTest obj) {
+ try {
+ AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a =
+ AtomicLongFieldUpdater.newUpdater
+ (AtomicLongFieldUpdaterTest.class, "privateField");
+ throw new AssertionError("should throw");
+ } catch (RuntimeException success) {
+ assertNotNull(success.getCause());
+ }
+ }
+ }
AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> updaterFor(String fieldName) {
return AtomicLongFieldUpdater.newUpdater
@@ -121,22 +120,20 @@ public class AtomicLongFieldUpdaterTest extends JSR166TestCase {
/**
* construction using private field from subclass throws RuntimeException
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testPrivateFieldInSubclass() {
- // AtomicLongFieldUpdaterTestSubclass s =
- // new AtomicLongFieldUpdaterTestSubclass();
- // s.checkPrivateAccess();
- // }
+ public void testPrivateFieldInSubclass() {
+ AtomicLongFieldUpdaterTestSubclass s =
+ new AtomicLongFieldUpdaterTestSubclass();
+ s.checkPrivateAccess();
+ }
/**
* construction from unrelated class; package access is allowed,
* private access is not
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testUnrelatedClassAccess() {
- // new UnrelatedClass().checkPackageAccess(this);
- // new UnrelatedClass().checkPrivateAccess(this);
- // }
+ public void testUnrelatedClassAccess() {
+ new UnrelatedClass().checkPackageAccess(this);
+ new UnrelatedClass().checkPrivateAccess(this);
+ }
/**
* get returns the last value set or assigned
@@ -203,12 +200,11 @@ public class AtomicLongFieldUpdaterTest extends JSR166TestCase {
* compareAndSet succeeds in changing protected field value if
* equal to expected else fails
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testCompareAndSetProtectedInSubclass() {
- // AtomicLongFieldUpdaterTestSubclass s =
- // new AtomicLongFieldUpdaterTestSubclass();
- // s.checkCompareAndSetProtectedSub();
- // }
+ public void testCompareAndSetProtectedInSubclass() {
+ AtomicLongFieldUpdaterTestSubclass s =
+ new AtomicLongFieldUpdaterTestSubclass();
+ s.checkCompareAndSetProtectedSub();
+ }
/**
* compareAndSet in one thread enables another waiting for value
diff --git a/jsr166-tests/src/test/java/jsr166/AtomicReferenceFieldUpdaterTest.java b/jsr166-tests/src/test/java/jsr166/AtomicReferenceFieldUpdaterTest.java
index 9b2e9a9adf..a662e11d76 100644
--- a/jsr166-tests/src/test/java/jsr166/AtomicReferenceFieldUpdaterTest.java
+++ b/jsr166-tests/src/test/java/jsr166/AtomicReferenceFieldUpdaterTest.java
@@ -32,56 +32,55 @@ public class AtomicReferenceFieldUpdaterTest extends JSR166TestCase {
// }
// for testing subclass access
- // android-note: Removed because android doesn't restrict reflection access
- // static class AtomicReferenceFieldUpdaterTestSubclass extends AtomicReferenceFieldUpdaterTest {
- // public void checkPrivateAccess() {
- // try {
- // AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
- // AtomicReferenceFieldUpdater.newUpdater
- // (AtomicReferenceFieldUpdaterTest.class, Integer.class, "privateField");
- // shouldThrow();
- // } catch (RuntimeException success) {
- // assertNotNull(success.getCause());
- // }
- // }
-
- // public void checkCompareAndSetProtectedSub() {
- // AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
- // AtomicReferenceFieldUpdater.newUpdater
- // (AtomicReferenceFieldUpdaterTest.class, Integer.class, "protectedField");
- // this.protectedField = one;
- // assertTrue(a.compareAndSet(this, one, two));
- // assertTrue(a.compareAndSet(this, two, m4));
- // assertSame(m4, a.get(this));
- // assertFalse(a.compareAndSet(this, m5, seven));
- // assertFalse(seven == a.get(this));
- // assertTrue(a.compareAndSet(this, m4, seven));
- // assertSame(seven, a.get(this));
- // }
- // }
+ static class AtomicReferenceFieldUpdaterTestSubclass extends AtomicReferenceFieldUpdaterTest {
+ public void checkPrivateAccess() {
+ try {
+ AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
+ AtomicReferenceFieldUpdater.newUpdater
+ (AtomicReferenceFieldUpdaterTest.class, Integer.class, "privateField");
+ shouldThrow();
+ } catch (RuntimeException success) {
+ assertNotNull(success.getCause());
+ }
+ }
- // static class UnrelatedClass {
- // public void checkPackageAccess(AtomicReferenceFieldUpdaterTest obj) {
- // obj.x = one;
- // AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
- // AtomicReferenceFieldUpdater.newUpdater
- // (AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
- // assertSame(one, a.get(obj));
- // assertTrue(a.compareAndSet(obj, one, two));
- // assertSame(two, a.get(obj));
- // }
-
- // public void checkPrivateAccess(AtomicReferenceFieldUpdaterTest obj) {
- // try {
- // AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
- // AtomicReferenceFieldUpdater.newUpdater
- // (AtomicReferenceFieldUpdaterTest.class, Integer.class, "privateField");
- // throw new AssertionError("should throw");
- // } catch (RuntimeException success) {
- // assertNotNull(success.getCause());
- // }
- // }
- // }
+ public void checkCompareAndSetProtectedSub() {
+ AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
+ AtomicReferenceFieldUpdater.newUpdater
+ (AtomicReferenceFieldUpdaterTest.class, Integer.class, "protectedField");
+ this.protectedField = one;
+ assertTrue(a.compareAndSet(this, one, two));
+ assertTrue(a.compareAndSet(this, two, m4));
+ assertSame(m4, a.get(this));
+ assertFalse(a.compareAndSet(this, m5, seven));
+ assertFalse(seven == a.get(this));
+ assertTrue(a.compareAndSet(this, m4, seven));
+ assertSame(seven, a.get(this));
+ }
+ }
+
+ static class UnrelatedClass {
+ public void checkPackageAccess(AtomicReferenceFieldUpdaterTest obj) {
+ obj.x = one;
+ AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
+ AtomicReferenceFieldUpdater.newUpdater
+ (AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
+ assertSame(one, a.get(obj));
+ assertTrue(a.compareAndSet(obj, one, two));
+ assertSame(two, a.get(obj));
+ }
+
+ public void checkPrivateAccess(AtomicReferenceFieldUpdaterTest obj) {
+ try {
+ AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest,Integer> a =
+ AtomicReferenceFieldUpdater.newUpdater
+ (AtomicReferenceFieldUpdaterTest.class, Integer.class, "privateField");
+ throw new AssertionError("should throw");
+ } catch (RuntimeException success) {
+ assertNotNull(success.getCause());
+ }
+ }
+ }
static AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer> updaterFor(String fieldName) {
return AtomicReferenceFieldUpdater.newUpdater
@@ -133,22 +132,20 @@ public class AtomicReferenceFieldUpdaterTest extends JSR166TestCase {
/**
* construction using private field from subclass throws RuntimeException
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testPrivateFieldInSubclass() {
- // AtomicReferenceFieldUpdaterTestSubclass s =
- // new AtomicReferenceFieldUpdaterTestSubclass();
- // s.checkPrivateAccess();
- // }
+ public void testPrivateFieldInSubclass() {
+ AtomicReferenceFieldUpdaterTestSubclass s =
+ new AtomicReferenceFieldUpdaterTestSubclass();
+ s.checkPrivateAccess();
+ }
/**
* construction from unrelated class; package access is allowed,
* private access is not
*/
- // android-note: Removed because android doesn't restrict reflection access
- // public void testUnrelatedClassAccess() {
- // new UnrelatedClass().checkPackageAccess(this);
- // new UnrelatedClass().checkPrivateAccess(this);
- // }
+ public void testUnrelatedClassAccess() {
+ new UnrelatedClass().checkPackageAccess(this);
+ new UnrelatedClass().checkPrivateAccess(this);
+ }
/**
* get returns the last value set or assigned