/** repeated weakCompareAndSet succeeds in changing value when equal to expected */
 public void testWeakCompareAndSet() {
   AtomicReferenceFieldUpdater<AtomicReferenceFieldUpdaterTest, Integer> a;
   try {
     a =
         AtomicReferenceFieldUpdater.newUpdater(
             AtomicReferenceFieldUpdaterTest.class, Integer.class, "x");
   } catch (RuntimeException ok) {
     return;
   }
   x = one;
   while (!a.weakCompareAndSet(this, one, two)) ;
   while (!a.weakCompareAndSet(this, two, m4)) ;
   assertSame(m4, a.get(this));
   while (!a.weakCompareAndSet(this, m4, seven)) ;
   assertSame(seven, a.get(this));
 }