Exemple #1
0
  @Test
  public void testReturnOneExitBlock() {
    String input = "if(!x) return 1; y = x;";
    CFG cfg = getCFGForCode(input);

    assertTrue(isConnected(cfg, "y = x", "EXIT"));
    assertTrue(cfg.outDegree(getNodeByCode(cfg, "y = x")) == 1);
  }
Exemple #2
0
 @Test
 public void testEmptyFor() {
   String input = "for(;;){}";
   CFG cfg = getCFGForCode(input);
   CFGNode node = getNodeByCode(cfg, "INFINITE FOR");
   assertTrue(node instanceof InfiniteForNode);
   assertTrue(cfg.size() == 3);
 }
Exemple #3
0
 @Test
 public void testLinkBetweenBlocks() {
   String input = "x = 10; y = 20;";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.numberOfEdges() == 3);
 }
Exemple #4
0
 @Test
 public void testTwoInstructions() {
   String input = "x = 10; y = 20;";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.size() == 4);
 }
Exemple #5
0
 @Test
 public void testSwitchWithDefaultLabelNumberOfEdges() {
   String input = "switch(foo){ case 1: case2: default: }";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.numberOfEdges() == 7);
 }
Exemple #6
0
 @Test
 public void testSwitchWithBreakNumberOfEdges() {
   String input = "switch(foo){ case 1: break; case2: break; case 3: }";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.numberOfEdges() == 10);
 }
Exemple #7
0
 @Test
 public void testSwitchNumberOfEdges() {
   String input = "switch(foo){ case 1: case2: case 3: }";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.numberOfEdges() == 8);
 }
Exemple #8
0
 @Test
 public void testForNumberOfBlocks() {
   String input = "for(i = 0; i < 10; i ++){ foo(); }";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.size() == 6);
 }
Exemple #9
0
 @Test
 public void testDoNumberOfBlocks() {
   String input = "do{ bar(); }while(foo);";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.size() == 4);
 }
Exemple #10
0
 @Test
 public void testSingleCallBlockNumber() {
   String input = "foo();";
   CFG cfg = getCFGForCode(input);
   assertTrue(cfg.size() == 3);
 }