You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ajc199.xml 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. <!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
  2. <suite>
  3. <!-- Java ?? final, Java 17, 18 preview -->
  4. <ajc-test dir="features198/java17" vm="18" title="switch pattern matching error">
  5. <compile files="SwitchPatternError.java" options="--enable-preview -18">
  6. <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
  7. <message kind="error" file="SwitchPatternError.java" text="This case label is dominated by one of the preceding case label"/>
  8. </compile>
  9. </ajc-test>
  10. <!-- Java ?? final, Java 17, 18 preview -->
  11. <ajc-test dir="features198/java17" vm="18" title="switch pattern matching java">
  12. <compile files="SwitchPatternOK.java" options="--enable-preview -18" />
  13. <run class="SwitchPatternOK" vmargs="--enable-preview">
  14. <stdout>
  15. <line text="null" />
  16. <line text="int 123" />
  17. <line text="long 999" />
  18. <line text="double 12.340000" />
  19. <line text="String foo" />
  20. <line text="[123, foo, 999, 12.34]" />
  21. <line text="Non-circle" />
  22. <line text="Small circle" />
  23. <line text="Large circle" />
  24. <line text="Sealed sub-class A" />
  25. <line text="Sealed sub-class B" />
  26. <line text="Sealed sub-record C" />
  27. </stdout>
  28. </run>
  29. </ajc-test>
  30. <!-- Java ?? final, Java 17, 18 preview -->
  31. <ajc-test dir="features198/java17" vm="18" title="switch pattern matching aspect">
  32. <compile files="SwitchPatternAspect.aj" options="--enable-preview -18" />
  33. <run class="Application" vmargs="--enable-preview">
  34. <stdout>
  35. <line text="null" />
  36. <line text="int 123" />
  37. <line text="long 999" />
  38. <line text="double 12.340000" />
  39. <line text="String foo" />
  40. <line text="[123, foo, 999, 12.34]" />
  41. <line text="Non-circle" />
  42. <line text="Small circle" />
  43. <line text="Large circle" />
  44. <line text="Sealed sub-class A" />
  45. <line text="Sealed sub-class B" />
  46. <line text="Sealed sub-record C" />
  47. </stdout>
  48. </run>
  49. </ajc-test>
  50. <!-- Java ?? final, Java 17, 18 preview -->
  51. <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 error 1">
  52. <compile files="SwitchPatternPreview2Error1.java" options="--enable-preview -18">
  53. <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
  54. <message kind="error" file="SwitchPatternPreview2Error1.java" text="This case label is dominated by one of the preceding case label"/>
  55. </compile>
  56. </ajc-test>
  57. <!-- Java ?? final, Java 17, 18 preview -->
  58. <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 error 2">
  59. <compile files="SwitchPatternPreview2Error2.java" options="--enable-preview -18">
  60. <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
  61. <message kind="error" file="SwitchPatternPreview2Error2.java" text="This case label is dominated by one of the preceding case label"/>
  62. </compile>
  63. </ajc-test>
  64. <!-- Java ?? final, Java 17, 18 preview -->
  65. <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 java">
  66. <compile files="SwitchPatternPreview2OK.java" options="--enable-preview -18" />
  67. <run class="SwitchPatternPreview2OK" vmargs="--enable-preview">
  68. <message></message>
  69. <stdout>
  70. <line text="absolute value 1: -1" />
  71. <line text="other integer: 0" />
  72. <line text="positive integer: 42" />
  73. <line text="other integer: -99" />
  74. <line text="positive integer: 123" />
  75. <line text="value unavailable: null" />
  76. <!--
  77. <line text="null" />
  78. <line text="int 123" />
  79. <line text="long 999" />
  80. <line text="double 12.340000" />
  81. <line text="String foo" />
  82. <line text="[123, foo, 999, 12.34]" />
  83. <line text="Non-circle" />
  84. <line text="Small circle" />
  85. <line text="Large circle" />
  86. <line text="Sealed sub-class A" />
  87. <line text="Sealed sub-class B" />
  88. <line text="Sealed sub-record C" />
  89. -->
  90. </stdout>
  91. </run>
  92. </ajc-test>
  93. <!-- Java ?? final, Java 17, 18 preview -->
  94. <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 aspect">
  95. <compile files="SwitchPatternPreview2Aspect.aj" options="--enable-preview -18" />
  96. <run class="Application" vmargs="--enable-preview">
  97. <stdout>
  98. <line text="absolute value 1: -1" />
  99. <line text="other integer: 0" />
  100. <line text="positive integer: 42" />
  101. <line text="other integer: -99" />
  102. <line text="positive integer: 123" />
  103. <line text="value unavailable: null" />
  104. <!--
  105. <line text="null" />
  106. <line text="int 123" />
  107. <line text="long 999" />
  108. <line text="double 12.340000" />
  109. <line text="String foo" />
  110. <line text="[123, foo, 999, 12.34]" />
  111. <line text="Non-circle" />
  112. <line text="Small circle" />
  113. <line text="Large circle" />
  114. <line text="Sealed sub-class A" />
  115. <line text="Sealed sub-class B" />
  116. <line text="Sealed sub-record C" />
  117. -->
  118. </stdout>
  119. </run>
  120. </ajc-test>
  121. <ajc-test dir="bugs199/github_115" title="annotation style A">
  122. <compile files="A.java" options="-1.5">
  123. <message kind="warning" line="28" text="advice defined in Azpect has not been applied [Xlint:adviceDidNotMatch]"/>
  124. </compile>
  125. <run class="A">
  126. <stdout>
  127. <line text="Azpect.before"/>
  128. <line text="A.main"/>
  129. </stdout>
  130. </run>
  131. </ajc-test>
  132. <ajc-test dir="bugs199/github_115" title="annotation style B">
  133. <compile files="B.java" options="-1.5"/>
  134. <run class="B">
  135. <stdout>
  136. <line text="Azpect.before"/>
  137. <line text="B.main"/>
  138. </stdout>
  139. </run>
  140. </ajc-test>
  141. <ajc-test dir="bugs199/github_120" title="annotation style C">
  142. <compile files="C.java" options="-1.5"/>
  143. <run class="C">
  144. <stdout>
  145. <line text="check if() pointcut running on C(1)"/>
  146. <line text="Azpect1.beforeAdvice executing"/>
  147. <line text="C.run() executing"/>
  148. </stdout>
  149. </run>
  150. </ajc-test>
  151. <ajc-test dir="bugs199/github_120" title="annotation style D">
  152. <compile files="D.java" options="-1.5"/>
  153. <run class="D">
  154. <stdout>
  155. <line text="advice running"/>
  156. <line text="D.run() executing"/>
  157. </stdout>
  158. </run>
  159. </ajc-test>
  160. <ajc-test dir="bugs199/github_122" title="annotation style negated if">
  161. <compile files="E.java" options="-1.5"/>
  162. <run class="E">
  163. <stdout>
  164. <line text="advice running"/>
  165. <line text="E.run() executing"/>
  166. </stdout>
  167. </run>
  168. </ajc-test>
  169. <ajc-test dir="bugs199/github_125" title="compiler can re-open closed JARs">
  170. <!--
  171. Here the Java test sets system property org.aspectj.weaver.openarchives to 20 in order to provoke
  172. open JAR limit exhaustion
  173. -->
  174. <compile files="Application.java" options="-1.5" />
  175. <run class="Application">
  176. <stdout>
  177. <line text="Before advice"/>
  178. <line text="Hello world!"/>
  179. </stdout>
  180. </run>
  181. </ajc-test>
  182. <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (@AspectJ)">
  183. <compile files="Application.java MarkerA.java MarkerB.java annotation_syntax/MarkerAAspect.aj annotation_syntax/MarkerBAspect.aj" options="-1.8" />
  184. <run class="Application" options="1,1">
  185. <stdout ordered="no">
  186. <line text=">> Outer intercept"/>
  187. <line text=" >> Outer proceed"/>
  188. <line text=" >> Inner intercept"/>
  189. <line text=" &lt;&lt; Inner intercept"/>
  190. <line text=" &lt;&lt; Outer proceed"/>
  191. <line text="&lt;&lt; Outer intercept"/>
  192. <line text=" >> Inner proceed"/>
  193. <line text=" Doing something"/>
  194. <line text=" &lt;&lt; Inner proceed"/>
  195. </stdout>
  196. </run>
  197. <run class="Application" options="2,1">
  198. <stdout ordered="no">
  199. <line text=">> Outer intercept"/>
  200. <line text=" >> Outer proceed"/>
  201. <line text=" >> Inner intercept"/>
  202. <line text=" &lt;&lt; Inner intercept"/>
  203. <line text=" &lt;&lt; Outer proceed"/>
  204. <line text=" >> Outer proceed"/>
  205. <line text=" >> Inner intercept"/>
  206. <line text=" >> Inner proceed"/>
  207. <line text=" Doing something"/>
  208. <line text=" &lt;&lt; Inner proceed"/>
  209. <line text=" &lt;&lt; Inner intercept"/>
  210. <line text=" &lt;&lt; Outer proceed"/>
  211. <line text=" >> Inner proceed"/>
  212. <line text=" Doing something"/>
  213. <line text=" &lt;&lt; Inner proceed"/>
  214. <line text="&lt;&lt; Outer intercept"/>
  215. </stdout>
  216. </run>
  217. <run class="Application" options="1,2">
  218. <stdout ordered="no">
  219. <line text=">> Outer intercept"/>
  220. <line text=" >> Outer proceed"/>
  221. <line text=" >> Inner intercept"/>
  222. <line text=" &lt;&lt; Inner intercept"/>
  223. <line text=" &lt;&lt; Outer proceed"/>
  224. <line text="&lt;&lt; Outer intercept"/>
  225. <line text=" >> Inner proceed"/>
  226. <line text=" Doing something"/>
  227. <line text=" &lt;&lt; Inner proceed"/>
  228. <line text=" >> Inner proceed"/>
  229. <line text=" Doing something"/>
  230. <line text=" &lt;&lt; Inner proceed"/>
  231. </stdout>
  232. </run>
  233. <run class="Application" options="2,2">
  234. <stdout ordered="no">
  235. <line text=">> Outer intercept"/>
  236. <line text=" >> Outer proceed"/>
  237. <line text=" >> Inner intercept"/>
  238. <line text=" &lt;&lt; Inner intercept"/>
  239. <line text=" &lt;&lt; Outer proceed"/>
  240. <line text=" >> Outer proceed"/>
  241. <line text=" >> Inner intercept"/>
  242. <line text=" >> Inner proceed"/>
  243. <line text=" &lt;&lt; Inner intercept"/>
  244. <line text=" Doing something"/>
  245. <line text=" &lt;&lt; Inner proceed"/>
  246. <line text=" &lt;&lt; Outer proceed"/>
  247. <line text=" >> Inner proceed"/>
  248. <line text=" >> Inner proceed"/>
  249. <line text=" Doing something"/>
  250. <line text=" &lt;&lt; Inner proceed"/>
  251. <line text=" >> Inner proceed"/>
  252. <line text=" Doing something"/>
  253. <line text=" &lt;&lt; Inner proceed"/>
  254. <line text=" Doing something"/>
  255. <line text=" &lt;&lt; Inner proceed"/>
  256. <line text="&lt;&lt; Outer intercept"/>
  257. </stdout>
  258. </run>
  259. </ajc-test>
  260. <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (@AspectJ, thread pool)">
  261. <compile files="Application.java MarkerA.java MarkerB.java annotation_syntax/MarkerAAspect.aj annotation_syntax/MarkerBAspect.aj" options="-1.8" />
  262. <run class="Application" options="1,1,true">
  263. <stdout ordered="no">
  264. <line text=">> Outer intercept"/>
  265. <line text=" >> Outer proceed"/>
  266. <line text=" >> Inner intercept"/>
  267. <line text=" &lt;&lt; Inner intercept"/>
  268. <line text=" &lt;&lt; Outer proceed"/>
  269. <line text="&lt;&lt; Outer intercept"/>
  270. <line text=" >> Inner proceed"/>
  271. <line text=" Doing something"/>
  272. <line text=" &lt;&lt; Inner proceed"/>
  273. </stdout>
  274. </run>
  275. <run class="Application" options="2,1,true">
  276. <stdout ordered="no">
  277. <line text=">> Outer intercept"/>
  278. <line text=" >> Outer proceed"/>
  279. <line text=" >> Inner intercept"/>
  280. <line text=" &lt;&lt; Inner intercept"/>
  281. <line text=" &lt;&lt; Outer proceed"/>
  282. <line text=" >> Outer proceed"/>
  283. <line text=" >> Inner intercept"/>
  284. <line text=" >> Inner proceed"/>
  285. <line text=" Doing something"/>
  286. <line text=" &lt;&lt; Inner proceed"/>
  287. <line text=" &lt;&lt; Inner intercept"/>
  288. <line text=" &lt;&lt; Outer proceed"/>
  289. <line text=" >> Inner proceed"/>
  290. <line text=" Doing something"/>
  291. <line text=" &lt;&lt; Inner proceed"/>
  292. <line text="&lt;&lt; Outer intercept"/>
  293. </stdout>
  294. </run>
  295. <run class="Application" options="1,2,true">
  296. <stdout ordered="no">
  297. <line text=">> Outer intercept"/>
  298. <line text=" >> Outer proceed"/>
  299. <line text=" >> Inner intercept"/>
  300. <line text=" &lt;&lt; Inner intercept"/>
  301. <line text=" &lt;&lt; Outer proceed"/>
  302. <line text="&lt;&lt; Outer intercept"/>
  303. <line text=" >> Inner proceed"/>
  304. <line text=" Doing something"/>
  305. <line text=" &lt;&lt; Inner proceed"/>
  306. <line text=" >> Inner proceed"/>
  307. <line text=" Doing something"/>
  308. <line text=" &lt;&lt; Inner proceed"/>
  309. </stdout>
  310. </run>
  311. <run class="Application" options="2,2,true">
  312. <stdout ordered="no">
  313. <line text=">> Outer intercept"/>
  314. <line text=" >> Outer proceed"/>
  315. <line text=" >> Inner intercept"/>
  316. <line text=" &lt;&lt; Inner intercept"/>
  317. <line text=" &lt;&lt; Outer proceed"/>
  318. <line text=" >> Outer proceed"/>
  319. <line text=" >> Inner intercept"/>
  320. <line text=" >> Inner proceed"/>
  321. <line text=" &lt;&lt; Inner intercept"/>
  322. <line text=" Doing something"/>
  323. <line text=" &lt;&lt; Inner proceed"/>
  324. <line text=" &lt;&lt; Outer proceed"/>
  325. <line text=" >> Inner proceed"/>
  326. <line text=" >> Inner proceed"/>
  327. <line text=" Doing something"/>
  328. <line text=" &lt;&lt; Inner proceed"/>
  329. <line text=" >> Inner proceed"/>
  330. <line text=" Doing something"/>
  331. <line text=" &lt;&lt; Inner proceed"/>
  332. <line text=" Doing something"/>
  333. <line text=" &lt;&lt; Inner proceed"/>
  334. <line text="&lt;&lt; Outer intercept"/>
  335. </stdout>
  336. </run>
  337. </ajc-test>
  338. <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (native)">
  339. <compile files="Application.java MarkerA.java MarkerB.java native_syntax/MarkerAAspect.aj native_syntax/MarkerBAspect.aj" options="-1.8" />
  340. <run class="Application" options="1,1">
  341. <stdout ordered="no">
  342. <line text=">> Outer intercept"/>
  343. <line text=" >> Outer proceed"/>
  344. <line text=" >> Inner intercept"/>
  345. <line text=" &lt;&lt; Inner intercept"/>
  346. <line text=" &lt;&lt; Outer proceed"/>
  347. <line text="&lt;&lt; Outer intercept"/>
  348. <line text=" >> Inner proceed"/>
  349. <line text=" Doing something"/>
  350. <line text=" &lt;&lt; Inner proceed"/>
  351. </stdout>
  352. </run>
  353. <run class="Application" options="2,1">
  354. <stdout ordered="no">
  355. <line text=">> Outer intercept"/>
  356. <line text=" >> Outer proceed"/>
  357. <line text=" >> Inner intercept"/>
  358. <line text=" &lt;&lt; Inner intercept"/>
  359. <line text=" &lt;&lt; Outer proceed"/>
  360. <line text=" >> Outer proceed"/>
  361. <line text=" >> Inner intercept"/>
  362. <line text=" >> Inner proceed"/>
  363. <line text=" Doing something"/>
  364. <line text=" &lt;&lt; Inner proceed"/>
  365. <line text=" &lt;&lt; Inner intercept"/>
  366. <line text=" &lt;&lt; Outer proceed"/>
  367. <line text=" >> Inner proceed"/>
  368. <line text=" Doing something"/>
  369. <line text=" &lt;&lt; Inner proceed"/>
  370. <line text="&lt;&lt; Outer intercept"/>
  371. </stdout>
  372. </run>
  373. <run class="Application" options="1,2">
  374. <stdout ordered="no">
  375. <line text=">> Outer intercept"/>
  376. <line text=" >> Outer proceed"/>
  377. <line text=" >> Inner intercept"/>
  378. <line text=" &lt;&lt; Inner intercept"/>
  379. <line text=" &lt;&lt; Outer proceed"/>
  380. <line text="&lt;&lt; Outer intercept"/>
  381. <line text=" >> Inner proceed"/>
  382. <line text=" Doing something"/>
  383. <line text=" &lt;&lt; Inner proceed"/>
  384. <line text=" >> Inner proceed"/>
  385. <line text=" Doing something"/>
  386. <line text=" &lt;&lt; Inner proceed"/>
  387. </stdout>
  388. </run>
  389. <run class="Application" options="2,2">
  390. <stdout ordered="no">
  391. <line text=">> Outer intercept"/>
  392. <line text=" >> Outer proceed"/>
  393. <line text=" >> Inner intercept"/>
  394. <line text=" &lt;&lt; Inner intercept"/>
  395. <line text=" &lt;&lt; Outer proceed"/>
  396. <line text=" >> Outer proceed"/>
  397. <line text=" >> Inner intercept"/>
  398. <line text=" >> Inner proceed"/>
  399. <line text=" &lt;&lt; Inner intercept"/>
  400. <line text=" Doing something"/>
  401. <line text=" &lt;&lt; Inner proceed"/>
  402. <line text=" &lt;&lt; Outer proceed"/>
  403. <line text=" >> Inner proceed"/>
  404. <line text=" >> Inner proceed"/>
  405. <line text=" Doing something"/>
  406. <line text=" &lt;&lt; Inner proceed"/>
  407. <line text=" >> Inner proceed"/>
  408. <line text=" Doing something"/>
  409. <line text=" &lt;&lt; Inner proceed"/>
  410. <line text=" Doing something"/>
  411. <line text=" &lt;&lt; Inner proceed"/>
  412. <line text="&lt;&lt; Outer intercept"/>
  413. </stdout>
  414. </run>
  415. </ajc-test>
  416. <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (native, thread pool)">
  417. <compile files="Application.java MarkerA.java MarkerB.java native_syntax/MarkerAAspect.aj native_syntax/MarkerBAspect.aj" options="-1.8" />
  418. <run class="Application" options="1,1,true">
  419. <stdout ordered="no">
  420. <line text=">> Outer intercept"/>
  421. <line text=" >> Outer proceed"/>
  422. <line text=" >> Inner intercept"/>
  423. <line text=" &lt;&lt; Inner intercept"/>
  424. <line text=" &lt;&lt; Outer proceed"/>
  425. <line text="&lt;&lt; Outer intercept"/>
  426. <line text=" >> Inner proceed"/>
  427. <line text=" Doing something"/>
  428. <line text=" &lt;&lt; Inner proceed"/>
  429. </stdout>
  430. </run>
  431. <run class="Application" options="2,1,true">
  432. <stdout ordered="no">
  433. <line text=">> Outer intercept"/>
  434. <line text=" >> Outer proceed"/>
  435. <line text=" >> Inner intercept"/>
  436. <line text=" &lt;&lt; Inner intercept"/>
  437. <line text=" &lt;&lt; Outer proceed"/>
  438. <line text=" >> Outer proceed"/>
  439. <line text=" >> Inner intercept"/>
  440. <line text=" >> Inner proceed"/>
  441. <line text=" Doing something"/>
  442. <line text=" &lt;&lt; Inner proceed"/>
  443. <line text=" &lt;&lt; Inner intercept"/>
  444. <line text=" &lt;&lt; Outer proceed"/>
  445. <line text=" >> Inner proceed"/>
  446. <line text=" Doing something"/>
  447. <line text=" &lt;&lt; Inner proceed"/>
  448. <line text="&lt;&lt; Outer intercept"/>
  449. </stdout>
  450. </run>
  451. <run class="Application" options="1,2,true">
  452. <stdout ordered="no">
  453. <line text=">> Outer intercept"/>
  454. <line text=" >> Outer proceed"/>
  455. <line text=" >> Inner intercept"/>
  456. <line text=" &lt;&lt; Inner intercept"/>
  457. <line text=" &lt;&lt; Outer proceed"/>
  458. <line text="&lt;&lt; Outer intercept"/>
  459. <line text=" >> Inner proceed"/>
  460. <line text=" Doing something"/>
  461. <line text=" &lt;&lt; Inner proceed"/>
  462. <line text=" >> Inner proceed"/>
  463. <line text=" Doing something"/>
  464. <line text=" &lt;&lt; Inner proceed"/>
  465. </stdout>
  466. </run>
  467. <run class="Application" options="2,2,true">
  468. <stdout ordered="no">
  469. <line text=">> Outer intercept"/>
  470. <line text=" >> Outer proceed"/>
  471. <line text=" >> Inner intercept"/>
  472. <line text=" &lt;&lt; Inner intercept"/>
  473. <line text=" &lt;&lt; Outer proceed"/>
  474. <line text=" >> Outer proceed"/>
  475. <line text=" >> Inner intercept"/>
  476. <line text=" >> Inner proceed"/>
  477. <line text=" &lt;&lt; Inner intercept"/>
  478. <line text=" Doing something"/>
  479. <line text=" &lt;&lt; Inner proceed"/>
  480. <line text=" &lt;&lt; Outer proceed"/>
  481. <line text=" >> Inner proceed"/>
  482. <line text=" >> Inner proceed"/>
  483. <line text=" Doing something"/>
  484. <line text=" &lt;&lt; Inner proceed"/>
  485. <line text=" >> Inner proceed"/>
  486. <line text=" Doing something"/>
  487. <line text=" &lt;&lt; Inner proceed"/>
  488. <line text=" Doing something"/>
  489. <line text=" &lt;&lt; Inner proceed"/>
  490. <line text="&lt;&lt; Outer intercept"/>
  491. </stdout>
  492. </run>
  493. </ajc-test>
  494. <ajc-test dir="bugs199/github_145/add_exports" title="use --add-exports" vm="9">
  495. <compile
  496. files="Application.java"
  497. options="-9 --add-exports java.base/sun.security.x509=ALL-UNNAMED"
  498. />
  499. <run
  500. class="Application"
  501. vmargs="--add-exports java.base/sun.security.x509=ALL-UNNAMED"
  502. >
  503. <stdout>
  504. <line text="java.security.cert.CertificateParsingException: java.io.IOException"/>
  505. </stdout>
  506. </run>
  507. </ajc-test>
  508. <ajc-test dir="bugs199/github_145" title="use --add-reads" vm="9">
  509. <compile
  510. files="add_modules/my.module/module-info.java add_modules/my.module/my/module/Modular.java"
  511. options="-9"
  512. outjar="my.module.jar"
  513. />
  514. <compile
  515. files="add_reads/other.module/module-info.java add_reads/other.module/other/module/Application.java"
  516. options="-9 --add-reads other.module=my.module --add-exports my.module/my.module=other.module"
  517. modulepath="$sandbox/my.module.jar"
  518. outjar="other.module.jar"
  519. />
  520. <run
  521. class="other.module.Application"
  522. vmargs="--add-reads other.module=my.module"
  523. modulepath="$sandbox/my.module.jar:$sandbox/other.module.jar"
  524. >
  525. <stdout>
  526. <line text="One modular class can use another one"/>
  527. </stdout>
  528. </run>
  529. </ajc-test>
  530. <ajc-test dir="bugs199/github_145/add_modules" title="use --add-modules" vm="9">
  531. <compile
  532. files="my.module/module-info.java my.module/my/module/Modular.java"
  533. options="-9"
  534. outjar="my.module.jar"
  535. />
  536. <compile
  537. files="NonModular.java"
  538. options="-9 --add-modules my.module --add-exports my.module/my.module=ALL-UNNAMED"
  539. modulepath="$sandbox/my.module.jar"
  540. />
  541. <run class="NonModular" modulepath="$sandbox/my.module.jar">
  542. <stdout>
  543. <line text="Non-modular class can use modular one"/>
  544. </stdout>
  545. </run>
  546. </ajc-test>
  547. <ajc-test dir="bugs199/github_145/add_modules" title="use --add-modules with non-public JDK module" vm="9">
  548. <!--
  549. Javac, AJC: no errors. ECJ: "invalid module name: jdk.charsets"
  550. This is because ECJ does not add internal JDK modules as root modules, but AJC does. This was not so much
  551. intentional in AJC, but simply due to the hacky implementation. Anyway, it works and makes AJC more
  552. Javac-compliant than ECJ, which is nice.
  553. -->
  554. <compile files="UseJDKExtendedCharsets.java" options="-9 --add-modules jdk.charsets --add-exports jdk.charsets/sun.nio.cs.ext=ALL-UNNAMED" />
  555. <run class="UseJDKExtendedCharsets" vmargs="-ea --add-modules jdk.charsets --add-exports jdk.charsets/sun.nio.cs.ext=ALL-UNNAMED">
  556. <stdout>
  557. <line text="ISO-2022-JP"/>
  558. </stdout>
  559. </run>
  560. </ajc-test>
  561. </suite>