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

Commit 4a32ea7f authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Delete obsolete stats support by HostStubGenStats" into main

parents 4ffe9032 94263d76
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -314,21 +314,18 @@ sh_test_host {
    src: "scripts/ravenwood-stats-checker.sh",
    test_suites: ["general-tests"],
    device_common_data: [
        ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_stats.csv}",
        ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_apis.csv}",
        ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_keep_all.txt}",
        ":framework-minus-apex.ravenwood-base_all{hoststubgen_framework-minus-apex_dump.txt}",
        ":services.core.ravenwood-base{hoststubgen_services.core_stats.csv}",

        ":services.core.ravenwood-base{hoststubgen_services.core_apis.csv}",
        ":services.core.ravenwood-base{hoststubgen_services.core_keep_all.txt}",
        ":services.core.ravenwood-base{hoststubgen_services.core_dump.txt}",

        ":framework-configinfrastructure.ravenwood-base{framework-configinfrastructure_stats.csv}",
        ":framework-configinfrastructure.ravenwood-base{framework-configinfrastructure_apis.csv}",
        ":framework-configinfrastructure.ravenwood-base{framework-configinfrastructure_keep_all.txt}",
        ":framework-configinfrastructure.ravenwood-base{framework-configinfrastructure_dump.txt}",

        ":framework-statsd.ravenwood-base{framework-statsd_stats.csv}",
        ":framework-statsd.ravenwood-base{framework-statsd_apis.csv}",
        ":framework-statsd.ravenwood-base{framework-statsd_keep_all.txt}",
        ":framework-statsd.ravenwood-base{framework-statsd_dump.txt}",
