2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 package gov.nasa.jpf.test.java.concurrent;
20 import gov.nasa.jpf.util.test.TestJPF;
22 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
24 import org.junit.Test;
27 * raw test for java.util.concurrent.atomic.AtomicIntegerFieldUpdater
29 public class AtomicIntegerFieldUpdaterTest extends TestJPF {
34 public void testField() {
36 if (verifyNoPropertyViolation()) {
37 AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> upd =
38 AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdaterTest.class, "value");
40 final int v1 = 98734534;
41 final int v2 = 79304843;
42 final int nogo = 46907854;
45 assert upd.compareAndSet(this, v1, v2);
48 assert !upd.compareAndSet(this, v1, nogo);
51 assert value == upd.get(this);
53 assert v2 == upd.getAndSet(this, v1);
59 upd.lazySet(this, v1);
62 assert upd.weakCompareAndSet(this, v1, v2);
65 assert !upd.weakCompareAndSet(this, v1, nogo);
68 assert v2 == upd.getAndAdd(this, 5);
69 assert v2 + 5 == value;