blob: 2ebede39504e3dd8cd140daff18fff6904a0e575 [file] [log] [blame]
Jared Duke230d6502024-07-31 21:35:24 +00001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "frameworks_base_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 default_applicable_licenses: ["frameworks_base_license"],
Jared Duke2d1a8322024-08-23 22:17:09 +00008 default_team: "trendy_team_system_performance",
Jared Duke230d6502024-07-31 21:35:24 +00009}
10
11java_library_host {
12 name: "systemfeatures-gen-lib",
13 srcs: [
14 "src/**/*.java",
15 "src/**/*.kt",
Jared Duke13519f02024-11-21 22:36:12 +000016 ":framework-metalava-annotations",
Jared Duke230d6502024-07-31 21:35:24 +000017 ],
18 static_libs: [
19 "guava",
20 "javapoet",
21 ],
22}
23
24java_binary_host {
25 name: "systemfeatures-gen-tool",
26 main_class: "com.android.systemfeatures.SystemFeaturesGenerator",
27 static_libs: ["systemfeatures-gen-lib"],
28}
29
Jared Duke13519f02024-11-21 22:36:12 +000030java_plugin {
31 name: "systemfeatures-metadata-processor",
32 processor_class: "com.android.systemfeatures.SystemFeaturesMetadataProcessor",
33 static_libs: ["systemfeatures-gen-lib"],
34}
35
Jared Duke230d6502024-07-31 21:35:24 +000036genrule {
37 name: "systemfeatures-gen-tests-srcs",
38 cmd: "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwNoFeatures --readonly=false > $(location RwNoFeatures.java) && " +
Jared Duke97ffe122024-08-19 23:30:28 +000039 "$(location systemfeatures-gen-tool) com.android.systemfeatures.RoNoFeatures --readonly=true --feature-apis=WATCH > $(location RoNoFeatures.java) && " +
Jared Duke90e43632024-09-20 17:05:02 +000040 "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwFeatures --readonly=false --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:UNAVAILABLE --feature=AUTO: > $(location RwFeatures.java) && " +
41 "$(location systemfeatures-gen-tool) com.android.systemfeatures.RoFeatures --readonly=true --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:UNAVAILABLE --feature=AUTO: --feature-apis=WATCH,PC > $(location RoFeatures.java)",
Jared Duke230d6502024-07-31 21:35:24 +000042 out: [
43 "RwNoFeatures.java",
44 "RoNoFeatures.java",
45 "RwFeatures.java",
46 "RoFeatures.java",
47 ],
48 tools: ["systemfeatures-gen-tool"],
49}
50
Jared Duke2d1a8322024-08-23 22:17:09 +000051// Functional runtime behavior testing.
Jared Duke230d6502024-07-31 21:35:24 +000052java_test_host {
53 name: "systemfeatures-gen-tests",
54 test_suites: ["general-tests"],
55 srcs: [
Jared Duke2d1a8322024-08-23 22:17:09 +000056 "tests/src/**/*.java",
Jared Duke230d6502024-07-31 21:35:24 +000057 ":systemfeatures-gen-tests-srcs",
58 ],
59 test_options: {
60 unit_test: true,
61 },
62 static_libs: [
63 "aconfig-annotations-lib",
64 "framework-annotations-lib",
65 "junit",
66 "objenesis",
67 "mockito",
Jared Dukef0e69b82024-10-31 23:54:21 +000068 "systemfeatures-gen-lib",
Jared Duke230d6502024-07-31 21:35:24 +000069 "truth",
70 ],
Jared Duke13519f02024-11-21 22:36:12 +000071 plugins: ["systemfeatures-metadata-processor"],
Jared Duke230d6502024-07-31 21:35:24 +000072}
Jared Duke2d1a8322024-08-23 22:17:09 +000073
74// Rename the goldens as they may be copied into the source tree, and we don't
75// need or want the usual `.java` linting (e.g., copyright checks).
76genrule {
77 name: "systemfeatures-gen-tests-golden-srcs",
78 cmd: "for f in $(in); do cp $$f $(genDir)/tests/gen/$$(basename $$f).gen; done",
79 srcs: [":systemfeatures-gen-tests-srcs"],
80 out: [
81 "tests/gen/RwNoFeatures.java.gen",
82 "tests/gen/RoNoFeatures.java.gen",
83 "tests/gen/RwFeatures.java.gen",
84 "tests/gen/RoFeatures.java.gen",
85 ],
86}
87
88// Golden output testing. Golden sources can be updated via:
89// $ANDROID_BUILD_TOP/frameworks/base/tools/systemfeatures/tests/golden_test.sh --update
90sh_test_host {
91 name: "systemfeatures-gen-golden-tests",
92 src: "tests/golden_test.sh",
93 filename: "systemfeatures-gen-golden-tests.sh",
94 test_config: "tests/systemfeatures-gen-golden-tests.xml",
95 data: [
96 "tests/golden/**/*.java*",
97 ":systemfeatures-gen-tests-golden-srcs",
98 ],
99 test_options: {
100 unit_test: true,
101 },
102}