xref: /aosp_15_r20/external/testng/Android.bp (revision 83a54b2f2026052c38867f4cde56111edcd60b56)
1*83a54b2fSSadaf Ebrahimi// Copyright (C) 2016 The Android Open Source Project
2*83a54b2fSSadaf Ebrahimi//
3*83a54b2fSSadaf Ebrahimi// Licensed under the Apache License, Version 2.0 (the "License");
4*83a54b2fSSadaf Ebrahimi// you may not use this file except in compliance with the License.
5*83a54b2fSSadaf Ebrahimi// You may obtain a copy of the License at
6*83a54b2fSSadaf Ebrahimi//
7*83a54b2fSSadaf Ebrahimi//      http://www.apache.org/licenses/LICENSE-2.0
8*83a54b2fSSadaf Ebrahimi//
9*83a54b2fSSadaf Ebrahimi// Unless required by applicable law or agreed to in writing, software
10*83a54b2fSSadaf Ebrahimi// distributed under the License is distributed on an "AS IS" BASIS,
11*83a54b2fSSadaf Ebrahimi// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*83a54b2fSSadaf Ebrahimi// See the License for the specific language governing permissions and
13*83a54b2fSSadaf Ebrahimi// limitations under the License.
14*83a54b2fSSadaf Ebrahimi//
15*83a54b2fSSadaf Ebrahimi
16*83a54b2fSSadaf Ebrahimi//
17*83a54b2fSSadaf Ebrahimi// Build support for testng within the Android Open Source Project
18*83a54b2fSSadaf Ebrahimi// See https://source.android.com/source/building.html for more information
19*83a54b2fSSadaf Ebrahimi//
20*83a54b2fSSadaf Ebrahimi//
21*83a54b2fSSadaf Ebrahimi// The following optional support has been disabled:
22*83a54b2fSSadaf Ebrahimi// - ant
23*83a54b2fSSadaf Ebrahimi// - bsh
24*83a54b2fSSadaf Ebrahimi//
25*83a54b2fSSadaf Ebrahimi// JUnit support is enabled, but needs to be explicitly added in with LOCAL_STATIC_JAVA_LIBRARIES
26*83a54b2fSSadaf Ebrahimi// by whichever app/library is also including testng.
27*83a54b2fSSadaf Ebrahimi
28*83a54b2fSSadaf Ebrahimi// These files don't exist in the source tree, they need to be generated during the build.
29*83a54b2fSSadaf Ebrahimipackage {
30*83a54b2fSSadaf Ebrahimi    default_applicable_licenses: ["external_testng_license"],
31*83a54b2fSSadaf Ebrahimi}
32*83a54b2fSSadaf Ebrahimi
33*83a54b2fSSadaf Ebrahimi// Added automatically by a large-scale-change that took the approach of
34*83a54b2fSSadaf Ebrahimi// 'apply every license found to every target'. While this makes sure we respect
35*83a54b2fSSadaf Ebrahimi// every license restriction, it may not be entirely correct.
36*83a54b2fSSadaf Ebrahimi//
37*83a54b2fSSadaf Ebrahimi// e.g. GPL in an MIT project might only apply to the contrib/ directory.
38*83a54b2fSSadaf Ebrahimi//
39*83a54b2fSSadaf Ebrahimi// Please consider splitting the single license below into multiple licenses,
40*83a54b2fSSadaf Ebrahimi// taking care not to lose any license_kind information, and overriding the
41*83a54b2fSSadaf Ebrahimi// default license using the 'licenses: [...]' property on targets as needed.
42*83a54b2fSSadaf Ebrahimi//
43*83a54b2fSSadaf Ebrahimi// For unused files, consider creating a 'fileGroup' with "//visibility:private"
44*83a54b2fSSadaf Ebrahimi// to attach the license to, and including a comment whether the files may be
45*83a54b2fSSadaf Ebrahimi// used in the current project.
46*83a54b2fSSadaf Ebrahimi//
47*83a54b2fSSadaf Ebrahimi// large-scale-change included anything that looked like it might be a license
48*83a54b2fSSadaf Ebrahimi// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
49*83a54b2fSSadaf Ebrahimi//
50*83a54b2fSSadaf Ebrahimi// Please consider removing redundant or irrelevant files from 'license_text:'.
51*83a54b2fSSadaf Ebrahimi// See: http://go/android-license-faq
52*83a54b2fSSadaf Ebrahimilicense {
53*83a54b2fSSadaf Ebrahimi    name: "external_testng_license",
54*83a54b2fSSadaf Ebrahimi    visibility: [":__subpackages__"],
55*83a54b2fSSadaf Ebrahimi    license_kinds: [
56*83a54b2fSSadaf Ebrahimi        "SPDX-license-identifier-Apache-2.0",
57*83a54b2fSSadaf Ebrahimi        "SPDX-license-identifier-CPL-1.0",
58*83a54b2fSSadaf Ebrahimi    ],
59*83a54b2fSSadaf Ebrahimi    license_text: [
60*83a54b2fSSadaf Ebrahimi        "LICENSE.txt",
61*83a54b2fSSadaf Ebrahimi        "NOTICE",
62*83a54b2fSSadaf Ebrahimi    ],
63*83a54b2fSSadaf Ebrahimi}
64*83a54b2fSSadaf Ebrahimi
65*83a54b2fSSadaf Ebrahimigenrule {
66*83a54b2fSSadaf Ebrahimi    name: "testng-generated-srcs",
67*83a54b2fSSadaf Ebrahimi    tool_files: [
68*83a54b2fSSadaf Ebrahimi        "generate-version-file",
69*83a54b2fSSadaf Ebrahimi        "kobalt/src/Build.kt",
70*83a54b2fSSadaf Ebrahimi    ],
71*83a54b2fSSadaf Ebrahimi    srcs: [
72*83a54b2fSSadaf Ebrahimi        "src/main/resources/org/testng/internal/VersionTemplateJava",
73*83a54b2fSSadaf Ebrahimi    ],
74*83a54b2fSSadaf Ebrahimi    cmd: "$(location generate-version-file) $(in) @version@ $(location kobalt/src/Build.kt) VERSION > $(out)",
75*83a54b2fSSadaf Ebrahimi    out: ["src/generated/java/org/testng/internal/Version.java"],
76*83a54b2fSSadaf Ebrahimi}
77*83a54b2fSSadaf Ebrahimi
78*83a54b2fSSadaf Ebrahimijava_library {
79*83a54b2fSSadaf Ebrahimi    name: "testng",
80*83a54b2fSSadaf Ebrahimi    host_supported: true,
81*83a54b2fSSadaf Ebrahimi    hostdex: true,
82*83a54b2fSSadaf Ebrahimi    sdk_version: "core_current",
83*83a54b2fSSadaf Ebrahimi
84*83a54b2fSSadaf Ebrahimi    srcs: [
85*83a54b2fSSadaf Ebrahimi        "src/main/**/*.java",
86*83a54b2fSSadaf Ebrahimi        ":testng-generated-srcs",
87*83a54b2fSSadaf Ebrahimi        // Android-specific replacements of some of the excluded files.
88*83a54b2fSSadaf Ebrahimi        "android-src/**/*.java",
89*83a54b2fSSadaf Ebrahimi    ],
90*83a54b2fSSadaf Ebrahimi    exclude_srcs: [
91*83a54b2fSSadaf Ebrahimi        // These files don't build on Android, either due to missing java.* APIs or due to missing dependencies (see above).
92*83a54b2fSSadaf Ebrahimi        "src/main/java/com/beust/testng/TestNGAntTask.java",
93*83a54b2fSSadaf Ebrahimi        "src/main/java/org/testng/TestNGAntTask.java",
94*83a54b2fSSadaf Ebrahimi        "src/main/java/org/testng/internal/Bsh.java",
95*83a54b2fSSadaf Ebrahimi        "src/main/java/org/testng/internal/PropertyUtils.java",
96*83a54b2fSSadaf Ebrahimi        "src/main/java/org/testng/internal/PathUtils.java",
97*83a54b2fSSadaf Ebrahimi    ],
98*83a54b2fSSadaf Ebrahimi
99*83a54b2fSSadaf Ebrahimi    static_libs: [
100*83a54b2fSSadaf Ebrahimi        "jcommander",
101*83a54b2fSSadaf Ebrahimi        "snakeyaml",
102*83a54b2fSSadaf Ebrahimi        "guice",
103*83a54b2fSSadaf Ebrahimi    ],
104*83a54b2fSSadaf Ebrahimi    libs: ["junit"],
105*83a54b2fSSadaf Ebrahimi
106*83a54b2fSSadaf Ebrahimi    errorprone: {
107*83a54b2fSSadaf Ebrahimi        javacflags: [
108*83a54b2fSSadaf Ebrahimi            "-Xep:ComparableType:WARN",
109*83a54b2fSSadaf Ebrahimi            "-Xep:NonRuntimeAnnotation:WARN",
110*83a54b2fSSadaf Ebrahimi            "-Xep:GetClassOnAnnotation:WARN",
111*83a54b2fSSadaf Ebrahimi            "-Xep:RandomModInteger:WARN",
112*83a54b2fSSadaf Ebrahimi            "-Xep:FormatString:WARN",
113*83a54b2fSSadaf Ebrahimi            "-Xep:DoubleBraceInitialization:WARN",
114*83a54b2fSSadaf Ebrahimi            "-Xep:UnusedCollectionModifiedInPlace:WARN",
115*83a54b2fSSadaf Ebrahimi        ],
116*83a54b2fSSadaf Ebrahimi    },
117*83a54b2fSSadaf Ebrahimi}
118*83a54b2fSSadaf Ebrahimi
119*83a54b2fSSadaf Ebrahimi// TODO: also add the tests once we have testng working.
120