@@ -141,7 +141,7 @@ multimodule JAVA_CONTRIB_ANNOTATION_PROCESSOR {
141141### @usage: JUNIT_TESTS_JAR(path/to/some/peer realname.jar)
142142###
143143### Specifies jar to search test suites and test cases. By default tests are
144- ### searched in the jar compild by JTEST or JUNIT5 module sources. This macro
144+ ### searched in the jar compild by JTEST, JUNIT5 or JUNIT6 module sources. This macro
145145### allows to specify diferent jar to search tests.
146146###
147147### Only one jar file is used to search tests. If this macro invoked multiple
@@ -156,6 +156,66 @@ macro JUNIT_TESTS_JAR(Dir, Jar) {
156156 SET(UNITTEST_MOD $Dir/$Jar)
157157}
158158
159+ _BUILD_JUNIT6_JAR_SEM=$_BUILD_JAR_SEM && junit6_test && $_TEST_CWD_SEM && $_TEST_ENV_SEM
160+
161+ multimodule JUNIT6 {
162+ # ATTENTION ya ide idea relies on this submodule name to find scope of `ya make` build before project generation
163+ module JAR_TESTABLE: _JAR_TEST {
164+ .ALLOWED=YT_SPEC
165+ # TODO(svidyuk) JAVA_DEPENDENCIES_CONFIGURATION must not be ignored here but there are diagnostics issues in case of ECLUDE in the middle:
166+ # * A -> B -> C -> lib-v1.4
167+ # | |-> DM(lib-v1.1)
168+ # | |-> EXCLUDE(lib-v1.4)
169+ # | |-> FORBID_CONFLICT_DM_RECENT = OK
170+ # |-> DM(lib-v1.1)
171+ # |-> FORBID_CONFLICT_DM_RECENT = FAIL (because downgrade from v1.4 to v1.1 is detected before understanding that v1.4 was excuded on the examined path)
172+ .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM JAVA_DEPENDENCIES_CONFIGURATION PROVIDES FEATURE_VERSION
173+ .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE
174+ .PEERDIRSELF=JUNIT6_JAR_COMPILATION
175+ .SEM=$_SEM_IGNORED
176+
177+ PEERDIR(devtools/jtest-annotations/junit6)
178+
179+ SET(MODULE_TYPE JUNIT6)
180+ SET_APPEND(PEERDIR_TAGS JAR_TESTABLE JAVA_TEST_LIBRARY)
181+ }
182+ module JUNIT6_JAR_COMPILATION: JAR_LIBRARY {
183+ .ALLOWED=YT_SPEC
184+ .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO JAVA_TEST_EXCLUDE=_NOOP_MACRO
185+ .FINAL_TARGET=no
186+ .DEFAULT_NAME_GENERATOR=FullPath
187+ .SEM=$_BUILD_JUNIT6_JAR_SEM
188+ .IGNORED=JUNIT_TESTS_JAR
189+
190+ PEERDIR+=devtools/junit6-runner
191+ PEERDIR+=build/platform/java/jacoco-agent
192+
193+ when ($OPENSOURCE != "yes") {
194+ PEERDIR+=devtools/jtest-annotations/junit6
195+ }
196+
197+ SET(_SEM_JAR_TARGET junit6)
198+ SET(MODULE_TYPE JUNIT6)
199+ SET_APPEND(PEERDIR_TAGS JUNIT6_JAR_COMPILATION JAVA_TEST_LIBRARY)
200+
201+ when ($OPENSOURCE == "yes" && $AUTOCHECK == "yes") {
202+ # FIXME: Replace AUTOCHECK == yes with _not a host platform_ check after YMAKE-218
203+ MODULE_LICENSES_RESTRICTION_TYPES = ALLOW_ONLY
204+ MODULE_LICENSES_RESTRICTIONS = SERVICE REQUIRE_CITATION REQUIRE_MODIFICATIONS_DISCLOSURE
205+
206+ when ($MAKE_UBERJAR_VALUE == "yes") {
207+ # At the time LICENCE_RESTRICTION does not properly distinct static / dynamic linkage in UBERJAR() modules.
208+ # Hence we forbid using UBERJAR() in OPENSOURCE()
209+ #
210+ # Should be fixed in YMAKE-1043
211+ _OK = no
212+ }
213+ }
214+
215+ ASSERT(_OK "UBERJAR() macro can not be used in this condfiguration, see YMAKE-1043")
216+ }
217+ }
218+
159219_BUILD_JUNIT5_JAR_SEM=$_BUILD_JAR_SEM && junit5_test && $_TEST_CWD_SEM && $_TEST_ENV_SEM
160220
161221multimodule JUNIT5 {
@@ -585,7 +645,7 @@ module _JAR_BASE: _BARE_UNIT {
585645 SET(MODULE_TAG JAVA)
586646
587647 # TODO: Remove JUNIT5 JTEST JAVA_TEST_LIBRARY
588- PEERDIR_TAGS=JAVA JAVA_PROTO JAVA_PROTO_FROM_SCHEMA JAVA_FBS JAVA_IDL DLL JAR_COMPILATION __EMPTY__ RESOURCE_LIB JUNIT5_JAR_COMPILATION JTEST_JAR_COMPILATION JTEST_FOR_JAR_COMPILATION JAVA_TEST_LIBRARY
648+ PEERDIR_TAGS=JAVA JAVA_PROTO JAVA_PROTO_FROM_SCHEMA JAVA_FBS JAVA_IDL DLL JAR_COMPILATION __EMPTY__ RESOURCE_LIB JUNIT6_JAR_COMPILATION JUNIT5_JAR_COMPILATION JTEST_JAR_COMPILATION JTEST_FOR_JAR_COMPILATION JAVA_TEST_LIBRARY
589649
590650 HAS_MANAGEABLE_PEERS=yes
591651 DYNAMIC_LINK=yes
0 commit comments