+0 −12
Original line number Diff line number Diff line
@@ -124,7 +124,6 @@ java_genrule {
    name: "framework-minus-apex.ravenwood-base_all",
    defaults: ["framework-minus-apex.ravenwood-base_defaults"],
    cmd: framework_minus_apex_cmd +
        "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " +

        "--gen-keep-all-file $(location hoststubgen_framework-minus-apex_keep_all.txt) " +
@@ -133,7 +132,6 @@ java_genrule {
    out: [
        "hoststubgen_framework-minus-apex_keep_all.txt",
        "hoststubgen_framework-minus-apex_dump.txt",
        "hoststubgen_framework-minus-apex_stats.csv",
        "hoststubgen_framework-minus-apex_apis.csv",
    ],
}
@@ -183,7 +181,6 @@ java_genrule {
        "@$(location :ravenwood-common-options) " +

        "--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) " +
        "--gen-keep-all-file $(location hoststubgen_services.core_keep_all.txt) " +
        "--gen-input-dump-file $(location hoststubgen_services.core_dump.txt) " +
@@ -210,7 +207,6 @@ java_genrule {
        "hoststubgen_services.core_dump.txt",

        "hoststubgen_services.core.log",
        "hoststubgen_services.core_stats.csv",
        "hoststubgen_services.core_apis.csv",
    ],
    visibility: ["//visibility:private"],
@@ -248,7 +244,6 @@ java_genrule {
        "@$(location :ravenwood-common-options) " +

        "--debug-log $(location hoststubgen_core-icu4j-for-host.log) " +
        "--stats-file $(location hoststubgen_core-icu4j-for-host_stats.csv) " +
        "--supported-api-list-file $(location hoststubgen_core-icu4j-for-host_apis.csv) " +
        "--gen-keep-all-file $(location hoststubgen_core-icu4j-for-host_keep_all.txt) " +
        "--gen-input-dump-file $(location hoststubgen_core-icu4j-for-host_dump.txt) " +
@@ -274,7 +269,6 @@ java_genrule {
        "hoststubgen_core-icu4j-for-host_dump.txt",

        "hoststubgen_core-icu4j-for-host.log",
        "hoststubgen_core-icu4j-for-host_stats.csv",
        "hoststubgen_core-icu4j-for-host_apis.csv",
    ],
    visibility: ["//visibility:private"],
@@ -298,7 +292,6 @@ java_genrule {
        "@$(location :ravenwood-common-options) " +

        "--debug-log $(location framework-configinfrastructure.log) " +
        "--stats-file $(location framework-configinfrastructure_stats.csv) " +
        "--supported-api-list-file $(location framework-configinfrastructure_apis.csv) " +
        "--gen-keep-all-file $(location framework-configinfrastructure_keep_all.txt) " +
        "--gen-input-dump-file $(location framework-configinfrastructure_dump.txt) " +
@@ -324,7 +317,6 @@ java_genrule {
        "framework-configinfrastructure_dump.txt",

        "framework-configinfrastructure.log",
        "framework-configinfrastructure_stats.csv",
        "framework-configinfrastructure_apis.csv",
    ],
    visibility: ["//visibility:private"],
@@ -348,7 +340,6 @@ java_genrule {
        "@$(location :ravenwood-common-options) " +

        "--debug-log $(location framework-statsd.log) " +
        "--stats-file $(location framework-statsd_stats.csv) " +
        "--supported-api-list-file $(location framework-statsd_apis.csv) " +
        "--gen-keep-all-file $(location framework-statsd_keep_all.txt) " +
        "--gen-input-dump-file $(location framework-statsd_dump.txt) " +
@@ -374,7 +365,6 @@ java_genrule {
        "framework-statsd_dump.txt",

        "framework-statsd.log",
        "framework-statsd_stats.csv",
        "framework-statsd_apis.csv",
    ],
    visibility: ["//visibility:private"],
@@ -398,7 +388,6 @@ java_genrule {
        "@$(location :ravenwood-common-options) " +

        "--debug-log $(location framework-graphics.log) " +
        "--stats-file $(location framework-graphics_stats.csv) " +
        "--supported-api-list-file $(location framework-graphics_apis.csv) " +
        "--gen-keep-all-file $(location framework-graphics_keep_all.txt) " +
        "--gen-input-dump-file $(location framework-graphics_dump.txt) " +
@@ -424,7 +413,6 @@ java_genrule {
        "framework-graphics_dump.txt",

        "framework-graphics.log",
        "framework-graphics_stats.csv",
        "framework-graphics_apis.csv",
    ],
    visibility: ["//visibility:private"],
+0 −20
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ set -e

# Output files
out_dir=/tmp/ravenwood
stats=$out_dir/ravenwood-stats-all.csv
apis=$out_dir/ravenwood-apis-all.csv
keep_all_dir=$out_dir/ravenwood-keep-all/
dump_dir=$out_dir/ravenwood-dump/
@@ -78,23 +77,6 @@ dump() {
    sed -e '1d' -e "s/^/$jar,$timestamp,/" $file
}

collect_stats() {
    local out="$1"
    local desc="$2"
    {
        # Copy the header, with the first column appended.
        echo -n "Jar,Generated Date,"
        head -n 1 hoststubgen_framework-minus-apex_stats.csv

        dump "framework-minus-apex" hoststubgen_framework-minus-apex_stats.csv
        dump "service.core"  hoststubgen_services.core_stats.csv
        dump "framework-configinfrastructure"  framework-configinfrastructure_stats.csv
        dump "framework-statsd"  framework-statsd_stats.csv
    } > "$out"

    echo "Stats CVS created at $out$desc"
}

collect_apis() {
    local out="$1"
    local desc="$2"
@@ -112,8 +94,6 @@ collect_apis() {
    echo "API CVS created at $out$desc"
}


collect_stats $stats " (import it as 'ravenwood_stats')"
collect_apis $apis " (import it as 'ravenwood_supported_apis2')"

cp *keep_all.txt $keep_all_dir
+0 −2
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ class HostStubGenClassProcessor(
    private val options: HostStubGenClassProcessorOptions,
    val allClasses: ClassNodes,
    private val errors: HostStubGenErrors = HostStubGenErrors(),
    private val stats: HostStubGenStats? = null,
) {
    val filter = buildFilter()
    val remapper = FilterRemapper(filter)
@@ -149,7 +148,6 @@ class HostStubGenClassProcessor(

        val visitorOptions = BaseAdapter.Options(
            errors = errors,
            stats = stats,
            deleteClassFinals = options.deleteFinals.get,
            deleteMethodFinals = options.deleteFinals.get,
            throwExceptionType = options.throwExceptionType.get,
+0 −91
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.hoststubgen

import com.android.hoststubgen.asm.ClassNodes
import com.android.hoststubgen.asm.getOuterClassNameFromFullClassName
import com.android.hoststubgen.asm.getPackageNameFromFullClassName
import com.android.hoststubgen.filters.FilterPolicyWithReason
import com.android.hoststubgen.filters.StatsLabel
import org.objectweb.asm.Opcodes
import java.io.PrintWriter

/**
 * This class is no longer used. It was used for the old ravenwood dashboard. (b/402797626)
 *
 * TODO: Delete the class.
 */
open class HostStubGenStats(val classes: ClassNodes) {
    data class Stats(
            var supported: Int = 0,
            var total: Int = 0,
            val children: MutableMap<String, Stats> = mutableMapOf<String, Stats>(),
    )

    private val stats = mutableMapOf<String, Stats>()

    fun onVisitPolicyForMethod(
        fullClassName: String,
        methodName: String,
        descriptor: String,
        policy: FilterPolicyWithReason,
        access: Int
    ) {
        // Ignore methods that aren't public
        if ((access and Opcodes.ACC_PUBLIC) == 0) return
        // Ignore methods that are abstract
        if ((access and Opcodes.ACC_ABSTRACT) != 0) return

        // Ignore methods where policy isn't relevant
        val statsLabel = policy.statsLabel
        if (statsLabel == StatsLabel.Ignored) return

        val cn = classes.findClass(fullClassName) ?: return

        val packageName = getPackageNameFromFullClassName(fullClassName)
        val className = getOuterClassNameFromFullClassName(fullClassName)

        // Ignore methods for certain generated code
        if (className.endsWith("Proto")
                or className.endsWith("ProtoEnums")
                or className.endsWith("LogTags")
                or className.endsWith("StatsLog")) {
            return
        }

        val packageStats = stats.getOrPut(packageName) { Stats() }
        val classStats = packageStats.children.getOrPut(className) { Stats() }

        if (statsLabel == StatsLabel.Supported) {
            packageStats.supported += 1
            classStats.supported += 1
        }
        packageStats.total += 1
        classStats.total += 1
    }

    fun dumpOverview(pw: PrintWriter) {
        pw.printf("PackageName,ClassName,SupportedMethods,TotalMethods\n")
        stats.toSortedMap().forEach { (packageName, packageStats) ->
            if (packageStats.supported > 0) {
                packageStats.children.toSortedMap().forEach { (className, classStats) ->
                    pw.printf("%s,%s,%d,%d\n", packageName, className,
                            classStats.supported, classStats.total)
                }
            }
        }
    }
}
Loading