• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 18252174847

05 Oct 2025 01:36AM UTC coverage: 43.382% (-36.9%) from 80.261%
18252174847

push

github

web-flow
run tests on mac arm (#22717)

Just doing the minimal to pull forward the x86_64 pattern.

ref #20993

25776 of 59416 relevant lines covered (43.38%)

1.3 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/python/pants/backend/java/target_types.py
1
# Copyright 2020 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

4
from __future__ import annotations
×
5

6
from dataclasses import dataclass
×
7

8
from pants.engine.rules import collect_rules
×
9
from pants.engine.target import (
×
10
    COMMON_TARGET_FIELDS,
11
    FieldSet,
12
    MultipleSourcesField,
13
    SingleSourceField,
14
    Target,
15
    TargetFilesGenerator,
16
    generate_multiple_sources_field_help_message,
17
)
18
from pants.jvm import target_types as jvm_target_types
×
19
from pants.jvm.run import jvm_run_rules
×
20
from pants.jvm.target_types import (
×
21
    JunitTestExtraEnvVarsField,
22
    JunitTestSourceField,
23
    JunitTestTimeoutField,
24
    JvmDependenciesField,
25
    JvmJdkField,
26
    JvmMainClassNameField,
27
    JvmProvidesTypesField,
28
    JvmResolveField,
29
    JvmRunnableSourceFieldSet,
30
)
31

32

33
class JavaSourceField(SingleSourceField):
×
34
    expected_file_extensions = (".java",)
×
35

36

37
class JavaGeneratorSourcesField(MultipleSourcesField):
×
38
    expected_file_extensions = (".java",)
×
39

40

41
@dataclass(frozen=True)
×
42
class JavaFieldSet(JvmRunnableSourceFieldSet):
×
43
    required_fields = (JavaSourceField,)
×
44

45
    sources: JavaSourceField
×
46

47

48
@dataclass(frozen=True)
×
49
class JavaGeneratorFieldSet(FieldSet):
×
50
    required_fields = (JavaGeneratorSourcesField,)
×
51

52
    sources: JavaGeneratorSourcesField
×
53

54

55
# -----------------------------------------------------------------------------------------------
56
# `junit_test` and `junit_tests` targets
57
# -----------------------------------------------------------------------------------------------
58

59

60
class JavaJunitTestSourceField(JavaSourceField, JunitTestSourceField):
×
61
    """A JUnit test file written in Java."""
62

63

64
class JunitTestTarget(Target):
×
65
    alias = "junit_test"
×
66
    core_fields = (
×
67
        *COMMON_TARGET_FIELDS,
68
        JavaJunitTestSourceField,
69
        JunitTestTimeoutField,
70
        JunitTestExtraEnvVarsField,
71
        JvmDependenciesField,
72
        JvmResolveField,
73
        JvmProvidesTypesField,
74
        JvmJdkField,
75
    )
76
    help = "A single Java test, run with JUnit."
×
77

78

79
class JavaTestsGeneratorSourcesField(JavaGeneratorSourcesField):
×
80
    default = ("*Test.java",)
×
81
    help = generate_multiple_sources_field_help_message(
×
82
        "Example: `sources=['*Test.java', '!TestIgnore.java']`"
83
    )
84

85

86
class JunitTestsGeneratorTarget(TargetFilesGenerator):
×
87
    alias = "junit_tests"
×
88
    core_fields = (
×
89
        *COMMON_TARGET_FIELDS,
90
        JavaTestsGeneratorSourcesField,
91
    )
92
    generated_target_cls = JunitTestTarget
×
93
    copied_fields = COMMON_TARGET_FIELDS
×
94
    moved_fields = (
×
95
        JunitTestTimeoutField,
96
        JunitTestExtraEnvVarsField,
97
        JvmDependenciesField,
98
        JvmJdkField,
99
        JvmProvidesTypesField,
100
        JvmResolveField,
101
    )
102
    help = "Generate a `junit_test` target for each file in the `sources` field."
×
103

104

105
# -----------------------------------------------------------------------------------------------
106
# `java_source` and `java_sources` targets
107
# -----------------------------------------------------------------------------------------------
108

109

110
class JavaSourceTarget(Target):
×
111
    alias = "java_source"
×
112
    core_fields = (
×
113
        *COMMON_TARGET_FIELDS,
114
        JvmDependenciesField,
115
        JavaSourceField,
116
        JvmResolveField,
117
        JvmMainClassNameField,
118
        JvmProvidesTypesField,
119
        JvmJdkField,
120
    )
121
    help = "A single Java source file containing application or library code."
×
122

123

124
class JavaSourcesGeneratorSourcesField(JavaGeneratorSourcesField):
×
125
    default = ("*.java",) + tuple(f"!{pat}" for pat in JavaTestsGeneratorSourcesField.default)
×
126
    help = generate_multiple_sources_field_help_message(
×
127
        "Example: `sources=['Example.java', 'New*.java', '!OldExample.java']`"
128
    )
129

130

131
class JavaSourcesGeneratorTarget(TargetFilesGenerator):
×
132
    alias = "java_sources"
×
133
    core_fields = (
×
134
        *COMMON_TARGET_FIELDS,
135
        JavaSourcesGeneratorSourcesField,
136
    )
137
    generated_target_cls = JavaSourceTarget
×
138
    copied_fields = COMMON_TARGET_FIELDS
×
139
    moved_fields = (
×
140
        JvmDependenciesField,
141
        JvmResolveField,
142
        JvmJdkField,
143
        JvmMainClassNameField,
144
        JvmProvidesTypesField,
145
    )
146
    help = "Generate a `java_source` target for each file in the `sources` field."
×
147

148

149
def rules():
×
150
    return [
×
151
        *collect_rules(),
152
        *jvm_target_types.rules(),
153
        *jvm_run_rules(JavaFieldSet),
154
    ]
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc