Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75ee1ea7 authored by Makoto Onuki's avatar Makoto Onuki Committed by Android (Google) Code Review
Browse files

Merge "[Ravenwood] Dump supported APIs to CSV" into main

parents e57410c1 434d7282
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ java_genrule {

        "--debug-log $(location hoststubgen_framework-minus-apex.log) " +
        "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " +

        "--out-impl-jar $(location ravenwood.jar) " +

@@ -58,6 +59,7 @@ java_genrule {

        "hoststubgen_framework-minus-apex.log",
        "hoststubgen_framework-minus-apex_stats.csv",
        "hoststubgen_framework-minus-apex_apis.csv",
    ],
    visibility: ["//visibility:private"],
}
@@ -90,6 +92,18 @@ genrule {
    ],
}

genrule {
    name: "framework-minus-apex.ravenwood.apis",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [
        ":framework-minus-apex.ravenwood-base{hoststubgen_framework-minus-apex_apis.csv}",
    ],
    out: [
        "hoststubgen_framework-minus-apex_apis.csv",
    ],
}

java_library {
    name: "services.core-for-hoststubgen",
    installable: false, // host only jar.
@@ -108,6 +122,7 @@ java_genrule {

        "--debug-log $(location hoststubgen_services.core.log) " +
        "--stats-file $(location hoststubgen_services.core_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " +

        "--out-impl-jar $(location ravenwood.jar) " +

@@ -132,6 +147,7 @@ java_genrule {

        "hoststubgen_services.core.log",
        "hoststubgen_services.core_stats.csv",
        "hoststubgen_services.core_apis.csv",
    ],
    visibility: ["//visibility:private"],
}
@@ -161,6 +177,18 @@ genrule {
    ],
}

genrule {
    name: "services.core.ravenwood.apis",
    defaults: ["ravenwood-internal-only-visibility-genrule"],
    cmd: "cp $(in) $(out)",
    srcs: [
        ":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}",
    ],
    out: [
        "hoststubgen_services.core_apis.csv",
    ],
}

java_library {
    name: "services.core.ravenwood-jarjar",
    installable: false,
+2 −0
Original line number Diff line number Diff line
@@ -163,6 +163,8 @@ sh_test_host {
    test_suites: ["general-tests"],
    data: [
        ":framework-minus-apex.ravenwood.stats",
        ":framework-minus-apex.ravenwood.apis",
        ":services.core.ravenwood.stats",
        ":services.core.ravenwood.apis",
    ],
}
+25 −8
Original line number Diff line number Diff line
@@ -17,8 +17,9 @@

set -e

# Output file
out=/tmp/ravenwood-stats-all.csv
# Output files
stats=/tmp/ravenwood-stats-all.csv
apis=/tmp/ravenwood-apis-all.csv

# Where the input files are.
path=$ANDROID_BUILD_TOP/out/host/linux-x86/testcases/ravenwood-stats-checker/x86_64/
@@ -41,12 +42,28 @@ dump() {
    sed -e '1d' -e "s/^/$jar,/"  $file
}

collect() {
collect_stats() {
    local out="$1"
    {
        echo 'Jar,PackageName,ClassName,SupportedMethods,TotalMethods'
        dump "framework-minus-apex"  hoststubgen_framework-minus-apex_stats.csv
        dump "service.core"  hoststubgen_services.core_stats.csv
    } > "$out"

    echo "Stats CVS created at $out"
}

collect_apis() {
    local out="$1"
    {
        echo 'Jar,PackageName,ClassName,MethodName,Descriptor'
        dump "framework-minus-apex"  hoststubgen_framework-minus-apex_apis.csv
        dump "service.core"  hoststubgen_services.core_apis.csv
    } > "$out"

    echo "API CVS created at $out"
}

collect >$out

echo "Full dump CVS created at $out"
collect_stats $stats
collect_apis $apis
+5 −1
Original line number Diff line number Diff line
@@ -85,9 +85,13 @@ class HostStubGen(val options: HostStubGenOptions) {

        // Dump statistics, if specified.
        options.statsFile.ifSet {
            PrintWriter(it).use { pw -> stats.dump(pw) }
            PrintWriter(it).use { pw -> stats.dumpOverview(pw) }
            log.i("Dump file created at $it")
        }
        options.apiListFile.ifSet {
            PrintWriter(it).use { pw -> stats.dumpApis(pw) }
            log.i("API list file created at $it")
        }
    }

    /**
+4 −0
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ class HostStubGenOptions(
        var enableNonStubMethodCallDetection: SetOnce<Boolean> = SetOnce(false),

        var statsFile: SetOnce<String?> = SetOnce(null),

        var apiListFile: SetOnce<String?> = SetOnce(null),
) {
    companion object {

@@ -255,6 +257,7 @@ class HostStubGenOptions(
                        "--debug-log" -> setLogFile(LogLevel.Debug, nextArg())

                        "--stats-file" -> ret.statsFile.setNextStringArg()
                        "--supported-api-list-file" -> ret.apiListFile.setNextStringArg()

                        else -> throw ArgumentsException("Unknown option: $arg")
                    }
@@ -392,6 +395,7 @@ class HostStubGenOptions(
              enablePostTrace=$enablePostTrace,
              enableNonStubMethodCallDetection=$enableNonStubMethodCallDetection,
              statsFile=$statsFile,
              apiListFile=$apiListFile,
            }
            """.trimIndent()
    }
Loading