Skip to content

Commit fc7ffbf

Browse files
Do test discovery in ZincRunner
1 parent 36088c3 commit fc7ffbf

File tree

18 files changed

+401
-81
lines changed

18 files changed

+401
-81
lines changed

MODULE.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ annex.install(
4141
"com.thesamet.scalapb:scalapb-runtime_2.13:{}".format(scalapb_version),
4242
"net.sourceforge.argparse4j:argparse4j:0.8.1",
4343
"org.jacoco:org.jacoco.core:0.7.5.201505241946",
44+
"org.playframework:play-json_3:3.0.4",
4445
"org.scala-lang:scala-compiler:{}".format(scala_2_13_version),
4546
"org.scala-lang:scala-library:{}".format(scala_2_13_version),
4647
"org.scala-lang:scala-reflect:{}".format(scala_2_13_version),

annex_install.json

Lines changed: 222 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
3-
"__INPUT_ARTIFACTS_HASH": 416553459,
4-
"__RESOLVED_ARTIFACTS_HASH": -333989184,
3+
"__INPUT_ARTIFACTS_HASH": -1426185539,
4+
"__RESOLVED_ARTIFACTS_HASH": 696573469,
55
"conflict_resolution": {
66
"org.scala-sbt:io_2.13:1.10.1": "org.scala-sbt:io_2.13:1.10.4"
77
},
@@ -237,6 +237,41 @@
237237
},
238238
"version": "0.10.1"
239239
},
240+
"com.fasterxml.jackson.core:jackson-annotations": {
241+
"shasums": {
242+
"jar": "ea1b3a9ec60a353f4d7e78559c7140abb9bcf71b31456e9d57c8289f7cf397f1",
243+
"sources": "e6f7f659bb4abd9be1fe2f259f95a2340744aff373eb34c134d6e2210bdc300d"
244+
},
245+
"version": "2.14.3"
246+
},
247+
"com.fasterxml.jackson.core:jackson-core": {
248+
"shasums": {
249+
"jar": "7ee2debad3c002e97b28b84d5f1b2044a38e780abb673948238f5bc656e2fe44",
250+
"sources": "3ee18051ff11ca9e0fd203bb163f2322c09573c76b6c1b13e2bd1031fb6f962a"
251+
},
252+
"version": "2.14.3"
253+
},
254+
"com.fasterxml.jackson.core:jackson-databind": {
255+
"shasums": {
256+
"jar": "ef0694046dc86e8a601e69efef24cda88a85773aaf012f5b9b1167d6f2e7de45",
257+
"sources": "f9f6c8dd8b543c02eefc5844d068d90ff070ab913115be5df704b99b1988264b"
258+
},
259+
"version": "2.14.3"
260+
},
261+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": {
262+
"shasums": {
263+
"jar": "174dff10d8b8a762354401346317be3844f31f807a68eb72ce2b287ca273f4a4",
264+
"sources": "762f23914234ea46addf3cf7c6625c50a03a045c62887b038f61e58d3dc72e15"
265+
},
266+
"version": "2.14.3"
267+
},
268+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": {
269+
"shasums": {
270+
"jar": "0b1b6d0267f939fe1c2d3167d33176a0b9f8c9b38444787d281e846beddf9ad6",
271+
"sources": "43ca94b09ba2f33407a8367d98600fa3027da371cb6c62cc2a274f00917e6450"
272+
},
273+
"version": "2.14.3"
274+
},
240275
"com.github.pathikrit:better-files_2.12": {
241276
"shasums": {
242277
"jar": "79b49bc134f06a6a091a962ec10ce3f1810403bccec7d99bf9928b7eb02e85c4",
@@ -671,6 +706,20 @@
671706
},
672707
"version": "5.0.1"
673708
},
709+
"org.playframework:play-functional_3": {
710+
"shasums": {
711+
"jar": "a0ff6d625cb7066a3e559148751e6d5822b76847008e544fceddac29a63ccf3e",
712+
"sources": "130056318d90cadcbb1c8bd65c188963a9d20a302d71b168460d2c7deb54a972"
713+
},
714+
"version": "3.0.4"
715+
},
716+
"org.playframework:play-json_3": {
717+
"shasums": {
718+
"jar": "cccc992d104f5694798ee5391d29758ba59e374d1edc82a43cd9f3bdcc57764a",
719+
"sources": "b8eec5e983e866af339aea1aca4d2104fcfa47e90daadfff99409f8509b804fb"
720+
},
721+
"version": "3.0.4"
722+
},
674723
"org.reactivestreams:reactive-streams": {
675724
"shasums": {
676725
"jar": "ef867702a614b96eb6c64fb65a8f5e14bdfcabbc1ae056f78a1643f7b79ca0eb",
@@ -1279,6 +1328,19 @@
12791328
"com.eed3si9n:sjson-new-core_2.13",
12801329
"org.scala-lang:scala-library"
12811330
],
1331+
"com.fasterxml.jackson.core:jackson-databind": [
1332+
"com.fasterxml.jackson.core:jackson-annotations",
1333+
"com.fasterxml.jackson.core:jackson-core"
1334+
],
1335+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": [
1336+
"com.fasterxml.jackson.core:jackson-core",
1337+
"com.fasterxml.jackson.core:jackson-databind"
1338+
],
1339+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": [
1340+
"com.fasterxml.jackson.core:jackson-annotations",
1341+
"com.fasterxml.jackson.core:jackson-core",
1342+
"com.fasterxml.jackson.core:jackson-databind"
1343+
],
12821344
"com.github.pathikrit:better-files_2.12": [
12831345
"org.scala-lang:scala-library"
12841346
],
@@ -1448,6 +1510,18 @@
14481510
"org.jline:jline-native",
14491511
"org.jline:jline-terminal"
14501512
],
1513+
"org.playframework:play-functional_3": [
1514+
"org.scala-lang:scala3-library_3"
1515+
],
1516+
"org.playframework:play-json_3": [
1517+
"com.fasterxml.jackson.core:jackson-annotations",
1518+
"com.fasterxml.jackson.core:jackson-core",
1519+
"com.fasterxml.jackson.core:jackson-databind",
1520+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
1521+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
1522+
"org.playframework:play-functional_3",
1523+
"org.scala-lang:scala3-library_3"
1524+
],
14511525
"org.scala-lang.modules:scala-collection-compat_2.13": [
14521526
"org.scala-lang:scala-library"
14531527
],
@@ -1940,6 +2014,61 @@
19402014
"com.eed3si9n:sjson-new-scalajson_2.13": [
19412015
"sjsonnew.support.scalajson.unsafe"
19422016
],
2017+
"com.fasterxml.jackson.core:jackson-annotations": [
2018+
"com.fasterxml.jackson.annotation"
2019+
],
2020+
"com.fasterxml.jackson.core:jackson-core": [
2021+
"com.fasterxml.jackson.core",
2022+
"com.fasterxml.jackson.core.async",
2023+
"com.fasterxml.jackson.core.base",
2024+
"com.fasterxml.jackson.core.exc",
2025+
"com.fasterxml.jackson.core.filter",
2026+
"com.fasterxml.jackson.core.format",
2027+
"com.fasterxml.jackson.core.io",
2028+
"com.fasterxml.jackson.core.io.doubleparser",
2029+
"com.fasterxml.jackson.core.io.schubfach",
2030+
"com.fasterxml.jackson.core.json",
2031+
"com.fasterxml.jackson.core.json.async",
2032+
"com.fasterxml.jackson.core.sym",
2033+
"com.fasterxml.jackson.core.type",
2034+
"com.fasterxml.jackson.core.util"
2035+
],
2036+
"com.fasterxml.jackson.core:jackson-databind": [
2037+
"com.fasterxml.jackson.databind",
2038+
"com.fasterxml.jackson.databind.annotation",
2039+
"com.fasterxml.jackson.databind.cfg",
2040+
"com.fasterxml.jackson.databind.deser",
2041+
"com.fasterxml.jackson.databind.deser.impl",
2042+
"com.fasterxml.jackson.databind.deser.std",
2043+
"com.fasterxml.jackson.databind.exc",
2044+
"com.fasterxml.jackson.databind.ext",
2045+
"com.fasterxml.jackson.databind.introspect",
2046+
"com.fasterxml.jackson.databind.jdk14",
2047+
"com.fasterxml.jackson.databind.json",
2048+
"com.fasterxml.jackson.databind.jsonFormatVisitors",
2049+
"com.fasterxml.jackson.databind.jsonschema",
2050+
"com.fasterxml.jackson.databind.jsontype",
2051+
"com.fasterxml.jackson.databind.jsontype.impl",
2052+
"com.fasterxml.jackson.databind.module",
2053+
"com.fasterxml.jackson.databind.node",
2054+
"com.fasterxml.jackson.databind.ser",
2055+
"com.fasterxml.jackson.databind.ser.impl",
2056+
"com.fasterxml.jackson.databind.ser.std",
2057+
"com.fasterxml.jackson.databind.type",
2058+
"com.fasterxml.jackson.databind.util",
2059+
"com.fasterxml.jackson.databind.util.internal"
2060+
],
2061+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": [
2062+
"com.fasterxml.jackson.datatype.jdk8"
2063+
],
2064+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": [
2065+
"com.fasterxml.jackson.datatype.jsr310",
2066+
"com.fasterxml.jackson.datatype.jsr310.deser",
2067+
"com.fasterxml.jackson.datatype.jsr310.deser.key",
2068+
"com.fasterxml.jackson.datatype.jsr310.ser",
2069+
"com.fasterxml.jackson.datatype.jsr310.ser.key",
2070+
"com.fasterxml.jackson.datatype.jsr310.util"
2071+
],
19432072
"com.github.pathikrit:better-files_2.12": [
19442073
"better.files"
19452074
],
@@ -2522,6 +2651,15 @@
25222651
"org.objectweb.asm.util",
25232652
"org.objectweb.asm.xml"
25242653
],
2654+
"org.playframework:play-functional_3": [
2655+
"play.api.libs.functional",
2656+
"play.api.libs.functional.syntax"
2657+
],
2658+
"org.playframework:play-json_3": [
2659+
"play.api.libs.json",
2660+
"play.api.libs.json.jackson",
2661+
"play.api.libs.json.util"
2662+
],
25252663
"org.reactivestreams:reactive-streams": [
25262664
"org.reactivestreams"
25272665
],
@@ -3149,6 +3287,16 @@
31493287
"com.eed3si9n:sjson-new-scalajson_2.12:jar:sources",
31503288
"com.eed3si9n:sjson-new-scalajson_2.13",
31513289
"com.eed3si9n:sjson-new-scalajson_2.13:jar:sources",
3290+
"com.fasterxml.jackson.core:jackson-annotations",
3291+
"com.fasterxml.jackson.core:jackson-annotations:jar:sources",
3292+
"com.fasterxml.jackson.core:jackson-core",
3293+
"com.fasterxml.jackson.core:jackson-core:jar:sources",
3294+
"com.fasterxml.jackson.core:jackson-databind",
3295+
"com.fasterxml.jackson.core:jackson-databind:jar:sources",
3296+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
3297+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:sources",
3298+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
3299+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:sources",
31523300
"com.github.pathikrit:better-files_2.12",
31533301
"com.github.pathikrit:better-files_2.12:jar:sources",
31543302
"com.google.code.findbugs:jsr305",
@@ -3272,6 +3420,10 @@
32723420
"org.jline:jline:jar:sources",
32733421
"org.ow2.asm:asm-debug-all",
32743422
"org.ow2.asm:asm-debug-all:jar:sources",
3423+
"org.playframework:play-functional_3",
3424+
"org.playframework:play-functional_3:jar:sources",
3425+
"org.playframework:play-json_3",
3426+
"org.playframework:play-json_3:jar:sources",
32753427
"org.reactivestreams:reactive-streams",
32763428
"org.reactivestreams:reactive-streams:jar:sources",
32773429
"org.scala-lang.modules:scala-asm",
@@ -3462,6 +3614,16 @@
34623614
"com.eed3si9n:sjson-new-scalajson_2.12:jar:sources",
34633615
"com.eed3si9n:sjson-new-scalajson_2.13",
34643616
"com.eed3si9n:sjson-new-scalajson_2.13:jar:sources",
3617+
"com.fasterxml.jackson.core:jackson-annotations",
3618+
"com.fasterxml.jackson.core:jackson-annotations:jar:sources",
3619+
"com.fasterxml.jackson.core:jackson-core",
3620+
"com.fasterxml.jackson.core:jackson-core:jar:sources",
3621+
"com.fasterxml.jackson.core:jackson-databind",
3622+
"com.fasterxml.jackson.core:jackson-databind:jar:sources",
3623+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
3624+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:sources",
3625+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
3626+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:sources",
34653627
"com.github.pathikrit:better-files_2.12",
34663628
"com.github.pathikrit:better-files_2.12:jar:sources",
34673629
"com.google.code.findbugs:jsr305",
@@ -3585,6 +3747,10 @@
35853747
"org.jline:jline:jar:sources",
35863748
"org.ow2.asm:asm-debug-all",
35873749
"org.ow2.asm:asm-debug-all:jar:sources",
3750+
"org.playframework:play-functional_3",
3751+
"org.playframework:play-functional_3:jar:sources",
3752+
"org.playframework:play-json_3",
3753+
"org.playframework:play-json_3:jar:sources",
35883754
"org.reactivestreams:reactive-streams",
35893755
"org.reactivestreams:reactive-streams:jar:sources",
35903756
"org.scala-lang.modules:scala-asm",
@@ -3775,6 +3941,16 @@
37753941
"com.eed3si9n:sjson-new-scalajson_2.12:jar:sources",
37763942
"com.eed3si9n:sjson-new-scalajson_2.13",
37773943
"com.eed3si9n:sjson-new-scalajson_2.13:jar:sources",
3944+
"com.fasterxml.jackson.core:jackson-annotations",
3945+
"com.fasterxml.jackson.core:jackson-annotations:jar:sources",
3946+
"com.fasterxml.jackson.core:jackson-core",
3947+
"com.fasterxml.jackson.core:jackson-core:jar:sources",
3948+
"com.fasterxml.jackson.core:jackson-databind",
3949+
"com.fasterxml.jackson.core:jackson-databind:jar:sources",
3950+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8",
3951+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:sources",
3952+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310",
3953+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:sources",
37783954
"com.github.pathikrit:better-files_2.12",
37793955
"com.github.pathikrit:better-files_2.12:jar:sources",
37803956
"com.google.code.findbugs:jsr305",
@@ -3898,6 +4074,10 @@
38984074
"org.jline:jline:jar:sources",
38994075
"org.ow2.asm:asm-debug-all",
39004076
"org.ow2.asm:asm-debug-all:jar:sources",
4077+
"org.playframework:play-functional_3",
4078+
"org.playframework:play-functional_3:jar:sources",
4079+
"org.playframework:play-json_3",
4080+
"org.playframework:play-json_3:jar:sources",
39014081
"org.reactivestreams:reactive-streams",
39024082
"org.reactivestreams:reactive-streams:jar:sources",
39034083
"org.scala-lang.modules:scala-asm",
@@ -4033,6 +4213,46 @@
40334213
"ch.qos.logback.classic.servlet.LogbackServletContainerInitializer"
40344214
]
40354215
},
4216+
"com.fasterxml.jackson.core:jackson-core": {
4217+
"com.fasterxml.jackson.core.JsonFactory": [
4218+
"com.fasterxml.jackson.core.JsonFactory"
4219+
]
4220+
},
4221+
"com.fasterxml.jackson.core:jackson-core:jar:sources": {
4222+
"com.fasterxml.jackson.core.JsonFactory": [
4223+
"com.fasterxml.jackson.core.JsonFactory"
4224+
]
4225+
},
4226+
"com.fasterxml.jackson.core:jackson-databind": {
4227+
"com.fasterxml.jackson.core.ObjectCodec": [
4228+
"com.fasterxml.jackson.databind.ObjectMapper"
4229+
]
4230+
},
4231+
"com.fasterxml.jackson.core:jackson-databind:jar:sources": {
4232+
"com.fasterxml.jackson.core.ObjectCodec": [
4233+
"com.fasterxml.jackson.databind.ObjectMapper"
4234+
]
4235+
},
4236+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8": {
4237+
"com.fasterxml.jackson.databind.Module": [
4238+
"com.fasterxml.jackson.datatype.jdk8.Jdk8Module"
4239+
]
4240+
},
4241+
"com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:sources": {
4242+
"com.fasterxml.jackson.databind.Module": [
4243+
"com.fasterxml.jackson.datatype.jdk8.Jdk8Module"
4244+
]
4245+
},
4246+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310": {
4247+
"com.fasterxml.jackson.databind.Module": [
4248+
"com.fasterxml.jackson.datatype.jsr310.JavaTimeModule"
4249+
]
4250+
},
4251+
"com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:sources": {
4252+
"com.fasterxml.jackson.databind.Module": [
4253+
"com.fasterxml.jackson.datatype.jsr310.JavaTimeModule"
4254+
]
4255+
},
40364256
"org.apache.logging.log4j:log4j-api": {
40374257
"org.apache.logging.log4j.util.PropertySource": [
40384258
"org.apache.logging.log4j.util.EnvironmentPropertySource",

rules/private/phases/phase_test_launcher.bzl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ def phase_test_launcher(ctx, g):
2222
# "When attaching a transition to an outgoing edge (regardless of whether the transition is a
2323
# 1:1 or 1:2+ transition), `ctx.attr` is forced to be a list if it isn't already. The order of
2424
# elements in this list is unspecified."
25-
files = ctx.attr._target_jdk[0][java_common.JavaRuntimeInfo].files.to_list() + [g.compile.zinc_info.analysis_store]
25+
files = ctx.attr._target_jdk[0][java_common.JavaRuntimeInfo].files.to_list() + [
26+
g.compile.zinc_info.analysis_store,
27+
g.compile.tests_file,
28+
]
2629

2730
coverage_replacements = {}
2831
coverage_runner_jars = depset(direct = [])
@@ -42,7 +45,7 @@ def phase_test_launcher(ctx, g):
4245

4346
args = ctx.actions.args()
4447
args.add("--analysis_store", g.compile.zinc_info.analysis_store.short_path)
45-
args.add_all("--frameworks", ctx.attr.frameworks)
48+
args.add("--tests_file", g.compile.tests_file.short_path)
4649
if ctx.attr.isolation == "classloader":
4750
shared_deps = java_common.merge(_collect(JavaInfo, ctx.attr.shared_deps))
4851
args.add("--isolation", "classloader")

rules/private/phases/phase_zinc_compile.bzl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ def phase_zinc_compile(ctx, g):
8282
tmp,
8383
] + g.semanticdb.outputs
8484

85+
if hasattr(ctx.attr, "frameworks"):
86+
tests_file = ctx.actions.declare_file("{}/tests.json".format(ctx.label.name))
87+
88+
args.add_all("--test_frameworks", ctx.attr.frameworks)
89+
args.add("--tests_file", tests_file)
90+
91+
outputs.append(tests_file)
92+
else:
93+
tests_file = None
94+
8595
execution_requirements_tags = {
8696
"supports-multiplex-workers": "1",
8797
"supports-workers": "1",
@@ -133,6 +143,7 @@ def phase_zinc_compile(ctx, g):
133143
g.out.providers.append(zinc_info)
134144
return _ZincCompilationInfo(
135145
mains_file = mains_file,
146+
tests_file = tests_file,
136147
used = used,
137148
# todo: see about cleaning up & generalizing fields below
138149
zinc_info = zinc_info,

rules/providers.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ ZincCompilationInfo = provider(
183183
doc = "Outputs from the Zinc compilation phase.",
184184
fields = {
185185
"mains_file": "File containing the main methods of this compilation.",
186+
"tests_file": "File containing discovered tests for use by the test runner. Will be `None` if this isn't a test target.",
186187
"used": "File containing the used deps for this compilation.",
187188
"zinc_info": "a ZincInfo provider for this compilation.",
188189
},

src/main/scala/higherkindness/rules_scala/common/sbt-testing/BUILD

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,14 @@ scala_library(
2424
scala_library(
2525
name = "common",
2626
srcs = _common_srcs,
27-
scala_toolchain_name = "annex_zinc_3",
27+
scala_toolchain_name = "annex_bootstrap_3",
2828
visibility = ["//visibility:public"],
2929
deps = [
30+
"@annex//:org_playframework_play_json_3",
3031
"@annex//:org_scala_lang_modules_scala_xml_2_13",
32+
"@annex//:org_scala_sbt_compiler_interface",
3133
"@annex//:org_scala_sbt_test_interface",
34+
"@annex//:org_scala_sbt_zinc_core_2_13",
3235
],
3336
)
3437

0 commit comments

Comments
 (0)