SRADA-395: use AtomicInteger for atomic increment in tests
authorVladislav Eliseev <v.eliseev@samsung.com>
Mon, 30 May 2016 08:32:46 +0000 (11:32 +0300)
committerMaria Guseva <m.guseva@samsung.com>
Fri, 1 Jul 2016 03:58:23 +0000 (06:58 +0300)
Before was used volatile integer which is non-threadsafe
for increment operation without extra lock.

Change-Id: I0679fdb12402271ad1643486f6064a5c8d559812

org.tizen.dynamicanalyzer.cli/test/src/org/tizen/dynamicanalyzer/cli/manager/ProcessManagerTest.java

index f78823b..bd28ef1 100644 (file)
@@ -11,6 +11,8 @@ import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -187,7 +189,7 @@ public class ProcessManagerTest {
        /**
         * Variable used in next multiple test cases.
         */
-       volatile int call_counter;
+       volatile AtomicInteger call_counter;
 
        /**
         * Check manager ability to stop tracing process.
@@ -197,13 +199,13 @@ public class ProcessManagerTest {
                // firstly start process
                startTracing_success();
 
-               call_counter = 0;
+               call_counter = new AtomicInteger(0);
 
                // setup answer on stop signal that finalizes tracing context
                Answer<Boolean> finalizeContext = new Answer<Boolean>() {
                        @Override
                        public Boolean answer(InvocationOnMock invocation) throws Throwable {
-                               call_counter++;
+                               call_counter.incrementAndGet();
                                ctx1.finishContext(100500);
                                return true;
                        }
@@ -219,7 +221,7 @@ public class ProcessManagerTest {
 
                // check result
                assertEquals(ErrorCode.SUCCESS.getErrorNumber(), result.getErrorNumber());
-               assertEquals(1, call_counter);
+               assertEquals(1, call_counter.get());
        }
 
        /**
@@ -253,7 +255,7 @@ public class ProcessManagerTest {
                // firstly start process
                startTracing_success();
 
-               call_counter = 0;
+               call_counter = new AtomicInteger(0);
 
                // answer that will return stop failure signal (false)
                Answer<Boolean> failAnswer = new Answer<Boolean>() {
@@ -261,7 +263,7 @@ public class ProcessManagerTest {
                        public Boolean answer(InvocationOnMock invocation) throws Throwable {
                                assertEquals(BASE_TIMEOUT_MS, invocation.getArgumentAt(0, Long.class).longValue());
                                Thread.sleep(BASE_TIMEOUT_MS);
-                               call_counter++;
+                               call_counter.incrementAndGet();
                                return false;
                        }
                };
@@ -270,7 +272,7 @@ public class ProcessManagerTest {
                Answer<Object> timeoutAnswer = new Answer<Object>() {
                        @Override
                        public Object answer(InvocationOnMock invocation) throws Throwable {
-                               call_counter++;
+                               call_counter.incrementAndGet();
                                Thread.sleep(3*BASE_TIMEOUT_MS);
                                return null;
                        }
@@ -292,7 +294,7 @@ public class ProcessManagerTest {
                assertEquals(ErrorCode.ERR_EXCEPTION_OCCURRED.getErrorNumber(), result.getErrorNumber());
 
                // check that only one stop call was used
-               assertEquals(1, call_counter);
+               assertEquals(1, call_counter.get());
 
                // check that force stop tracing was requested
                verify(mgr1).forceStopTracing();