blob: e6d0a3d4149f5ee38ba62682ca82f498d7b73521 [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",
16 ],
17 static_libs: [
18 "guava",
19 "javapoet",
20 ],
21}
22
23java_binary_host {
24 name: "systemfeatures-gen-tool",
25 main_class: "com.android.systemfeatures.SystemFeaturesGenerator",
26 static_libs: ["systemfeatures-gen-lib"],
27}
28
Jared Duke230d6502024-07-31 21:35:24 +000029genrule {
30 name: "systemfeatures-gen-tests-srcs",
31 cmd: "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwNoFeatures --readonly=false > $(location RwNoFeatures.java) && " +
Jared Duke97ffe122024-08-19 23:30:28 +000032 "$(location systemfeatures-gen-tool) com.android.systemfeatures.RoNoFeatures --readonly=true --feature-apis=WATCH > $(location RoNoFeatures.java) && " +
Jared Duke90e43632024-09-20 17:05:02 +000033 "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwFeatures --readonly=false --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:UNAVAILABLE --feature=AUTO: > $(location RwFeatures.java) && " +
34 "$(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 +000035 out: [
36 "RwNoFeatures.java",
37 "RoNoFeatures.java",
38 "RwFeatures.java",
39 "RoFeatures.java",
40 ],
41 tools: ["systemfeatures-gen-tool"],
42}
43
Jared Duke2d1a8322024-08-23 22:17:09 +000044// Functional runtime behavior testing.
Jared Duke230d6502024-07-31 21:35:24 +000045java_test_host {
46 name: "systemfeatures-gen-tests",
47 test_suites: ["general-tests"],
48 srcs: [
Jared Duke2d1a8322024-08-23 22:17:09 +000049 "tests/src/**/*.java",
Jared Duke230d6502024-07-31 21:35:24 +000050 ":systemfeatures-gen-tests-srcs",
51 ],
52 test_options: {
53 unit_test: true,
54 },
55 static_libs: [
56 "aconfig-annotations-lib",
57 "framework-annotations-lib",
58 "junit",
59 "objenesis",
60 "mockito",
Jared Dukef0e69b82024-10-31 23:54:21 +000061 "systemfeatures-gen-lib",
Jared Duke230d6502024-07-31 21:35:24 +000062 "truth",
63 ],
64}
Jared Duke2d1a8322024-08-23 22:17:09 +000065
66// Rename the goldens as they may be copied into the source tree, and we don't
67// need or want the usual `.java` linting (e.g., copyright checks).
68genrule {
69 name: "systemfeatures-gen-tests-golden-srcs",
70 cmd: "for f in $(in); do cp $$f $(genDir)/tests/gen/$$(basename $$f).gen; done",
71 srcs: [":systemfeatures-gen-tests-srcs"],
72 out: [
73 "tests/gen/RwNoFeatures.java.gen",
74 "tests/gen/RoNoFeatures.java.gen",
75 "tests/gen/RwFeatures.java.gen",
76 "tests/gen/RoFeatures.java.gen",
77 ],
78}
79
80// Golden output testing. Golden sources can be updated via:
81// $ANDROID_BUILD_TOP/frameworks/base/tools/systemfeatures/tests/golden_test.sh --update
82sh_test_host {
83 name: "systemfeatures-gen-golden-tests",
84 src: "tests/golden_test.sh",
85 filename: "systemfeatures-gen-golden-tests.sh",
86 test_config: "tests/systemfeatures-gen-golden-tests.xml",
87 data: [
88 "tests/golden/**/*.java*",
89 ":systemfeatures-gen-tests-golden-srcs",
90 ],
91 test_options: {
92 unit_test: true,
93 },
94}