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

Commit 48b31da5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add unit tests for CountMetricProducer, EventMetricProducer"

parents 843f07e2 93fe3a34
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -157,8 +157,10 @@ LOCAL_SRC_FILES := \
    tests/LogReader_test.cpp \
    tests/MetricsManager_test.cpp \
    tests/UidMap_test.cpp \
    tests/OringDurationTracker_test.cpp \
    tests/MaxDurationTracker_test.cpp
    tests/metrics/OringDurationTracker_test.cpp \
    tests/metrics/MaxDurationTracker_test.cpp \
    tests/metrics/CountMetricProducer_test.cpp \
    tests/metrics/EventMetricProducer_test.cpp


LOCAL_STATIC_LIBRARIES := \
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ ConfigMetricsReport StatsLogProcessor::onDumpReport(const ConfigKey& key) {
        *dest = m;
    }
    auto temp = mUidMap->getOutput(key);
    report.set_allocated_uid_map(&temp);
    report.mutable_uid_map()->Swap(&temp);
    return report;
}

+11 −7
Original line number Diff line number Diff line
@@ -83,28 +83,31 @@ bool ResourcePowerManagerPuller::Pull(const int tagId, vector<shared_ptr<LogEven
        return false;
    }

    uint64_t timestamp = time(nullptr) * NS_PER_SEC;

    data->clear();
    Return<void> ret = gPowerHalV1_0->getPlatformLowPowerStats(
            [&data](hidl_vec<PowerStatePlatformSleepState> states, Status status) {
            [&data, timestamp](hidl_vec<PowerStatePlatformSleepState> states, Status status) {

                if (status != Status::SUCCESS) return;

                for (size_t i = 0; i < states.size(); i++) {
                    const PowerStatePlatformSleepState& state = states[i];

                    auto statePtr = make_shared<LogEvent>(power_state_platform_sleep_state_tag);
                    auto statePtr =
                            make_shared<LogEvent>(power_state_platform_sleep_state_tag, timestamp);
                    auto elemList = statePtr->GetAndroidLogEventList();
                    *elemList << state.name;
                    *elemList << state.residencyInMsecSinceBoot;
                    *elemList << state.totalTransitions;
                    *elemList << state.supportedOnlyInSuspend;
                    statePtr->init();
                    data->push_back(statePtr);

                    VLOG("powerstate: %s, %lld, %lld, %d", state.name.c_str(),
                         (long long)state.residencyInMsecSinceBoot,
                         (long long)state.totalTransitions, state.supportedOnlyInSuspend ? 1 : 0);
                    for (auto voter : state.voters) {
                        auto voterPtr = make_shared<LogEvent>(power_state_voter_tag);
                        auto voterPtr = make_shared<LogEvent>(power_state_voter_tag, timestamp);
                        auto elemList = voterPtr->GetAndroidLogEventList();
                        *elemList << state.name;
                        *elemList << voter.name;
@@ -128,7 +131,7 @@ bool ResourcePowerManagerPuller::Pull(const int tagId, vector<shared_ptr<LogEven
            android::hardware::power::V1_1::IPower::castFrom(gPowerHalV1_0);
    if (gPowerHal_1_1 != nullptr) {
        ret = gPowerHal_1_1->getSubsystemLowPowerStats(
                [&data](hidl_vec<PowerStateSubsystem> subsystems, Status status) {
                [&data, timestamp](hidl_vec<PowerStateSubsystem> subsystems, Status status) {

                    if (status != Status::SUCCESS) return;

@@ -137,8 +140,8 @@ bool ResourcePowerManagerPuller::Pull(const int tagId, vector<shared_ptr<LogEven
                            const PowerStateSubsystem& subsystem = subsystems[i];
                            for (size_t j = 0; j < subsystem.states.size(); j++) {
                                const PowerStateSubsystemSleepState& state = subsystem.states[j];
                                auto subsystemStatePtr =
                                        make_shared<LogEvent>(power_state_subsystem_state_tag);
                                auto subsystemStatePtr = make_shared<LogEvent>(
                                        power_state_subsystem_state_tag, timestamp);
                                auto elemList = subsystemStatePtr->GetAndroidLogEventList();
                                *elemList << subsystem.name;
                                *elemList << state.name;
@@ -146,6 +149,7 @@ bool ResourcePowerManagerPuller::Pull(const int tagId, vector<shared_ptr<LogEven
                                *elemList << state.totalTransitions;
                                *elemList << state.lastEntryTimestampMs;
                                *elemList << state.supportedOnlyInSuspend;
                                subsystemStatePtr->init();
                                data->push_back(subsystemStatePtr);
                                VLOG("subsystemstate: %s, %s, %lld, %lld, %lld",
                                     subsystem.name.c_str(), state.name.c_str(),
+30 −34
Original line number Diff line number Diff line
@@ -30,11 +30,11 @@

#include <iostream>

using std::make_shared;
using std::map;
using std::shared_ptr;
using std::string;
using std::vector;
using std::make_shared;
using std::shared_ptr;

namespace android {
namespace os {
@@ -42,26 +42,21 @@ namespace statsd {

StatsPullerManager::StatsPullerManager()
    : mCurrentPullingInterval(LONG_MAX), mPullStartTimeMs(get_pull_start_time_ms()) {
    shared_ptr<StatsPuller> statsCompanionServicePuller = make_shared<StatsCompanionServicePuller>();
    shared_ptr <StatsPuller>
        resourcePowerManagerPuller = make_shared<ResourcePowerManagerPuller>();

    mPullers.insert({android::util::KERNEL_WAKELOCK_PULLED,
                     statsCompanionServicePuller});
    mPullers.insert({android::util::WIFI_BYTES_TRANSFERRED,
                     statsCompanionServicePuller});
    mPullers.insert({android::util::MOBILE_BYTES_TRANSFERRED,
                     statsCompanionServicePuller});
    mPullers.insert({android::util::WIFI_BYTES_TRANSFERRED_BY_FG_BG,
                     statsCompanionServicePuller});
    mPullers.insert({android::util::MOBILE_BYTES_TRANSFERRED_BY_FG_BG,
                     statsCompanionServicePuller});
    mPullers.insert({android::util::POWER_STATE_PLATFORM_SLEEP_STATE_PULLED,
                     resourcePowerManagerPuller});
    mPullers.insert({android::util::POWER_STATE_VOTER_PULLED,
                     resourcePowerManagerPuller});
    mPullers.insert({android::util::POWER_STATE_SUBSYSTEM_SLEEP_STATE_PULLED,
                     resourcePowerManagerPuller});
    shared_ptr<StatsPuller> statsCompanionServicePuller =
            make_shared<StatsCompanionServicePuller>();
    shared_ptr<StatsPuller> resourcePowerManagerPuller = make_shared<ResourcePowerManagerPuller>();

    mPullers.insert({android::util::KERNEL_WAKELOCK_PULLED, statsCompanionServicePuller});
    mPullers.insert({android::util::WIFI_BYTES_TRANSFERRED, statsCompanionServicePuller});
    mPullers.insert({android::util::MOBILE_BYTES_TRANSFERRED, statsCompanionServicePuller});
    mPullers.insert({android::util::WIFI_BYTES_TRANSFERRED_BY_FG_BG, statsCompanionServicePuller});
    mPullers.insert(
            {android::util::MOBILE_BYTES_TRANSFERRED_BY_FG_BG, statsCompanionServicePuller});
    mPullers.insert(
            {android::util::POWER_STATE_PLATFORM_SLEEP_STATE_PULLED, resourcePowerManagerPuller});
    mPullers.insert({android::util::POWER_STATE_VOTER_PULLED, resourcePowerManagerPuller});
    mPullers.insert(
            {android::util::POWER_STATE_SUBSYSTEM_SLEEP_STATE_PULLED, resourcePowerManagerPuller});

    mStatsCompanionService = StatsService::getStatsCompanionService();
}
@@ -91,7 +86,8 @@ long StatsPullerManager::get_pull_start_time_ms() {
    return time(nullptr) * 1000;
}

void StatsPullerManager::RegisterReceiver(int tagId, sp<PullDataReceiver> receiver, long intervalMs) {
void StatsPullerManager::RegisterReceiver(int tagId, sp<PullDataReceiver> receiver,
                                          long intervalMs) {
    AutoMutex _l(mReceiversLock);
    vector<ReceiverInfo>& receivers = mReceivers[tagId];
    for (auto it = receivers.begin(); it != receivers.end(); it++) {
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ LogEvent::LogEvent(log_msg& msg) : mList(msg) {
    init(msg.entry_v1.sec * NS_PER_SEC + msg.entry_v1.nsec, &mList);
}

LogEvent::LogEvent(int tag) : mList(tag) {
LogEvent::LogEvent(int tag, uint64_t timestampNs) : mList(tag), mTimestampNs(timestampNs) {
}

LogEvent::~LogEvent() {
Loading