/pmd-4.2.5/regress/test/net/sourceforge/pmd/dfa/AcceptanceTest.java

# · Java · 830 lines · 749 code · 76 blank · 5 comment · 4 complexity · b9842b1a20ebbcd5dae90502f6875a44 MD5 · raw file

  1. /*
  2. * Created on 18.08.2004
  3. */
  4. package test.net.sourceforge.pmd.dfa;
  5. import static org.junit.Assert.assertTrue;
  6. import net.sourceforge.pmd.PMD;
  7. import net.sourceforge.pmd.ast.ASTMethodDeclarator;
  8. import net.sourceforge.pmd.dfa.IDataFlowNode;
  9. import org.junit.Test;
  10. import test.net.sourceforge.pmd.testframework.ParserTst;
  11. import java.util.List;
  12. public class AcceptanceTest extends ParserTst {
  13. @Test
  14. public void testbook() throws Throwable {
  15. getOrderedNodes(ASTMethodDeclarator.class, FOO);
  16. }
  17. private static final String FOO =
  18. "class Foo {" + PMD.EOL +
  19. " void bar() {" + PMD.EOL +
  20. " int x = 2;" + PMD.EOL +
  21. " }" + PMD.EOL +
  22. "}";
  23. @Test
  24. public void testLabelledBreakLockup() throws Throwable {
  25. getOrderedNodes(ASTMethodDeclarator.class, LABELLED_BREAK_LOCKUP);
  26. }
  27. private static final String LABELLED_BREAK_LOCKUP =
  28. "class Foo {" + PMD.EOL +
  29. " void bar(int x) {" + PMD.EOL +
  30. " here: if (x>2) {" + PMD.EOL +
  31. " break here;" + PMD.EOL +
  32. " }" + PMD.EOL +
  33. " }" + PMD.EOL +
  34. "}";
  35. private boolean check(int[][] array, List methodNodes) {
  36. for (int i = 0; i < methodNodes.size(); i++) {
  37. ASTMethodDeclarator decl = (ASTMethodDeclarator) methodNodes.get(i);
  38. IDataFlowNode inode = decl.getDataFlowNode();
  39. for (int j = 0; j < inode.getChildren().size(); j++) {
  40. IDataFlowNode child = inode.getChildren().get(j);
  41. if (array[i][j] != child.getIndex() - 1) {
  42. return false;
  43. }
  44. }
  45. }
  46. return true;
  47. }
  48. @Test
  49. public void test_1() throws Throwable {
  50. assertTrue(check(TEST1_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST1)));
  51. }
  52. @Test
  53. public void test_2() throws Throwable {
  54. assertTrue(check(TEST2_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST2)));
  55. }
  56. @Test
  57. public void test_3() throws Throwable {
  58. assertTrue(check(TEST3_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST3)));
  59. }
  60. @Test
  61. public void test_4() throws Throwable {
  62. assertTrue(check(TEST4_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST4)));
  63. }
  64. @Test
  65. public void test_6() throws Throwable {
  66. assertTrue(check(TEST5_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST6)));
  67. }
  68. @Test
  69. public void test_7() throws Throwable {
  70. assertTrue(check(TEST5_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST7)));
  71. }
  72. @Test
  73. public void test_8() throws Throwable {
  74. assertTrue(check(TEST8_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST8)));
  75. }
  76. @Test
  77. public void test_9() throws Throwable {
  78. assertTrue(check(TEST5_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST9)));
  79. }
  80. @Test
  81. public void test_10() throws Throwable {
  82. assertTrue(check(TEST8_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST10)));
  83. }
  84. @Test
  85. public void test_11() throws Throwable {
  86. assertTrue(check(TEST8_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST11)));
  87. }
  88. @Test
  89. public void test_12() throws Throwable {
  90. assertTrue(check(TEST12_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST12)));
  91. }
  92. @Test
  93. public void test_13() throws Throwable {
  94. assertTrue(check(TEST13_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST13)));
  95. }
  96. @Test
  97. public void test_14() throws Throwable {
  98. assertTrue(check(TEST14_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST14)));
  99. }
  100. @Test
  101. public void test_15() throws Throwable {
  102. assertTrue(check(TEST15_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST15)));
  103. }
  104. @Test
  105. public void test_16() throws Throwable {
  106. assertTrue(check(TEST16_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST16)));
  107. }
  108. @Test
  109. public void test_17() throws Throwable {
  110. assertTrue(check(TEST17_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST17)));
  111. }
  112. @Test
  113. public void test_18() throws Throwable {
  114. assertTrue(check(TEST18_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST18)));
  115. }
  116. @Test
  117. public void test_19() throws Throwable {
  118. assertTrue(check(TEST19_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST19)));
  119. }
  120. @Test
  121. public void test_20() throws Throwable {
  122. assertTrue(check(TEST20_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST20)));
  123. }
  124. @Test
  125. public void test_21() throws Throwable {
  126. assertTrue(check(TEST21_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST21)));
  127. }
  128. @Test
  129. public void test_22() throws Throwable {
  130. assertTrue(check(TEST22_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST22)));
  131. }
  132. @Test
  133. public void test_23() throws Throwable {
  134. assertTrue(check(TEST23_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST23)));
  135. }
  136. @Test
  137. public void test_24() throws Throwable {
  138. assertTrue(check(TEST24_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST24)));
  139. }
  140. @Test
  141. public void test_25() throws Throwable {
  142. assertTrue(check(TEST25_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST25)));
  143. }
  144. @Test
  145. public void test_26() throws Throwable {
  146. assertTrue(check(TEST26_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST26)));
  147. }
  148. @Test
  149. public void test_27() throws Throwable {
  150. assertTrue(check(TEST27_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST27)));
  151. }
  152. @Test
  153. public void test_28() throws Throwable {
  154. assertTrue(check(TEST28_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST28)));
  155. }
  156. @Test
  157. public void test_29() throws Throwable {
  158. assertTrue(check(TEST29_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST29)));
  159. }
  160. @Test
  161. public void test_30() throws Throwable {
  162. assertTrue(check(TEST30_NODES, getOrderedNodes(ASTMethodDeclarator.class, TEST30)));
  163. }
  164. // first dimension: the index of a node
  165. // second dimension: the indices of the children
  166. private static final int[][] TEST1_NODES = {
  167. {1},
  168. {2},
  169. {3},
  170. {4, 6},
  171. {5},
  172. {6},
  173. {}
  174. };
  175. private static final String TEST1 =
  176. "class Foo {" + PMD.EOL +
  177. " void test_1() {" + PMD.EOL +
  178. " int x = 0;" + PMD.EOL +
  179. " if (x == 0) {" + PMD.EOL +
  180. " x++;" + PMD.EOL +
  181. " x = 0;" + PMD.EOL +
  182. " }" + PMD.EOL +
  183. " }" + PMD.EOL +
  184. " }";
  185. private static final int[][] TEST2_NODES = {
  186. {1},
  187. {2},
  188. {3},
  189. {5, 7},
  190. {3},
  191. {6},
  192. {4},
  193. {}
  194. };
  195. private static final String TEST2 =
  196. "class Foo {" + PMD.EOL +
  197. " public void test_2() {" + PMD.EOL +
  198. " for (int i = 0; i < 1; i++) {" + PMD.EOL +
  199. " i++;" + PMD.EOL +
  200. " i = 8;" + PMD.EOL +
  201. " }" + PMD.EOL +
  202. " }" + PMD.EOL +
  203. " }";
  204. private static final int[][] TEST3_NODES = {
  205. {1},
  206. {2},
  207. {3},
  208. {4, 5},
  209. {3},
  210. {}
  211. };
  212. private static final String TEST3 =
  213. "public class Foo {" + PMD.EOL +
  214. " public void test_3() {" + PMD.EOL +
  215. " for (int i = 0; i < 1; i++) {" + PMD.EOL +
  216. " }" + PMD.EOL +
  217. " }" + PMD.EOL +
  218. " }";
  219. private static final int[][] TEST4_NODES = {
  220. {1},
  221. {2},
  222. {3},
  223. {}
  224. };
  225. private static final String TEST4 =
  226. "public class Foo {" + PMD.EOL +
  227. " public void test_4() {" + PMD.EOL +
  228. " for (; ;) {" + PMD.EOL +
  229. " }" + PMD.EOL +
  230. " }" + PMD.EOL +
  231. " }";
  232. private static final int[][] TEST5_NODES = {
  233. {1},
  234. {2},
  235. {3},
  236. {4},
  237. {}
  238. };
  239. private static final String TEST6 =
  240. "public class Foo {" + PMD.EOL +
  241. " public void test_6() {" + PMD.EOL +
  242. " for (int i = 0; ;) {" + PMD.EOL +
  243. " }" + PMD.EOL +
  244. " }" + PMD.EOL +
  245. " }";
  246. private static final String TEST7 =
  247. "public class Foo {" + PMD.EOL +
  248. " public void test_7() {" + PMD.EOL +
  249. " for (int i = 0; i < 0;) {" + PMD.EOL +
  250. " }" + PMD.EOL +
  251. " }" + PMD.EOL +
  252. " }";
  253. private static final int[][] TEST8_NODES = {
  254. {1},
  255. {2},
  256. {3},
  257. {4, 5},
  258. {3},
  259. {}
  260. };
  261. public static final String TEST8 =
  262. "public class Foo {" + PMD.EOL +
  263. " public void test_8() {" + PMD.EOL +
  264. " for (int i = 0; ; i++) {" + PMD.EOL +
  265. " }" + PMD.EOL +
  266. " }" + PMD.EOL +
  267. " }";
  268. public static final String TEST9 =
  269. "public class Foo {" + PMD.EOL +
  270. " public void test_9() {" + PMD.EOL +
  271. " int i = 0;" + PMD.EOL +
  272. " for (; i < 0;) {" + PMD.EOL +
  273. " }" + PMD.EOL +
  274. " }" + PMD.EOL +
  275. " }";
  276. public static final String TEST10 =
  277. "public class Foo {" + PMD.EOL +
  278. " public void test_10() {" + PMD.EOL +
  279. " int i = 0;" + PMD.EOL +
  280. " for (; i < 0; i++) {" + PMD.EOL +
  281. " }" + PMD.EOL +
  282. " }" + PMD.EOL +
  283. " }";
  284. public static final String TEST11 =
  285. "public class Foo {" + PMD.EOL +
  286. " public void test_11() {" + PMD.EOL +
  287. " int i = 0;" + PMD.EOL +
  288. " for (; ; i++) {" + PMD.EOL +
  289. " }" + PMD.EOL +
  290. " }" + PMD.EOL +
  291. " }";
  292. private static final int[][] TEST12_NODES = {
  293. {1},
  294. {2},
  295. {3},
  296. {4, 5},
  297. {3},
  298. {}
  299. };
  300. public static final String TEST12 =
  301. "public class Foo {" + PMD.EOL +
  302. " public void test_12() {" + PMD.EOL +
  303. " for (; ;) {" + PMD.EOL +
  304. " int i = 0;" + PMD.EOL +
  305. " }" + PMD.EOL +
  306. " }" + PMD.EOL +
  307. " }";
  308. private static final int[][] TEST13_NODES = {
  309. {1},
  310. {2},
  311. {3},
  312. {5, 9},
  313. {3},
  314. {6},
  315. {7, 8},
  316. {8},
  317. {4},
  318. {}
  319. };
  320. public static final String TEST13 =
  321. "public class Foo {" + PMD.EOL +
  322. " public void test_13() {" + PMD.EOL +
  323. " for (int i = 0; i < 0; i++) {" + PMD.EOL +
  324. " i = 9;" + PMD.EOL +
  325. " if (i < 8) {" + PMD.EOL +
  326. " i = 7;" + PMD.EOL +
  327. " }" + PMD.EOL +
  328. " i = 6;" + PMD.EOL +
  329. " }" + PMD.EOL +
  330. " }" + PMD.EOL +
  331. " }";
  332. private static final int[][] TEST14_NODES = {
  333. {1},
  334. {2},
  335. {3},
  336. {5, 8},
  337. {3},
  338. {6},
  339. {7, 4},
  340. {4},
  341. {}
  342. };
  343. public static final String TEST14 =
  344. "public class Foo {" + PMD.EOL +
  345. " public void test_14() {" + PMD.EOL +
  346. " for (int i = 0; i < 0; i++) {" + PMD.EOL +
  347. " i = 9;" + PMD.EOL +
  348. " if (i < 8) {" + PMD.EOL +
  349. " i = 7;" + PMD.EOL +
  350. " }" + PMD.EOL +
  351. " }" + PMD.EOL +
  352. " }" + PMD.EOL +
  353. " }";
  354. private static final int[][] TEST15_NODES = {
  355. {1},
  356. {2},
  357. {3},
  358. {5, 7},
  359. {3},
  360. {6, 4},
  361. {4},
  362. {}
  363. };
  364. public static final String TEST15 =
  365. "public class Foo {" + PMD.EOL +
  366. " public void test_15() {" + PMD.EOL +
  367. " for (int i = 0; i < 0; i++) {" + PMD.EOL +
  368. " if (i < 8) {" + PMD.EOL +
  369. " i = 7;" + PMD.EOL +
  370. " }" + PMD.EOL +
  371. " }" + PMD.EOL +
  372. " }" + PMD.EOL +
  373. " }";
  374. private static final int[][] TEST16_NODES = {
  375. {1},
  376. {2},
  377. {3},
  378. {5, 8},
  379. {3},
  380. {6, 7},
  381. {4},
  382. {4},
  383. {}
  384. };
  385. public static final String TEST16 =
  386. "public class Foo {" + PMD.EOL +
  387. " public void test_16() {" + PMD.EOL +
  388. " for (int i = 0; i < 0; i++) {" + PMD.EOL +
  389. " if (i < 8) {" + PMD.EOL +
  390. " i = 7;" + PMD.EOL +
  391. " } else {" + PMD.EOL +
  392. " i = 6;" + PMD.EOL +
  393. " }" + PMD.EOL +
  394. " }" + PMD.EOL +
  395. " }" + PMD.EOL +
  396. " }";
  397. private static final int[][] TEST17_NODES = {
  398. {1},
  399. {2},
  400. {3},
  401. {5, 10},
  402. {3},
  403. {6, 7},
  404. {4},
  405. {8, 9},
  406. {4},
  407. {4},
  408. {}
  409. };
  410. public static final String TEST17 =
  411. "public class Foo {" + PMD.EOL +
  412. " public void test_17() {" + PMD.EOL +
  413. " for (int i = 0; i < 0; i++) {" + PMD.EOL +
  414. " if (i < 6) {" + PMD.EOL +
  415. " i = 7;" + PMD.EOL +
  416. " } else if (i > 8) {" + PMD.EOL +
  417. " i = 9;" + PMD.EOL +
  418. " } else {" + PMD.EOL +
  419. " i = 10;" + PMD.EOL +
  420. " }" + PMD.EOL +
  421. " }" + PMD.EOL +
  422. " }" + PMD.EOL +
  423. " }";
  424. private static final int[][] TEST18_NODES = {
  425. {1},
  426. {2},
  427. {3},
  428. {5, 9},
  429. {3},
  430. {6},
  431. {8, 4},
  432. {6},
  433. {7},
  434. {}
  435. };
  436. public static final String TEST18 =
  437. "public class Foo {" + PMD.EOL +
  438. " public void test_18() {" + PMD.EOL +
  439. " for (int i = 0; i < 0; i++) {" + PMD.EOL +
  440. " for (int j = 0; j < 0; j++) {" + PMD.EOL +
  441. " j++;" + PMD.EOL +
  442. " }" + PMD.EOL +
  443. " }" + PMD.EOL +
  444. " }" + PMD.EOL +
  445. " }";
  446. private static final int[][] TEST19_NODES = {
  447. {1},
  448. {2},
  449. {3},
  450. {4, 5},
  451. {10},
  452. {6, 7},
  453. {10},
  454. {8, 9},
  455. {10},
  456. {10},
  457. {}
  458. };
  459. public static final String TEST19 =
  460. "public class Foo {" + PMD.EOL +
  461. " public void test_19() {" + PMD.EOL +
  462. " int i = 0;" + PMD.EOL +
  463. " if (i == 1) {" + PMD.EOL +
  464. " i = 2;" + PMD.EOL +
  465. " } else if (i == 3) {" + PMD.EOL +
  466. " i = 4;" + PMD.EOL +
  467. " } else if (i == 5) {" + PMD.EOL +
  468. " i = 6;" + PMD.EOL +
  469. " } else {" + PMD.EOL +
  470. " i = 7;" + PMD.EOL +
  471. " }" + PMD.EOL +
  472. " }" + PMD.EOL +
  473. " }";
  474. private static final int[][] TEST20_NODES = {
  475. {1},
  476. {2},
  477. {3},
  478. {4, 6},
  479. {5, 7},
  480. {7},
  481. {7},
  482. {}
  483. };
  484. public static final String TEST20 =
  485. "public class Foo {" + PMD.EOL +
  486. " public void test_20() {" + PMD.EOL +
  487. " int i = 0;" + PMD.EOL +
  488. " if (i == 1) {" + PMD.EOL +
  489. " if (i == 2) {" + PMD.EOL +
  490. " i = 3;" + PMD.EOL +
  491. " }" + PMD.EOL +
  492. " } else {" + PMD.EOL +
  493. " i = 7;" + PMD.EOL +
  494. " }" + PMD.EOL +
  495. " }" + PMD.EOL +
  496. " }";
  497. private static final int[][] TEST21_NODES = {
  498. {1},
  499. {2},
  500. {3},
  501. {4, 9},
  502. {5},
  503. {7, 8},
  504. {5},
  505. {6},
  506. {11},
  507. {10, 11},
  508. {11},
  509. {}
  510. };
  511. public static final String TEST21 =
  512. "public class Foo {" + PMD.EOL +
  513. " public void test_21() {" + PMD.EOL +
  514. " int i = 0;" + PMD.EOL +
  515. " if (i == 1) {" + PMD.EOL +
  516. " for (i = 3; i < 4; i++) {" + PMD.EOL +
  517. " i = 5;" + PMD.EOL +
  518. " }" + PMD.EOL +
  519. " i++;" + PMD.EOL +
  520. " } else if (i < 6) {" + PMD.EOL +
  521. " i = 7;" + PMD.EOL +
  522. " }" + PMD.EOL +
  523. " }" + PMD.EOL +
  524. " }";
  525. private static final int[][] TEST22_NODES = {
  526. {1},
  527. {2},
  528. {3},
  529. {4, 8},
  530. {5},
  531. {7, 9},
  532. {5},
  533. {6},
  534. {9},
  535. {}
  536. };
  537. public static final String TEST22 =
  538. "public class Foo {" + PMD.EOL +
  539. " public void test_22() {" + PMD.EOL +
  540. " int i = 0;" + PMD.EOL +
  541. " if (i == 1) {" + PMD.EOL +
  542. " for (i = 3; i < 4; i++) {" + PMD.EOL +
  543. " i = 5;" + PMD.EOL +
  544. " }" + PMD.EOL +
  545. " } else {" + PMD.EOL +
  546. " i = 7;" + PMD.EOL +
  547. " }" + PMD.EOL +
  548. " }" + PMD.EOL +
  549. " }";
  550. private static final int[][] TEST23_NODES = {
  551. {1},
  552. {2},
  553. {3},
  554. {4, 8},
  555. {5},
  556. {7, 10},
  557. {5},
  558. {6},
  559. {9, 10},
  560. {10},
  561. {}
  562. };
  563. public static final String TEST23 =
  564. "public class Foo {" + PMD.EOL +
  565. " public void test_23() {" + PMD.EOL +
  566. " int i = 0;" + PMD.EOL +
  567. " if (i == 1) {" + PMD.EOL +
  568. " for (i = 3; i < 4; i++) {" + PMD.EOL +
  569. " i = 5;" + PMD.EOL +
  570. " }" + PMD.EOL +
  571. " } else if (i < 6) {" + PMD.EOL +
  572. " i = 7;" + PMD.EOL +
  573. " }" + PMD.EOL +
  574. " }" + PMD.EOL +
  575. " }";
  576. private static final int[][] TEST24_NODES = {
  577. {1},
  578. {2},
  579. {3},
  580. {4, 9},
  581. {5},
  582. {7, 11},
  583. {5},
  584. {8, 6},
  585. {6},
  586. {10, 11},
  587. {11},
  588. {}
  589. };
  590. public static final String TEST24 =
  591. "public class Foo {" + PMD.EOL +
  592. " public void test_24() {" + PMD.EOL +
  593. " int x = 0;" + PMD.EOL +
  594. " if (x > 2) {" + PMD.EOL +
  595. " for (int i = 0; i < 1; i++) {" + PMD.EOL +
  596. " if (x > 3) {" + PMD.EOL +
  597. " x++;" + PMD.EOL +
  598. " }" + PMD.EOL +
  599. " }" + PMD.EOL +
  600. " } else if (x > 4) {" + PMD.EOL +
  601. " x++;" + PMD.EOL +
  602. " }" + PMD.EOL +
  603. " }" + PMD.EOL +
  604. " }";
  605. private static final int[][] TEST25_NODES = {
  606. {1},
  607. {2},
  608. {3},
  609. {4, 5},
  610. {5},
  611. {}
  612. };
  613. public static final String TEST25 =
  614. "public class Foo {" + PMD.EOL +
  615. " public void test_25() {" + PMD.EOL +
  616. " int x = 0;" + PMD.EOL +
  617. " switch (x) {" + PMD.EOL +
  618. " default:" + PMD.EOL +
  619. " x = 9;" + PMD.EOL +
  620. " }" + PMD.EOL +
  621. " }" + PMD.EOL +
  622. " }";
  623. private static final int[][] TEST26_NODES = {
  624. {1},
  625. {2},
  626. {3},
  627. {4},
  628. {5, 6},
  629. {6},
  630. {7},
  631. {8, 3},
  632. {9},
  633. {}
  634. };
  635. public static final String TEST26 =
  636. "public class Foo {" + PMD.EOL +
  637. " public void test_26() {" + PMD.EOL +
  638. " int x = 0;" + PMD.EOL +
  639. " do {" + PMD.EOL +
  640. " if (x > 0) {" + PMD.EOL +
  641. " x++;" + PMD.EOL +
  642. " }" + PMD.EOL +
  643. " x++;" + PMD.EOL +
  644. " } while (x < 9);" + PMD.EOL +
  645. " x++;" + PMD.EOL +
  646. " }" + PMD.EOL +
  647. " }";
  648. private static final int[][] TEST27_NODES = {
  649. {1},
  650. {2},
  651. {3},
  652. {5, 9},
  653. {3},
  654. {6},
  655. {7},
  656. {8},
  657. {6, 4},
  658. {}
  659. };
  660. public static final String TEST27 =
  661. "public class Foo {" + PMD.EOL +
  662. " public void test_27() {" + PMD.EOL +
  663. " for (int i = 0; i < 36; i++) {" + PMD.EOL +
  664. " int x = 0;" + PMD.EOL +
  665. " do {" + PMD.EOL +
  666. " x++;" + PMD.EOL +
  667. " } while (x < 9);" + PMD.EOL +
  668. " }" + PMD.EOL +
  669. " }" + PMD.EOL +
  670. " }";
  671. private static final int[][] TEST28_NODES = {
  672. {1},
  673. {2},
  674. {3},
  675. {5, 14},
  676. {3},
  677. {6},
  678. {7},
  679. {8, 12},
  680. {9},
  681. {10, 12},
  682. {11},
  683. {12},
  684. {13},
  685. {6, 4},
  686. {}
  687. };
  688. public static final String TEST28 =
  689. "public class Foo {" + PMD.EOL +
  690. " private void test_28() {" + PMD.EOL +
  691. " for (int i = 0; i < 36; i++) {" + PMD.EOL +
  692. " int x = 0;" + PMD.EOL +
  693. " do {" + PMD.EOL +
  694. " if (x > 0) {" + PMD.EOL +
  695. " x++;" + PMD.EOL +
  696. " switch (i) {" + PMD.EOL +
  697. " case 0:" + PMD.EOL +
  698. " x = 0;" + PMD.EOL +
  699. " break;" + PMD.EOL +
  700. " }" + PMD.EOL +
  701. " }" + PMD.EOL +
  702. " x++;" + PMD.EOL +
  703. " } while (x < 9);" + PMD.EOL +
  704. " }" + PMD.EOL +
  705. " }" + PMD.EOL +
  706. " }";
  707. private static final int[][] TEST29_NODES = {
  708. {1},
  709. {2},
  710. {3, 4, 5},
  711. {6},
  712. {6},
  713. {6},
  714. {}
  715. };
  716. public static final String TEST29 =
  717. "public class Foo {" + PMD.EOL +
  718. " private void test_29() {" + PMD.EOL +
  719. " switch(x) {" + PMD.EOL +
  720. " case 1:" + PMD.EOL +
  721. " break; " + PMD.EOL +
  722. " default: " + PMD.EOL +
  723. " break;" + PMD.EOL +
  724. " case 2:" + PMD.EOL +
  725. " break;" + PMD.EOL +
  726. " }" + PMD.EOL +
  727. " }" + PMD.EOL +
  728. "}";
  729. private static final int[][] TEST30_NODES = {
  730. {1},
  731. {2},
  732. {3},
  733. {4, 7},
  734. {5, 6},
  735. {4},
  736. {3},
  737. {}
  738. };
  739. public static final String TEST30 =
  740. "public class Foo {" + PMD.EOL +
  741. " private void test_30() {" + PMD.EOL +
  742. " int x = 0;" + PMD.EOL +
  743. " while (true) {" + PMD.EOL +
  744. " while (x>0) {" + PMD.EOL +
  745. " x++;" + PMD.EOL +
  746. " }" + PMD.EOL +
  747. " continue;" + PMD.EOL +
  748. " }" + PMD.EOL +
  749. " }" + PMD.EOL +
  750. "}";
  751. public static junit.framework.Test suite() {
  752. return new junit.framework.JUnit4TestAdapter(AcceptanceTest.class);
  753. }
  754. }