summaryrefslogtreecommitdiff
path: root/tools/systemfeatures/Android.bp
blob: e6d0a3d4149f5ee38ba62682ca82f498d7b73521 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_base_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_base_license"],
    default_team: "trendy_team_system_performance",
}

java_library_host {
    name: "systemfeatures-gen-lib",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
    static_libs: [
        "guava",
        "javapoet",
    ],
}

java_binary_host {
    name: "systemfeatures-gen-tool",
    main_class: "com.android.systemfeatures.SystemFeaturesGenerator",
    static_libs: ["systemfeatures-gen-lib"],
}

genrule {
    name: "systemfeatures-gen-tests-srcs",
    cmd: "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwNoFeatures --readonly=false > $(location RwNoFeatures.java) && " +
        "$(location systemfeatures-gen-tool) com.android.systemfeatures.RoNoFeatures --readonly=true --feature-apis=WATCH > $(location RoNoFeatures.java) && " +
        "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwFeatures --readonly=false --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:UNAVAILABLE --feature=AUTO: > $(location RwFeatures.java) && " +
        "$(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)",
    out: [
        "RwNoFeatures.java",
        "RoNoFeatures.java",
        "RwFeatures.java",
        "RoFeatures.java",
    ],
    tools: ["systemfeatures-gen-tool"],
}

// Functional runtime behavior testing.
java_test_host {
    name: "systemfeatures-gen-tests",
    test_suites: ["general-tests"],
    srcs: [
        "tests/src/**/*.java",
        ":systemfeatures-gen-tests-srcs",
    ],
    test_options: {
        unit_test: true,
    },
    static_libs: [
        "aconfig-annotations-lib",
        "framework-annotations-lib",
        "junit",
        "objenesis",
        "mockito",
        "systemfeatures-gen-lib",
        "truth",
    ],
}

// Rename the goldens as they may be copied into the source tree, and we don't
// need or want the usual `.java` linting (e.g., copyright checks).
genrule {
    name: "systemfeatures-gen-tests-golden-srcs",
    cmd: "for f in $(in); do cp $$f $(genDir)/tests/gen/$$(basename $$f).gen; done",
    srcs: [":systemfeatures-gen-tests-srcs"],
    out: [
        "tests/gen/RwNoFeatures.java.gen",
        "tests/gen/RoNoFeatures.java.gen",
        "tests/gen/RwFeatures.java.gen",
        "tests/gen/RoFeatures.java.gen",
    ],
}

// Golden output testing. Golden sources can be updated via:
//   $ANDROID_BUILD_TOP/frameworks/base/tools/systemfeatures/tests/golden_test.sh --update
sh_test_host {
    name: "systemfeatures-gen-golden-tests",
    src: "tests/golden_test.sh",
    filename: "systemfeatures-gen-golden-tests.sh",
    test_config: "tests/systemfeatures-gen-golden-tests.xml",
    data: [
        "tests/golden/**/*.java*",
        ":systemfeatures-gen-tests-golden-srcs",
    ],
    test_options: {
        unit_test: true,
    },
}