< prev index next >

test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java

Print this page

        

*** 117,261 **** static void testAccess(Object base, long offset) { // Plain { ! UNSAFE.putObject(base, offset, "foo"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "set Object value"); } // Volatile { ! UNSAFE.putObjectVolatile(base, offset, "bar"); ! Object x = UNSAFE.getObjectVolatile(base, offset); assertEquals(x, "bar", "putVolatile Object value"); } // Lazy { ! UNSAFE.putObjectRelease(base, offset, "foo"); ! Object x = UNSAFE.getObjectAcquire(base, offset); assertEquals(x, "foo", "putRelease Object value"); } // Opaque { ! UNSAFE.putObjectOpaque(base, offset, "bar"); ! Object x = UNSAFE.getObjectOpaque(base, offset); assertEquals(x, "bar", "putOpaque Object value"); } ! UNSAFE.putObject(base, offset, "foo"); // Compare { ! boolean r = UNSAFE.compareAndSetObject(base, offset, "foo", "bar"); assertEquals(r, true, "success compareAndSet Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "bar", "success compareAndSet Object value"); } { ! boolean r = UNSAFE.compareAndSetObject(base, offset, "foo", "baz"); assertEquals(r, false, "failing compareAndSet Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "bar", "failing compareAndSet Object value"); } // Advanced compare { ! Object r = UNSAFE.compareAndExchangeObject(base, offset, "bar", "foo"); assertEquals(r, "bar", "success compareAndExchange Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "success compareAndExchange Object value"); } { ! Object r = UNSAFE.compareAndExchangeObject(base, offset, "bar", "baz"); assertEquals(r, "foo", "failing compareAndExchange Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "failing compareAndExchange Object value"); } { ! Object r = UNSAFE.compareAndExchangeObjectAcquire(base, offset, "foo", "bar"); assertEquals(r, "foo", "success compareAndExchangeAcquire Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "bar", "success compareAndExchangeAcquire Object value"); } { ! Object r = UNSAFE.compareAndExchangeObjectAcquire(base, offset, "foo", "baz"); assertEquals(r, "bar", "failing compareAndExchangeAcquire Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "bar", "failing compareAndExchangeAcquire Object value"); } { ! Object r = UNSAFE.compareAndExchangeObjectRelease(base, offset, "bar", "foo"); assertEquals(r, "bar", "success compareAndExchangeRelease Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "success compareAndExchangeRelease Object value"); } { ! Object r = UNSAFE.compareAndExchangeObjectRelease(base, offset, "bar", "baz"); assertEquals(r, "foo", "failing compareAndExchangeRelease Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "failing compareAndExchangeRelease Object value"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetObjectPlain(base, offset, "foo", "bar"); } assertEquals(success, true, "weakCompareAndSetPlain Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "bar", "weakCompareAndSetPlain Object value"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetObjectAcquire(base, offset, "bar", "foo"); } assertEquals(success, true, "weakCompareAndSetAcquire Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "weakCompareAndSetAcquire Object"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetObjectRelease(base, offset, "foo", "bar"); } assertEquals(success, true, "weakCompareAndSetRelease Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "bar", "weakCompareAndSetRelease Object"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetObject(base, offset, "bar", "foo"); } assertEquals(success, true, "weakCompareAndSet Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "weakCompareAndSet Object"); } ! UNSAFE.putObject(base, offset, "bar"); // Compare set and get { ! Object o = UNSAFE.getAndSetObject(base, offset, "foo"); assertEquals(o, "bar", "getAndSet Object"); ! Object x = UNSAFE.getObject(base, offset); assertEquals(x, "foo", "getAndSet Object value"); } } --- 117,261 ---- static void testAccess(Object base, long offset) { // Plain { ! UNSAFE.putReference(base, offset, "foo"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "set Object value"); } // Volatile { ! UNSAFE.putReferenceVolatile(base, offset, "bar"); ! Object x = UNSAFE.getReferenceVolatile(base, offset); assertEquals(x, "bar", "putVolatile Object value"); } // Lazy { ! UNSAFE.putReferenceRelease(base, offset, "foo"); ! Object x = UNSAFE.getReferenceAcquire(base, offset); assertEquals(x, "foo", "putRelease Object value"); } // Opaque { ! UNSAFE.putReferenceOpaque(base, offset, "bar"); ! Object x = UNSAFE.getReferenceOpaque(base, offset); assertEquals(x, "bar", "putOpaque Object value"); } ! UNSAFE.putReference(base, offset, "foo"); // Compare { ! boolean r = UNSAFE.compareAndSetReference(base, offset, "foo", "bar"); assertEquals(r, true, "success compareAndSet Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "bar", "success compareAndSet Object value"); } { ! boolean r = UNSAFE.compareAndSetReference(base, offset, "foo", "baz"); assertEquals(r, false, "failing compareAndSet Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "bar", "failing compareAndSet Object value"); } // Advanced compare { ! Object r = UNSAFE.compareAndExchangeReference(base, offset, "bar", "foo"); assertEquals(r, "bar", "success compareAndExchange Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "success compareAndExchange Object value"); } { ! Object r = UNSAFE.compareAndExchangeReference(base, offset, "bar", "baz"); assertEquals(r, "foo", "failing compareAndExchange Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "failing compareAndExchange Object value"); } { ! Object r = UNSAFE.compareAndExchangeReferenceAcquire(base, offset, "foo", "bar"); assertEquals(r, "foo", "success compareAndExchangeAcquire Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "bar", "success compareAndExchangeAcquire Object value"); } { ! Object r = UNSAFE.compareAndExchangeReferenceAcquire(base, offset, "foo", "baz"); assertEquals(r, "bar", "failing compareAndExchangeAcquire Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "bar", "failing compareAndExchangeAcquire Object value"); } { ! Object r = UNSAFE.compareAndExchangeReferenceRelease(base, offset, "bar", "foo"); assertEquals(r, "bar", "success compareAndExchangeRelease Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "success compareAndExchangeRelease Object value"); } { ! Object r = UNSAFE.compareAndExchangeReferenceRelease(base, offset, "bar", "baz"); assertEquals(r, "foo", "failing compareAndExchangeRelease Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "failing compareAndExchangeRelease Object value"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetReferencePlain(base, offset, "foo", "bar"); } assertEquals(success, true, "weakCompareAndSetPlain Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "bar", "weakCompareAndSetPlain Object value"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetReferenceAcquire(base, offset, "bar", "foo"); } assertEquals(success, true, "weakCompareAndSetAcquire Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "weakCompareAndSetAcquire Object"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetReferenceRelease(base, offset, "foo", "bar"); } assertEquals(success, true, "weakCompareAndSetRelease Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "bar", "weakCompareAndSetRelease Object"); } { boolean success = false; for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { ! success = UNSAFE.weakCompareAndSetReference(base, offset, "bar", "foo"); } assertEquals(success, true, "weakCompareAndSet Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "weakCompareAndSet Object"); } ! UNSAFE.putReference(base, offset, "bar"); // Compare set and get { ! Object o = UNSAFE.getAndSetReference(base, offset, "foo"); assertEquals(o, "bar", "getAndSet Object"); ! Object x = UNSAFE.getReference(base, offset); assertEquals(x, "foo", "getAndSet Object value"); } }
< prev index next >