package trials;
import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class CFGLoopTest {
private Object a;
private List<Foo> foos;
void simpleWhileLoop() {
int i = 0;
while (i < 10) {
i++;
System.out.println(i);
}
}
void simpleWhileLoopWithBreak() {
int i = 0;
while (i < 10) {
i++;
if (i == 5)
break;
}
}
void simpleForLoop() {
for (int i = 0; i < 10; i++) {
doSomething();
}
}
void embeddedMixedLoops() {
for (int i = 0; i < 10; i++) {
int n = 0;
while (n++ < 10) {
if (n < 5) {
doSomething();
} else {
doSomeOtherThing();
}
n += 1;
}
if (i < 5) {
doSomething();
} else {
doSomeOtherThing();
}
}
}
public void mixedWithForEach() {
Lock lock = new ReentrantLock();
for (int i = 0; i < 10; i++) {
lock.tryLock();
lock = new ReentrantLock();
}
lock.unlock();
for (Foo foo : foos) {
lock.tryLock();
lock = new ReentrantLock();
}
lock.unlock();
}
void doWhile() {
int i = 0;
do {
i++;
System.out.println(i);
} while (i < 10);
}
void minimalForLoop() {
a = null;
for (; a != null;) {
a.toString();
break;
}
}
void emptyFor() {
for (;;) {
}
}
void forWithOnlyInitializer() {
for (int i = 1;;) {
}
}
void emptyConditionFor() {
for (;;) {
doIt();
}
}
void almostEmptyConditionFor() {
for (int i = 1;;) {
doIt();
}
}
void embeddedLoops() {
int j = 0;
while (true) {
j++;
if (canExit()) {
return;
}
while (true) {
j++;
if (canExit()) {
return;
}
}
}
}
void embeddedLoopsReturnInInnermost() {
int j = 0;
while (true) {
j++;
while (true) {
j++;
if (canExit()) {
return;
}
}
}
}
void doubleReturnWhileLoop() {
int j = 0;
while (true) {
j++;
if (canExit()) {
return;
}
for (;;) {
j++;
if (canExit()) {
return;
}
}
}
}
private void doIt() {
}
private void doSomething() {
}
private void doSomeOtherThing() {
}
private boolean canExit() {
return false;
}
private static class Foo {
}
}