PageRenderTime 36ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/dfa/AcceptanceTest.java

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