Merge "Migrate statsd_test to use libstatslog_statsdtest" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
4980c0a6cf
@@ -189,6 +189,34 @@ genrule {
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
genrule {
|
||||||
|
name: "statslog_statsdtest.h",
|
||||||
|
tools: ["stats-log-api-gen"],
|
||||||
|
cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_statsdtest.h --module statsdtest --namespace android,os,statsd,util",
|
||||||
|
out: [
|
||||||
|
"statslog_statsdtest.h",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
genrule {
|
||||||
|
name: "statslog_statsdtest.cpp",
|
||||||
|
tools: ["stats-log-api-gen"],
|
||||||
|
cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_statsdtest.cpp --module statsdtest --namespace android,os,statsd,util --importHeader statslog_statsdtest.h",
|
||||||
|
out: [
|
||||||
|
"statslog_statsdtest.cpp",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library_static {
|
||||||
|
name: "libstatslog_statsdtest",
|
||||||
|
generated_sources: ["statslog_statsdtest.cpp"],
|
||||||
|
generated_headers: ["statslog_statsdtest.h"],
|
||||||
|
export_generated_headers: ["statslog_statsdtest.h"],
|
||||||
|
shared_libs: [
|
||||||
|
"libstatssocket",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
cc_library_static {
|
cc_library_static {
|
||||||
name: "libstatslog_statsd",
|
name: "libstatslog_statsd",
|
||||||
generated_sources: ["statslog_statsd.cpp"],
|
generated_sources: ["statslog_statsd.cpp"],
|
||||||
@@ -331,7 +359,7 @@ cc_test {
|
|||||||
static_libs: [
|
static_libs: [
|
||||||
"libgmock",
|
"libgmock",
|
||||||
"libplatformprotos",
|
"libplatformprotos",
|
||||||
"libstatslog", //TODO(b/150976524): remove this when the tests no longer hardcode atoms.
|
"libstatslog_statsdtest",
|
||||||
"libstatssocket_private",
|
"libstatssocket_private",
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -81,12 +81,16 @@ message Atom {
|
|||||||
BleScanStateChanged ble_scan_state_changed = 2 [(module) = "bluetooth"];
|
BleScanStateChanged ble_scan_state_changed = 2 [(module) = "bluetooth"];
|
||||||
ProcessStateChanged process_state_changed = 3 [(module) = "framework"];
|
ProcessStateChanged process_state_changed = 3 [(module) = "framework"];
|
||||||
BleScanResultReceived ble_scan_result_received = 4 [(module) = "bluetooth"];
|
BleScanResultReceived ble_scan_result_received = 4 [(module) = "bluetooth"];
|
||||||
SensorStateChanged sensor_state_changed = 5 [(module) = "framework"];
|
SensorStateChanged sensor_state_changed =
|
||||||
|
5 [(module) = "framework", (module) = "statsdtest"];
|
||||||
GpsScanStateChanged gps_scan_state_changed = 6 [(module) = "framework"];
|
GpsScanStateChanged gps_scan_state_changed = 6 [(module) = "framework"];
|
||||||
SyncStateChanged sync_state_changed = 7 [(module) = "framework"];
|
SyncStateChanged sync_state_changed = 7 [(module) = "framework", (module) = "statsdtest"];
|
||||||
ScheduledJobStateChanged scheduled_job_state_changed = 8 [(module) = "framework"];
|
ScheduledJobStateChanged scheduled_job_state_changed =
|
||||||
ScreenBrightnessChanged screen_brightness_changed = 9 [(module) = "framework"];
|
8 [(module) = "framework", (module) = "statsdtest"];
|
||||||
WakelockStateChanged wakelock_state_changed = 10 [(module) = "framework"];
|
ScreenBrightnessChanged screen_brightness_changed =
|
||||||
|
9 [(module) = "framework", (module) = "statsdtest"];
|
||||||
|
WakelockStateChanged wakelock_state_changed =
|
||||||
|
10 [(module) = "framework", (module) = "statsdtest"];
|
||||||
LongPartialWakelockStateChanged long_partial_wakelock_state_changed =
|
LongPartialWakelockStateChanged long_partial_wakelock_state_changed =
|
||||||
11 [(module) = "framework"];
|
11 [(module) = "framework"];
|
||||||
MobileRadioPowerStateChanged mobile_radio_power_state_changed = 12 [(module) = "framework"];
|
MobileRadioPowerStateChanged mobile_radio_power_state_changed = 12 [(module) = "framework"];
|
||||||
@@ -98,17 +102,22 @@ message Atom {
|
|||||||
CachedKillReported cached_kill_reported = 17 [(module) = "framework"];
|
CachedKillReported cached_kill_reported = 17 [(module) = "framework"];
|
||||||
ProcessMemoryStatReported process_memory_stat_reported = 18 [(module) = "framework"];
|
ProcessMemoryStatReported process_memory_stat_reported = 18 [(module) = "framework"];
|
||||||
LauncherUIChanged launcher_event = 19 [(module) = "sysui"];
|
LauncherUIChanged launcher_event = 19 [(module) = "sysui"];
|
||||||
BatterySaverModeStateChanged battery_saver_mode_state_changed = 20 [(module) = "framework"];
|
BatterySaverModeStateChanged battery_saver_mode_state_changed =
|
||||||
|
20 [(module) = "framework", (module) = "statsdtest"];
|
||||||
DeviceIdleModeStateChanged device_idle_mode_state_changed = 21 [(module) = "framework"];
|
DeviceIdleModeStateChanged device_idle_mode_state_changed = 21 [(module) = "framework"];
|
||||||
DeviceIdlingModeStateChanged device_idling_mode_state_changed = 22 [(module) = "framework"];
|
DeviceIdlingModeStateChanged device_idling_mode_state_changed = 22 [(module) = "framework"];
|
||||||
AudioStateChanged audio_state_changed = 23 [(module) = "framework"];
|
AudioStateChanged audio_state_changed = 23 [(module) = "framework"];
|
||||||
MediaCodecStateChanged media_codec_state_changed = 24 [(module) = "framework"];
|
MediaCodecStateChanged media_codec_state_changed = 24 [(module) = "framework"];
|
||||||
CameraStateChanged camera_state_changed = 25 [(module) = "framework"];
|
CameraStateChanged camera_state_changed = 25 [(module) = "framework"];
|
||||||
FlashlightStateChanged flashlight_state_changed = 26 [(module) = "framework"];
|
FlashlightStateChanged flashlight_state_changed = 26 [(module) = "framework"];
|
||||||
UidProcessStateChanged uid_process_state_changed = 27 [(module) = "framework"];
|
UidProcessStateChanged uid_process_state_changed =
|
||||||
ProcessLifeCycleStateChanged process_life_cycle_state_changed = 28 [(module) = "framework"];
|
27 [(module) = "framework", (module) = "statsdtest"];
|
||||||
ScreenStateChanged screen_state_changed = 29 [(module) = "framework"];
|
ProcessLifeCycleStateChanged process_life_cycle_state_changed =
|
||||||
BatteryLevelChanged battery_level_changed = 30 [(module) = "framework"];
|
28 [(module) = "framework", (module) = "statsdtest"];
|
||||||
|
ScreenStateChanged screen_state_changed =
|
||||||
|
29 [(module) = "framework", (module) = "statsdtest"];
|
||||||
|
BatteryLevelChanged battery_level_changed =
|
||||||
|
30 [(module) = "framework", (module) = "statsdtest"];
|
||||||
ChargingStateChanged charging_state_changed = 31 [(module) = "framework"];
|
ChargingStateChanged charging_state_changed = 31 [(module) = "framework"];
|
||||||
PluggedStateChanged plugged_state_changed = 32 [(module) = "framework"];
|
PluggedStateChanged plugged_state_changed = 32 [(module) = "framework"];
|
||||||
InteractiveStateChanged interactive_state_changed = 33 [(module) = "framework"];
|
InteractiveStateChanged interactive_state_changed = 33 [(module) = "framework"];
|
||||||
@@ -121,14 +130,15 @@ message Atom {
|
|||||||
PhoneSignalStrengthChanged phone_signal_strength_changed = 40 [(module) = "framework"];
|
PhoneSignalStrengthChanged phone_signal_strength_changed = 40 [(module) = "framework"];
|
||||||
SettingChanged setting_changed = 41 [(module) = "framework"];
|
SettingChanged setting_changed = 41 [(module) = "framework"];
|
||||||
ActivityForegroundStateChanged activity_foreground_state_changed =
|
ActivityForegroundStateChanged activity_foreground_state_changed =
|
||||||
42 [(module) = "framework"];
|
42 [(module) = "framework", (module) = "statsdtest"];
|
||||||
IsolatedUidChanged isolated_uid_changed = 43 [(module) = "framework", (module) = "statsd"];
|
IsolatedUidChanged isolated_uid_changed =
|
||||||
|
43 [(module) = "framework", (module) = "statsd", (module) = "statsdtest"];
|
||||||
PacketWakeupOccurred packet_wakeup_occurred = 44 [(module) = "framework"];
|
PacketWakeupOccurred packet_wakeup_occurred = 44 [(module) = "framework"];
|
||||||
WallClockTimeShifted wall_clock_time_shifted = 45 [(module) = "framework"];
|
WallClockTimeShifted wall_clock_time_shifted = 45 [(module) = "framework"];
|
||||||
AnomalyDetected anomaly_detected = 46 [(module) = "statsd"];
|
AnomalyDetected anomaly_detected = 46 [(module) = "statsd"];
|
||||||
AppBreadcrumbReported app_breadcrumb_reported =
|
AppBreadcrumbReported app_breadcrumb_reported =
|
||||||
47 [(allow_from_any_uid) = true, (module) = "statsd"];
|
47 [(allow_from_any_uid) = true, (module) = "statsd"];
|
||||||
AppStartOccurred app_start_occurred = 48 [(module) = "framework"];
|
AppStartOccurred app_start_occurred = 48 [(module) = "framework", (module) = "statsdtest"];
|
||||||
AppStartCanceled app_start_canceled = 49 [(module) = "framework"];
|
AppStartCanceled app_start_canceled = 49 [(module) = "framework"];
|
||||||
AppStartFullyDrawn app_start_fully_drawn = 50 [(module) = "framework"];
|
AppStartFullyDrawn app_start_fully_drawn = 50 [(module) = "framework"];
|
||||||
LmkKillOccurred lmk_kill_occurred = 51 [(module) = "lmkd"];
|
LmkKillOccurred lmk_kill_occurred = 51 [(module) = "lmkd"];
|
||||||
@@ -139,7 +149,8 @@ message Atom {
|
|||||||
ShutdownSequenceReported shutdown_sequence_reported = 56 [(module) = "framework"];
|
ShutdownSequenceReported shutdown_sequence_reported = 56 [(module) = "framework"];
|
||||||
BootSequenceReported boot_sequence_reported = 57;
|
BootSequenceReported boot_sequence_reported = 57;
|
||||||
DaveyOccurred davey_occurred = 58 [(allow_from_any_uid) = true, (module) = "statsd"];
|
DaveyOccurred davey_occurred = 58 [(allow_from_any_uid) = true, (module) = "statsd"];
|
||||||
OverlayStateChanged overlay_state_changed = 59 [(module) = "framework"];
|
OverlayStateChanged overlay_state_changed =
|
||||||
|
59 [(module) = "framework", (module) = "statsdtest"];
|
||||||
ForegroundServiceStateChanged foreground_service_state_changed
|
ForegroundServiceStateChanged foreground_service_state_changed
|
||||||
= 60 [(module) = "framework"];
|
= 60 [(module) = "framework"];
|
||||||
CallStateChanged call_state_changed = 61 [(module) = "telecom"];
|
CallStateChanged call_state_changed = 61 [(module) = "telecom"];
|
||||||
@@ -160,7 +171,7 @@ message Atom {
|
|||||||
MobileConnectionStateChanged mobile_connection_state_changed = 75 [(module) = "telephony"];
|
MobileConnectionStateChanged mobile_connection_state_changed = 75 [(module) = "telephony"];
|
||||||
MobileRadioTechnologyChanged mobile_radio_technology_changed = 76 [(module) = "telephony"];
|
MobileRadioTechnologyChanged mobile_radio_technology_changed = 76 [(module) = "telephony"];
|
||||||
UsbDeviceAttached usb_device_attached = 77 [(module) = "framework"];
|
UsbDeviceAttached usb_device_attached = 77 [(module) = "framework"];
|
||||||
AppCrashOccurred app_crash_occurred = 78 [(module) = "framework"];
|
AppCrashOccurred app_crash_occurred = 78 [(module) = "framework", (module) = "statsdtest"];
|
||||||
ANROccurred anr_occurred = 79 [(module) = "framework"];
|
ANROccurred anr_occurred = 79 [(module) = "framework"];
|
||||||
WTFOccurred wtf_occurred = 80 [(module) = "framework"];
|
WTFOccurred wtf_occurred = 80 [(module) = "framework"];
|
||||||
LowMemReported low_mem_reported = 81 [(module) = "framework"];
|
LowMemReported low_mem_reported = 81 [(module) = "framework"];
|
||||||
@@ -412,9 +423,9 @@ message Atom {
|
|||||||
MobileBytesTransferByFgBg mobile_bytes_transfer_by_fg_bg = 10003 [(module) = "framework"];
|
MobileBytesTransferByFgBg mobile_bytes_transfer_by_fg_bg = 10003 [(module) = "framework"];
|
||||||
BluetoothBytesTransfer bluetooth_bytes_transfer = 10006 [(module) = "framework"];
|
BluetoothBytesTransfer bluetooth_bytes_transfer = 10006 [(module) = "framework"];
|
||||||
KernelWakelock kernel_wakelock = 10004 [(module) = "framework"];
|
KernelWakelock kernel_wakelock = 10004 [(module) = "framework"];
|
||||||
SubsystemSleepState subsystem_sleep_state = 10005;
|
SubsystemSleepState subsystem_sleep_state = 10005 [(module) = "statsdtest"];
|
||||||
CpuTimePerFreq cpu_time_per_freq = 10008 [(module) = "framework"];
|
CpuTimePerFreq cpu_time_per_freq = 10008 [(module) = "framework"];
|
||||||
CpuTimePerUid cpu_time_per_uid = 10009 [(module) = "framework"];
|
CpuTimePerUid cpu_time_per_uid = 10009 [(module) = "framework", (module) = "statsdtest"];
|
||||||
CpuTimePerUidFreq cpu_time_per_uid_freq =
|
CpuTimePerUidFreq cpu_time_per_uid_freq =
|
||||||
10010 [(module) = "framework", (module) = "statsd"];
|
10010 [(module) = "framework", (module) = "statsd"];
|
||||||
WifiActivityInfo wifi_activity_info = 10011 [(module) = "framework"];
|
WifiActivityInfo wifi_activity_info = 10011 [(module) = "framework"];
|
||||||
@@ -422,13 +433,13 @@ message Atom {
|
|||||||
BluetoothActivityInfo bluetooth_activity_info = 10007 [(module) = "framework"];
|
BluetoothActivityInfo bluetooth_activity_info = 10007 [(module) = "framework"];
|
||||||
ProcessMemoryState process_memory_state = 10013 [(module) = "framework"];
|
ProcessMemoryState process_memory_state = 10013 [(module) = "framework"];
|
||||||
SystemElapsedRealtime system_elapsed_realtime = 10014 [(module) = "framework"];
|
SystemElapsedRealtime system_elapsed_realtime = 10014 [(module) = "framework"];
|
||||||
SystemUptime system_uptime = 10015 [(module) = "framework"];
|
SystemUptime system_uptime = 10015 [(module) = "framework", (module) = "statsdtest"];
|
||||||
CpuActiveTime cpu_active_time = 10016 [(module) = "framework"];
|
CpuActiveTime cpu_active_time = 10016 [(module) = "framework"];
|
||||||
CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework"];
|
CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework", (module) = "statsdtest"];
|
||||||
DiskSpace disk_space = 10018 [deprecated=true];
|
DiskSpace disk_space = 10018 [deprecated=true, (module) = "statsdtest"];
|
||||||
RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"];
|
RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"];
|
||||||
FullBatteryCapacity full_battery_capacity = 10020 [(module) = "framework"];
|
FullBatteryCapacity full_battery_capacity = 10020 [(module) = "framework"];
|
||||||
Temperature temperature = 10021 [(module) = "framework"];
|
Temperature temperature = 10021 [(module) = "framework", (module) = "statsdtest"];
|
||||||
BinderCalls binder_calls = 10022 [(module) = "framework", (module) = "statsd"];
|
BinderCalls binder_calls = 10022 [(module) = "framework", (module) = "statsd"];
|
||||||
BinderCallsExceptions binder_calls_exceptions = 10023 [(module) = "framework"];
|
BinderCallsExceptions binder_calls_exceptions = 10023 [(module) = "framework"];
|
||||||
LooperStats looper_stats = 10024 [(module) = "framework", (module) = "statsd"];
|
LooperStats looper_stats = 10024 [(module) = "framework", (module) = "statsd"];
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace statsd {
|
|||||||
|
|
||||||
class StateTracker : public virtual RefBase {
|
class StateTracker : public virtual RefBase {
|
||||||
public:
|
public:
|
||||||
StateTracker(const int32_t atomId, const util::StateAtomFieldOptions& stateAtomInfo);
|
StateTracker(const int32_t atomId, const android::util::StateAtomFieldOptions& stateAtomInfo);
|
||||||
|
|
||||||
virtual ~StateTracker(){};
|
virtual ~StateTracker(){};
|
||||||
|
|
||||||
|
|||||||
@@ -23,24 +23,26 @@
|
|||||||
#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
|
#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
|
||||||
#include "guardrail/StatsdStats.h"
|
#include "guardrail/StatsdStats.h"
|
||||||
|
|
||||||
|
using android::util::ProtoOutputStream;
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
namespace os {
|
namespace os {
|
||||||
namespace statsd {
|
namespace statsd {
|
||||||
|
|
||||||
void writeFieldValueTreeToStream(int tagId, const std::vector<FieldValue>& values,
|
void writeFieldValueTreeToStream(int tagId, const std::vector<FieldValue>& values,
|
||||||
util::ProtoOutputStream* protoOutput);
|
ProtoOutputStream* protoOutput);
|
||||||
void writeDimensionToProto(const HashableDimensionKey& dimension, std::set<string> *str_set,
|
void writeDimensionToProto(const HashableDimensionKey& dimension, std::set<string> *str_set,
|
||||||
util::ProtoOutputStream* protoOutput);
|
ProtoOutputStream* protoOutput);
|
||||||
|
|
||||||
void writeDimensionLeafNodesToProto(const HashableDimensionKey& dimension,
|
void writeDimensionLeafNodesToProto(const HashableDimensionKey& dimension,
|
||||||
const int dimensionLeafFieldId,
|
const int dimensionLeafFieldId,
|
||||||
std::set<string> *str_set,
|
std::set<string> *str_set,
|
||||||
util::ProtoOutputStream* protoOutput);
|
ProtoOutputStream* protoOutput);
|
||||||
|
|
||||||
void writeDimensionPathToProto(const std::vector<Matcher>& fieldMatchers,
|
void writeDimensionPathToProto(const std::vector<Matcher>& fieldMatchers,
|
||||||
util::ProtoOutputStream* protoOutput);
|
ProtoOutputStream* protoOutput);
|
||||||
|
|
||||||
void writeStateToProto(const FieldValue& state, util::ProtoOutputStream* protoOutput);
|
void writeStateToProto(const FieldValue& state, ProtoOutputStream* protoOutput);
|
||||||
|
|
||||||
// Convert the TimeUnit enum to the bucket size in millis with a guardrail on
|
// Convert the TimeUnit enum to the bucket size in millis with a guardrail on
|
||||||
// bucket size.
|
// bucket size.
|
||||||
@@ -73,14 +75,14 @@ int64_t MillisToNano(const int64_t millis);
|
|||||||
|
|
||||||
// Helper function to write PulledAtomStats to ProtoOutputStream
|
// Helper function to write PulledAtomStats to ProtoOutputStream
|
||||||
void writePullerStatsToStream(const std::pair<int, StatsdStats::PulledAtomStats>& pair,
|
void writePullerStatsToStream(const std::pair<int, StatsdStats::PulledAtomStats>& pair,
|
||||||
util::ProtoOutputStream* protoOutput);
|
ProtoOutputStream* protoOutput);
|
||||||
|
|
||||||
// Helper function to write AtomMetricStats to ProtoOutputStream
|
// Helper function to write AtomMetricStats to ProtoOutputStream
|
||||||
void writeAtomMetricStatsToStream(const std::pair<int64_t, StatsdStats::AtomMetricStats> &pair,
|
void writeAtomMetricStatsToStream(const std::pair<int64_t, StatsdStats::AtomMetricStats> &pair,
|
||||||
util::ProtoOutputStream *protoOutput);
|
ProtoOutputStream *protoOutput);
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
bool parseProtoOutputStream(util::ProtoOutputStream& protoOutput, T* message) {
|
bool parseProtoOutputStream(ProtoOutputStream& protoOutput, T* message) {
|
||||||
std::string pbBytes;
|
std::string pbBytes;
|
||||||
sp<android::util::ProtoReader> reader = protoOutput.data();
|
sp<android::util::ProtoReader> reader = protoOutput.data();
|
||||||
while (reader->readBuffer() != NULL) {
|
while (reader->readBuffer() != NULL) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#include "logd/LogEvent.h"
|
#include "logd/LogEvent.h"
|
||||||
#include "packages/UidMap.h"
|
#include "packages/UidMap.h"
|
||||||
#include "storage/StorageManager.h"
|
#include "storage/StorageManager.h"
|
||||||
#include "statslog.h"
|
#include "statslog_statsdtest.h"
|
||||||
|
|
||||||
#include <gmock/gmock.h>
|
#include <gmock/gmock.h>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
#include "guardrail/StatsdStats.h"
|
#include "guardrail/StatsdStats.h"
|
||||||
#include "logd/LogEvent.h"
|
#include "logd/LogEvent.h"
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
#include "statslog.h"
|
#include "statslog_statsdtest.h"
|
||||||
#include "statsd_test_util.h"
|
#include "statsd_test_util.h"
|
||||||
|
|
||||||
#include <android/util/ProtoOutputStream.h>
|
#include <android/util/ProtoOutputStream.h>
|
||||||
@@ -49,7 +49,7 @@ const string kApp2 = "app2.sharing.1";
|
|||||||
// StatsLogProcessor p(m, pullerManager, anomalyAlarmMonitor, subscriberAlarmMonitor, 0,
|
// StatsLogProcessor p(m, pullerManager, anomalyAlarmMonitor, subscriberAlarmMonitor, 0,
|
||||||
// [](const ConfigKey& key) { return true; },
|
// [](const ConfigKey& key) { return true; },
|
||||||
// [](const int&, const vector<int64_t>&) {return true;});
|
// [](const int&, const vector<int64_t>&) {return true;});
|
||||||
// LogEvent addEvent(android::util::ISOLATED_UID_CHANGED, 1);
|
// LogEvent addEvent(util::ISOLATED_UID_CHANGED, 1);
|
||||||
// addEvent.write(100); // parent UID
|
// addEvent.write(100); // parent UID
|
||||||
// addEvent.write(101); // isolated UID
|
// addEvent.write(101); // isolated UID
|
||||||
// addEvent.write(1); // Indicates creation.
|
// addEvent.write(1); // Indicates creation.
|
||||||
@@ -60,7 +60,7 @@ const string kApp2 = "app2.sharing.1";
|
|||||||
// p.OnLogEvent(&addEvent);
|
// p.OnLogEvent(&addEvent);
|
||||||
// EXPECT_EQ(100, m->getHostUidOrSelf(101));
|
// EXPECT_EQ(100, m->getHostUidOrSelf(101));
|
||||||
//
|
//
|
||||||
// LogEvent removeEvent(android::util::ISOLATED_UID_CHANGED, 1);
|
// LogEvent removeEvent(util::ISOLATED_UID_CHANGED, 1);
|
||||||
// removeEvent.write(100); // parent UID
|
// removeEvent.write(100); // parent UID
|
||||||
// removeEvent.write(101); // isolated UID
|
// removeEvent.write(101); // isolated UID
|
||||||
// removeEvent.write(0); // Indicates removal.
|
// removeEvent.write(0); // Indicates removal.
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ StatsdConfig CreateStatsdConfig(int num_buckets, int threshold) {
|
|||||||
countMetric->set_id(123456);
|
countMetric->set_id(123456);
|
||||||
countMetric->set_what(wakelockAcquireMatcher.id());
|
countMetric->set_what(wakelockAcquireMatcher.id());
|
||||||
*countMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
*countMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
auto alert = config.add_alert();
|
auto alert = config.add_alert();
|
||||||
@@ -83,12 +83,12 @@ TEST(AnomalyDetectionE2eTest, TestSlicedCountMetric_single_bucket) {
|
|||||||
std::vector<int> attributionUids5 = {222};
|
std::vector<int> attributionUids5 = {222};
|
||||||
std::vector<string> attributionTags5 = {"GMSCoreModule1"};
|
std::vector<string> attributionTags5 = {"GMSCoreModule1"};
|
||||||
|
|
||||||
FieldValue fieldValue1(Field(android::util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
FieldValue fieldValue1(Field(util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
||||||
Value((int32_t)111));
|
Value((int32_t)111));
|
||||||
HashableDimensionKey whatKey1({fieldValue1});
|
HashableDimensionKey whatKey1({fieldValue1});
|
||||||
MetricDimensionKey dimensionKey1(whatKey1, DEFAULT_DIMENSION_KEY);
|
MetricDimensionKey dimensionKey1(whatKey1, DEFAULT_DIMENSION_KEY);
|
||||||
|
|
||||||
FieldValue fieldValue2(Field(android::util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
FieldValue fieldValue2(Field(util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
||||||
Value((int32_t)222));
|
Value((int32_t)222));
|
||||||
HashableDimensionKey whatKey2({fieldValue2});
|
HashableDimensionKey whatKey2({fieldValue2});
|
||||||
MetricDimensionKey dimensionKey2(whatKey2, DEFAULT_DIMENSION_KEY);
|
MetricDimensionKey dimensionKey2(whatKey2, DEFAULT_DIMENSION_KEY);
|
||||||
@@ -194,7 +194,7 @@ TEST(AnomalyDetectionE2eTest, TestSlicedCountMetric_multiple_buckets) {
|
|||||||
std::vector<int> attributionUids2 = {111, 222};
|
std::vector<int> attributionUids2 = {111, 222};
|
||||||
std::vector<string> attributionTags2 = {"App1", "GMSCoreModule1"};
|
std::vector<string> attributionTags2 = {"App1", "GMSCoreModule1"};
|
||||||
|
|
||||||
FieldValue fieldValue1(Field(android::util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
FieldValue fieldValue1(Field(util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
||||||
Value((int32_t)111));
|
Value((int32_t)111));
|
||||||
HashableDimensionKey whatKey1({fieldValue1});
|
HashableDimensionKey whatKey1({fieldValue1});
|
||||||
MetricDimensionKey dimensionKey1(whatKey1, DEFAULT_DIMENSION_KEY);
|
MetricDimensionKey dimensionKey1(whatKey1, DEFAULT_DIMENSION_KEY);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ StatsdConfig CreateStatsdConfig(int num_buckets,
|
|||||||
|
|
||||||
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
||||||
FieldMatcher dimensions = CreateAttributionUidDimensions(
|
FieldMatcher dimensions = CreateAttributionUidDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
dimensions.add_child()->set_field(3); // The wakelock tag is set in field 3 of the wakelock.
|
dimensions.add_child()->set_field(3); // The wakelock tag is set in field 3 of the wakelock.
|
||||||
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
||||||
holdingWakelockPredicate.mutable_simple_predicate()->set_count_nesting(nesting);
|
holdingWakelockPredicate.mutable_simple_predicate()->set_count_nesting(nesting);
|
||||||
@@ -57,7 +57,7 @@ StatsdConfig CreateStatsdConfig(int num_buckets,
|
|||||||
durationMetric->set_condition(screenIsOffPredicate.id());
|
durationMetric->set_condition(screenIsOffPredicate.id());
|
||||||
durationMetric->set_aggregation_type(aggregationType);
|
durationMetric->set_aggregation_type(aggregationType);
|
||||||
*durationMetric->mutable_dimensions_in_what() =
|
*durationMetric->mutable_dimensions_in_what() =
|
||||||
CreateAttributionUidDimensions(android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
CreateAttributionUidDimensions(util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
durationMetric->set_bucket(FIVE_MINUTES);
|
durationMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
auto alert = config.add_alert();
|
auto alert = config.add_alert();
|
||||||
@@ -79,13 +79,13 @@ std::vector<int> attributionUids3 = {222};
|
|||||||
std::vector<string> attributionTags3 = {"GMSCoreModule1"};
|
std::vector<string> attributionTags3 = {"GMSCoreModule1"};
|
||||||
|
|
||||||
MetricDimensionKey dimensionKey1(
|
MetricDimensionKey dimensionKey1(
|
||||||
HashableDimensionKey({FieldValue(Field(android::util::WAKELOCK_STATE_CHANGED,
|
HashableDimensionKey({FieldValue(Field(util::WAKELOCK_STATE_CHANGED,
|
||||||
(int32_t)0x02010101),
|
(int32_t)0x02010101),
|
||||||
Value((int32_t)111))}),
|
Value((int32_t)111))}),
|
||||||
DEFAULT_DIMENSION_KEY);
|
DEFAULT_DIMENSION_KEY);
|
||||||
|
|
||||||
MetricDimensionKey dimensionKey2(
|
MetricDimensionKey dimensionKey2(
|
||||||
HashableDimensionKey({FieldValue(Field(android::util::WAKELOCK_STATE_CHANGED,
|
HashableDimensionKey({FieldValue(Field(util::WAKELOCK_STATE_CHANGED,
|
||||||
(int32_t)0x02010101), Value((int32_t)222))}),
|
(int32_t)0x02010101), Value((int32_t)222))}),
|
||||||
DEFAULT_DIMENSION_KEY);
|
DEFAULT_DIMENSION_KEY);
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ StatsdConfig CreateStatsdConfig(const Position position) {
|
|||||||
countMetric->set_what(wakelockAcquireMatcher.id());
|
countMetric->set_what(wakelockAcquireMatcher.id());
|
||||||
*countMetric->mutable_dimensions_in_what() =
|
*countMetric->mutable_dimensions_in_what() =
|
||||||
CreateAttributionUidAndTagDimensions(
|
CreateAttributionUidAndTagDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {position});
|
util::WAKELOCK_STATE_CHANGED, {position});
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
@@ -164,7 +164,7 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid) {
|
|||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 2);
|
EXPECT_EQ(data.bucket_info_size(), 2);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 2);
|
EXPECT_EQ(data.bucket_info(0).count(), 2);
|
||||||
EXPECT_EQ(data.bucket_info(0).start_bucket_elapsed_nanos(), bucketStartTimeNs);
|
EXPECT_EQ(data.bucket_info(0).start_bucket_elapsed_nanos(), bucketStartTimeNs);
|
||||||
@@ -176,7 +176,7 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid) {
|
|||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule1");
|
"GMSCoreModule1");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 2);
|
EXPECT_EQ(data.bucket_info_size(), 2);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
@@ -188,7 +188,7 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid) {
|
|||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule3");
|
"GMSCoreModule3");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
@@ -198,7 +198,7 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByFirstUid) {
|
|||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 444,
|
util::WAKELOCK_STATE_CHANGED, 444,
|
||||||
"GMSCoreModule2");
|
"GMSCoreModule2");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
@@ -277,7 +277,7 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain) {
|
|||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule1");
|
"GMSCoreModule1");
|
||||||
EXPECT_EQ(2, data.bucket_info_size());
|
EXPECT_EQ(2, data.bucket_info_size());
|
||||||
EXPECT_EQ(1, data.bucket_info(0).count());
|
EXPECT_EQ(1, data.bucket_info(0).count());
|
||||||
@@ -289,26 +289,26 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + 4 * bucketSizeNs, data.bucket_info(1).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + 4 * bucketSizeNs, data.bucket_info(1).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 0, android::util::WAKELOCK_STATE_CHANGED, 222);
|
ValidateUidDimension(data.dimensions_in_what(), 0, util::WAKELOCK_STATE_CHANGED, 222);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule1");
|
"GMSCoreModule1");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 1, android::util::WAKELOCK_STATE_CHANGED, 333);
|
ValidateUidDimension(data.dimensions_in_what(), 1, util::WAKELOCK_STATE_CHANGED, 333);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).start_bucket_elapsed_nanos(), bucketStartTimeNs);
|
EXPECT_EQ(data.bucket_info(0).start_bucket_elapsed_nanos(), bucketStartTimeNs);
|
||||||
EXPECT_EQ(data.bucket_info(0).end_bucket_elapsed_nanos(), bucketStartTimeNs + bucketSizeNs);
|
EXPECT_EQ(data.bucket_info(0).end_bucket_elapsed_nanos(), bucketStartTimeNs + bucketSizeNs);
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 0, android::util::WAKELOCK_STATE_CHANGED, 444);
|
ValidateUidDimension(data.dimensions_in_what(), 0, util::WAKELOCK_STATE_CHANGED, 444);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 444,
|
util::WAKELOCK_STATE_CHANGED, 444,
|
||||||
"GMSCoreModule2");
|
"GMSCoreModule2");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 1, android::util::WAKELOCK_STATE_CHANGED, 222);
|
ValidateUidDimension(data.dimensions_in_what(), 1, util::WAKELOCK_STATE_CHANGED, 222);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule1");
|
"GMSCoreModule1");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
@@ -317,31 +317,31 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + 3 * bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + 3 * bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 0, android::util::WAKELOCK_STATE_CHANGED, 111);
|
ValidateUidDimension(data.dimensions_in_what(), 0, util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 1, android::util::WAKELOCK_STATE_CHANGED, 222);
|
ValidateUidDimension(data.dimensions_in_what(), 1, util::WAKELOCK_STATE_CHANGED, 222);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule1");
|
"GMSCoreModule1");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 2, android::util::WAKELOCK_STATE_CHANGED, 333);
|
ValidateUidDimension(data.dimensions_in_what(), 2, util::WAKELOCK_STATE_CHANGED, 333);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 2,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 2,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
EXPECT_EQ(bucketStartTimeNs, data.bucket_info(0).start_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs, data.bucket_info(0).start_bucket_elapsed_nanos());
|
||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(4);
|
data = countMetrics.data(4);
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 0, android::util::WAKELOCK_STATE_CHANGED, 111);
|
ValidateUidDimension(data.dimensions_in_what(), 0, util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 1, android::util::WAKELOCK_STATE_CHANGED, 333);
|
ValidateUidDimension(data.dimensions_in_what(), 1, util::WAKELOCK_STATE_CHANGED, 333);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 2, android::util::WAKELOCK_STATE_CHANGED, 222);
|
ValidateUidDimension(data.dimensions_in_what(), 2, util::WAKELOCK_STATE_CHANGED, 222);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 2,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 2,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 222,
|
util::WAKELOCK_STATE_CHANGED, 222,
|
||||||
"GMSCoreModule1");
|
"GMSCoreModule1");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
@@ -349,16 +349,16 @@ TEST(AttributionE2eTest, TestAttributionMatchAndSliceByChain) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(5);
|
data = countMetrics.data(5);
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 0, android::util::WAKELOCK_STATE_CHANGED, 111);
|
ValidateUidDimension(data.dimensions_in_what(), 0, util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 0,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
util::WAKELOCK_STATE_CHANGED, 111, "App1");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 1, android::util::WAKELOCK_STATE_CHANGED, 444);
|
ValidateUidDimension(data.dimensions_in_what(), 1, util::WAKELOCK_STATE_CHANGED, 444);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 1,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 444,
|
util::WAKELOCK_STATE_CHANGED, 444,
|
||||||
"GMSCoreModule2");
|
"GMSCoreModule2");
|
||||||
ValidateUidDimension(data.dimensions_in_what(), 2, android::util::WAKELOCK_STATE_CHANGED, 333);
|
ValidateUidDimension(data.dimensions_in_what(), 2, util::WAKELOCK_STATE_CHANGED, 333);
|
||||||
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 2,
|
ValidateAttributionUidAndTagDimension(data.dimensions_in_what(), 2,
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
util::WAKELOCK_STATE_CHANGED, 333, "App3");
|
||||||
EXPECT_EQ(data.bucket_info_size(), 1);
|
EXPECT_EQ(data.bucket_info_size(), 1);
|
||||||
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
EXPECT_EQ(data.bucket_info(0).count(), 1);
|
||||||
EXPECT_EQ(bucketStartTimeNs + 2 * bucketSizeNs,
|
EXPECT_EQ(bucketStartTimeNs + 2 * bucketSizeNs,
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ StatsdConfig CreateStatsdConfig(int num_buckets, int threshold) {
|
|||||||
countMetric->set_id(123456);
|
countMetric->set_id(123456);
|
||||||
countMetric->set_what(wakelockAcquireMatcher.id());
|
countMetric->set_what(wakelockAcquireMatcher.id());
|
||||||
*countMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
*countMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
auto alert = config.add_alert();
|
auto alert = config.add_alert();
|
||||||
@@ -74,12 +74,12 @@ TEST(ConfigTtlE2eTest, TestCountMetric) {
|
|||||||
std::vector<int> attributionUids1 = {111};
|
std::vector<int> attributionUids1 = {111};
|
||||||
std::vector<string> attributionTags1 = {"App1"};
|
std::vector<string> attributionTags1 = {"App1"};
|
||||||
|
|
||||||
FieldValue fieldValue1(Field(android::util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
FieldValue fieldValue1(Field(util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
||||||
Value((int32_t)111));
|
Value((int32_t)111));
|
||||||
HashableDimensionKey whatKey1({fieldValue1});
|
HashableDimensionKey whatKey1({fieldValue1});
|
||||||
MetricDimensionKey dimensionKey1(whatKey1, DEFAULT_DIMENSION_KEY);
|
MetricDimensionKey dimensionKey1(whatKey1, DEFAULT_DIMENSION_KEY);
|
||||||
|
|
||||||
FieldValue fieldValue2(Field(android::util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
FieldValue fieldValue2(Field(util::WAKELOCK_STATE_CHANGED, (int32_t)0x02010101),
|
||||||
Value((int32_t)222));
|
Value((int32_t)222));
|
||||||
HashableDimensionKey whatKey2({fieldValue2});
|
HashableDimensionKey whatKey2({fieldValue2});
|
||||||
MetricDimensionKey dimensionKey2(whatKey2, DEFAULT_DIMENSION_KEY);
|
MetricDimensionKey dimensionKey2(whatKey2, DEFAULT_DIMENSION_KEY);
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ TEST(CountMetricE2eTest, TestSlicedStateWithPrimaryFields) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto appCrashMatcher =
|
auto appCrashMatcher =
|
||||||
CreateSimpleAtomMatcher("APP_CRASH_OCCURRED", android::util::APP_CRASH_OCCURRED);
|
CreateSimpleAtomMatcher("APP_CRASH_OCCURRED", util::APP_CRASH_OCCURRED);
|
||||||
*config.add_atom_matcher() = appCrashMatcher;
|
*config.add_atom_matcher() = appCrashMatcher;
|
||||||
|
|
||||||
auto state = CreateUidProcessState();
|
auto state = CreateUidProcessState();
|
||||||
@@ -381,7 +381,7 @@ TEST(CountMetricE2eTest, TestSlicedStateWithPrimaryFields) {
|
|||||||
MetricStateLink* stateLink = countMetric->add_state_link();
|
MetricStateLink* stateLink = countMetric->add_state_link();
|
||||||
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
||||||
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
||||||
*fieldsInWhat = CreateDimensions(android::util::APP_CRASH_OCCURRED, {1 /*uid*/});
|
*fieldsInWhat = CreateDimensions(util::APP_CRASH_OCCURRED, {1 /*uid*/});
|
||||||
auto fieldsInState = stateLink->mutable_fields_in_state();
|
auto fieldsInState = stateLink->mutable_fields_in_state();
|
||||||
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /*uid*/});
|
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /*uid*/});
|
||||||
|
|
||||||
@@ -551,7 +551,7 @@ TEST(CountMetricE2eTest, TestMultipleSlicedStates) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto appCrashMatcher =
|
auto appCrashMatcher =
|
||||||
CreateSimpleAtomMatcher("APP_CRASH_OCCURRED", android::util::APP_CRASH_OCCURRED);
|
CreateSimpleAtomMatcher("APP_CRASH_OCCURRED", util::APP_CRASH_OCCURRED);
|
||||||
*config.add_atom_matcher() = appCrashMatcher;
|
*config.add_atom_matcher() = appCrashMatcher;
|
||||||
|
|
||||||
auto state1 = CreateScreenStateWithOnOffMap();
|
auto state1 = CreateScreenStateWithOnOffMap();
|
||||||
@@ -571,7 +571,7 @@ TEST(CountMetricE2eTest, TestMultipleSlicedStates) {
|
|||||||
MetricStateLink* stateLink = countMetric->add_state_link();
|
MetricStateLink* stateLink = countMetric->add_state_link();
|
||||||
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
||||||
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
||||||
*fieldsInWhat = CreateDimensions(android::util::APP_CRASH_OCCURRED, {1 /*uid*/});
|
*fieldsInWhat = CreateDimensions(util::APP_CRASH_OCCURRED, {1 /*uid*/});
|
||||||
auto fieldsInState = stateLink->mutable_fields_in_state();
|
auto fieldsInState = stateLink->mutable_fields_in_state();
|
||||||
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /*uid*/});
|
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /*uid*/});
|
||||||
|
|
||||||
|
|||||||
@@ -456,14 +456,14 @@ TEST(DurationMetricE2eTest, TestWithSlicedCondition) {
|
|||||||
|
|
||||||
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
||||||
// The predicate is dimensioning by first attribution node by uid.
|
// The predicate is dimensioning by first attribution node by uid.
|
||||||
FieldMatcher dimensions = CreateAttributionUidDimensions(android::util::WAKELOCK_STATE_CHANGED,
|
FieldMatcher dimensions = CreateAttributionUidDimensions(util::WAKELOCK_STATE_CHANGED,
|
||||||
{Position::FIRST});
|
{Position::FIRST});
|
||||||
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
||||||
*config.add_predicate() = holdingWakelockPredicate;
|
*config.add_predicate() = holdingWakelockPredicate;
|
||||||
|
|
||||||
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
||||||
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
||||||
CreateDimensions(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
CreateDimensions(util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
||||||
*config.add_predicate() = isInBackgroundPredicate;
|
*config.add_predicate() = isInBackgroundPredicate;
|
||||||
|
|
||||||
auto durationMetric = config.add_duration_metric();
|
auto durationMetric = config.add_duration_metric();
|
||||||
@@ -473,17 +473,17 @@ TEST(DurationMetricE2eTest, TestWithSlicedCondition) {
|
|||||||
durationMetric->set_aggregation_type(DurationMetric::SUM);
|
durationMetric->set_aggregation_type(DurationMetric::SUM);
|
||||||
// The metric is dimensioning by first attribution node and only by uid.
|
// The metric is dimensioning by first attribution node and only by uid.
|
||||||
*durationMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
*durationMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
durationMetric->set_bucket(FIVE_MINUTES);
|
durationMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
// Links between wakelock state atom and condition of app is in background.
|
// Links between wakelock state atom and condition of app is in background.
|
||||||
auto links = durationMetric->add_links();
|
auto links = durationMetric->add_links();
|
||||||
links->set_condition(isInBackgroundPredicate.id());
|
links->set_condition(isInBackgroundPredicate.id());
|
||||||
auto dimensionWhat = links->mutable_fields_in_what();
|
auto dimensionWhat = links->mutable_fields_in_what();
|
||||||
dimensionWhat->set_field(android::util::WAKELOCK_STATE_CHANGED);
|
dimensionWhat->set_field(util::WAKELOCK_STATE_CHANGED);
|
||||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||||
*links->mutable_fields_in_condition() = CreateAttributionUidDimensions(
|
*links->mutable_fields_in_condition() = CreateAttributionUidDimensions(
|
||||||
android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
||||||
|
|
||||||
ConfigKey cfgKey;
|
ConfigKey cfgKey;
|
||||||
uint64_t bucketStartTimeNs = 10000000000;
|
uint64_t bucketStartTimeNs = 10000000000;
|
||||||
@@ -536,7 +536,7 @@ TEST(DurationMetricE2eTest, TestWithSlicedCondition) {
|
|||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, appUid);
|
util::WAKELOCK_STATE_CHANGED, appUid);
|
||||||
// Validate bucket info.
|
// Validate bucket info.
|
||||||
EXPECT_EQ(1, data.bucket_info_size());
|
EXPECT_EQ(1, data.bucket_info_size());
|
||||||
|
|
||||||
@@ -558,14 +558,14 @@ TEST(DurationMetricE2eTest, TestWithActivationAndSlicedCondition) {
|
|||||||
|
|
||||||
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
||||||
// The predicate is dimensioning by first attribution node by uid.
|
// The predicate is dimensioning by first attribution node by uid.
|
||||||
FieldMatcher dimensions = CreateAttributionUidDimensions(android::util::WAKELOCK_STATE_CHANGED,
|
FieldMatcher dimensions = CreateAttributionUidDimensions(util::WAKELOCK_STATE_CHANGED,
|
||||||
{Position::FIRST});
|
{Position::FIRST});
|
||||||
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
||||||
*config.add_predicate() = holdingWakelockPredicate;
|
*config.add_predicate() = holdingWakelockPredicate;
|
||||||
|
|
||||||
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
||||||
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
||||||
CreateDimensions(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
CreateDimensions(util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
||||||
*config.add_predicate() = isInBackgroundPredicate;
|
*config.add_predicate() = isInBackgroundPredicate;
|
||||||
|
|
||||||
auto durationMetric = config.add_duration_metric();
|
auto durationMetric = config.add_duration_metric();
|
||||||
@@ -575,17 +575,17 @@ TEST(DurationMetricE2eTest, TestWithActivationAndSlicedCondition) {
|
|||||||
durationMetric->set_aggregation_type(DurationMetric::SUM);
|
durationMetric->set_aggregation_type(DurationMetric::SUM);
|
||||||
// The metric is dimensioning by first attribution node and only by uid.
|
// The metric is dimensioning by first attribution node and only by uid.
|
||||||
*durationMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
*durationMetric->mutable_dimensions_in_what() = CreateAttributionUidDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
durationMetric->set_bucket(FIVE_MINUTES);
|
durationMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
// Links between wakelock state atom and condition of app is in background.
|
// Links between wakelock state atom and condition of app is in background.
|
||||||
auto links = durationMetric->add_links();
|
auto links = durationMetric->add_links();
|
||||||
links->set_condition(isInBackgroundPredicate.id());
|
links->set_condition(isInBackgroundPredicate.id());
|
||||||
auto dimensionWhat = links->mutable_fields_in_what();
|
auto dimensionWhat = links->mutable_fields_in_what();
|
||||||
dimensionWhat->set_field(android::util::WAKELOCK_STATE_CHANGED);
|
dimensionWhat->set_field(util::WAKELOCK_STATE_CHANGED);
|
||||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||||
*links->mutable_fields_in_condition() = CreateAttributionUidDimensions(
|
*links->mutable_fields_in_condition() = CreateAttributionUidDimensions(
|
||||||
android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
util::ACTIVITY_FOREGROUND_STATE_CHANGED, {Position::FIRST});
|
||||||
|
|
||||||
auto metric_activation1 = config.add_metric_activation();
|
auto metric_activation1 = config.add_metric_activation();
|
||||||
metric_activation1->set_metric_id(durationMetric->id());
|
metric_activation1->set_metric_id(durationMetric->id());
|
||||||
@@ -694,7 +694,7 @@ TEST(DurationMetricE2eTest, TestWithActivationAndSlicedCondition) {
|
|||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, appUid);
|
util::WAKELOCK_STATE_CHANGED, appUid);
|
||||||
// Validate bucket info.
|
// Validate bucket info.
|
||||||
EXPECT_EQ(2, data.bucket_info_size());
|
EXPECT_EQ(2, data.bucket_info_size());
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace statsd {
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const int64_t metricId = 123456;
|
const int64_t metricId = 123456;
|
||||||
const int32_t ATOM_TAG = android::util::SUBSYSTEM_SLEEP_STATE;
|
const int32_t ATOM_TAG = util::SUBSYSTEM_SLEEP_STATE;
|
||||||
|
|
||||||
StatsdConfig CreateStatsdConfig(const GaugeMetric::SamplingType sampling_type,
|
StatsdConfig CreateStatsdConfig(const GaugeMetric::SamplingType sampling_type,
|
||||||
bool useCondition = true) {
|
bool useCondition = true) {
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ StatsdConfig CreateStatsdConfigForPushedEvent(const GaugeMetric::SamplingType sa
|
|||||||
*config.add_atom_matcher() = CreateMoveToBackgroundAtomMatcher();
|
*config.add_atom_matcher() = CreateMoveToBackgroundAtomMatcher();
|
||||||
*config.add_atom_matcher() = CreateMoveToForegroundAtomMatcher();
|
*config.add_atom_matcher() = CreateMoveToForegroundAtomMatcher();
|
||||||
|
|
||||||
auto atomMatcher = CreateSimpleAtomMatcher("", android::util::APP_START_OCCURRED);
|
auto atomMatcher = CreateSimpleAtomMatcher("", util::APP_START_OCCURRED);
|
||||||
*config.add_atom_matcher() = atomMatcher;
|
*config.add_atom_matcher() = atomMatcher;
|
||||||
|
|
||||||
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
||||||
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
||||||
CreateDimensions(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, {1 /* uid field */ });
|
CreateDimensions(util::ACTIVITY_FOREGROUND_STATE_CHANGED, {1 /* uid field */ });
|
||||||
*config.add_predicate() = isInBackgroundPredicate;
|
*config.add_predicate() = isInBackgroundPredicate;
|
||||||
|
|
||||||
auto gaugeMetric = config.add_gauge_metric();
|
auto gaugeMetric = config.add_gauge_metric();
|
||||||
@@ -50,21 +50,21 @@ StatsdConfig CreateStatsdConfigForPushedEvent(const GaugeMetric::SamplingType sa
|
|||||||
gaugeMetric->mutable_gauge_fields_filter()->set_include_all(false);
|
gaugeMetric->mutable_gauge_fields_filter()->set_include_all(false);
|
||||||
gaugeMetric->set_sampling_type(sampling_type);
|
gaugeMetric->set_sampling_type(sampling_type);
|
||||||
auto fieldMatcher = gaugeMetric->mutable_gauge_fields_filter()->mutable_fields();
|
auto fieldMatcher = gaugeMetric->mutable_gauge_fields_filter()->mutable_fields();
|
||||||
fieldMatcher->set_field(android::util::APP_START_OCCURRED);
|
fieldMatcher->set_field(util::APP_START_OCCURRED);
|
||||||
fieldMatcher->add_child()->set_field(3); // type (enum)
|
fieldMatcher->add_child()->set_field(3); // type (enum)
|
||||||
fieldMatcher->add_child()->set_field(4); // activity_name(str)
|
fieldMatcher->add_child()->set_field(4); // activity_name(str)
|
||||||
fieldMatcher->add_child()->set_field(7); // activity_start_msec(int64)
|
fieldMatcher->add_child()->set_field(7); // activity_start_msec(int64)
|
||||||
*gaugeMetric->mutable_dimensions_in_what() =
|
*gaugeMetric->mutable_dimensions_in_what() =
|
||||||
CreateDimensions(android::util::APP_START_OCCURRED, {1 /* uid field */ });
|
CreateDimensions(util::APP_START_OCCURRED, {1 /* uid field */ });
|
||||||
gaugeMetric->set_bucket(FIVE_MINUTES);
|
gaugeMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
auto links = gaugeMetric->add_links();
|
auto links = gaugeMetric->add_links();
|
||||||
links->set_condition(isInBackgroundPredicate.id());
|
links->set_condition(isInBackgroundPredicate.id());
|
||||||
auto dimensionWhat = links->mutable_fields_in_what();
|
auto dimensionWhat = links->mutable_fields_in_what();
|
||||||
dimensionWhat->set_field(android::util::APP_START_OCCURRED);
|
dimensionWhat->set_field(util::APP_START_OCCURRED);
|
||||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||||
auto dimensionCondition = links->mutable_fields_in_condition();
|
auto dimensionCondition = links->mutable_fields_in_condition();
|
||||||
dimensionCondition->set_field(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
dimensionCondition->set_field(util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||||
dimensionCondition->add_child()->set_field(1); // uid field.
|
dimensionCondition->add_child()->set_field(1); // uid field.
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ std::unique_ptr<LogEvent> CreateAppStartOccurredEvent(
|
|||||||
AppStartOccurred::TransitionType type, const string& activity_name,
|
AppStartOccurred::TransitionType type, const string& activity_name,
|
||||||
const string& calling_pkg_name, const bool is_instant_app, int64_t activity_start_msec) {
|
const string& calling_pkg_name, const bool is_instant_app, int64_t activity_start_msec) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::APP_START_OCCURRED);
|
AStatsEvent_setAtomId(statsEvent, util::APP_START_OCCURRED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, uid);
|
AStatsEvent_writeInt32(statsEvent, uid);
|
||||||
@@ -173,7 +173,7 @@ TEST(GaugeMetricE2eTest, TestMultipleFieldsForPushedEvent) {
|
|||||||
EXPECT_EQ(2, gaugeMetrics.data_size());
|
EXPECT_EQ(2, gaugeMetrics.data_size());
|
||||||
|
|
||||||
auto data = gaugeMetrics.data(0);
|
auto data = gaugeMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::APP_START_OCCURRED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::APP_START_OCCURRED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -272,7 +272,7 @@ TEST(GaugeMetricE2eTest, TestMultipleFieldsForPushedEvent) {
|
|||||||
|
|
||||||
data = gaugeMetrics.data(1);
|
data = gaugeMetrics.data(1);
|
||||||
|
|
||||||
EXPECT_EQ(data.dimensions_in_what().field(), android::util::APP_START_OCCURRED);
|
EXPECT_EQ(data.dimensions_in_what().field(), util::APP_START_OCCURRED);
|
||||||
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value_size(), 1);
|
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value_size(), 1);
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ StatsdConfig CreateStatsdConfig() {
|
|||||||
countMetric->set_what(crashMatcher.id());
|
countMetric->set_what(crashMatcher.id());
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
countMetric->mutable_dimensions_in_what()->set_field(
|
countMetric->mutable_dimensions_in_what()->set_field(
|
||||||
android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
||||||
|
|
||||||
auto metric_activation1 = config.add_metric_activation();
|
auto metric_activation1 = config.add_metric_activation();
|
||||||
@@ -79,7 +79,7 @@ StatsdConfig CreateStatsdConfigWithOneDeactivation() {
|
|||||||
countMetric->set_what(crashMatcher.id());
|
countMetric->set_what(crashMatcher.id());
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
countMetric->mutable_dimensions_in_what()->set_field(
|
countMetric->mutable_dimensions_in_what()->set_field(
|
||||||
android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
||||||
|
|
||||||
auto metric_activation1 = config.add_metric_activation();
|
auto metric_activation1 = config.add_metric_activation();
|
||||||
@@ -117,7 +117,7 @@ StatsdConfig CreateStatsdConfigWithTwoDeactivations() {
|
|||||||
countMetric->set_what(crashMatcher.id());
|
countMetric->set_what(crashMatcher.id());
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
countMetric->mutable_dimensions_in_what()->set_field(
|
countMetric->mutable_dimensions_in_what()->set_field(
|
||||||
android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
||||||
|
|
||||||
auto metric_activation1 = config.add_metric_activation();
|
auto metric_activation1 = config.add_metric_activation();
|
||||||
@@ -153,7 +153,7 @@ StatsdConfig CreateStatsdConfigWithSameDeactivations() {
|
|||||||
countMetric->set_what(crashMatcher.id());
|
countMetric->set_what(crashMatcher.id());
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
countMetric->mutable_dimensions_in_what()->set_field(
|
countMetric->mutable_dimensions_in_what()->set_field(
|
||||||
android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
||||||
|
|
||||||
auto metric_activation1 = config.add_metric_activation();
|
auto metric_activation1 = config.add_metric_activation();
|
||||||
@@ -194,7 +194,7 @@ StatsdConfig CreateStatsdConfigWithTwoMetricsTwoDeactivations() {
|
|||||||
countMetric->set_what(crashMatcher.id());
|
countMetric->set_what(crashMatcher.id());
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
countMetric->mutable_dimensions_in_what()->set_field(
|
countMetric->mutable_dimensions_in_what()->set_field(
|
||||||
android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
||||||
|
|
||||||
int64_t metricId2 = 234567;
|
int64_t metricId2 = 234567;
|
||||||
@@ -203,7 +203,7 @@ StatsdConfig CreateStatsdConfigWithTwoMetricsTwoDeactivations() {
|
|||||||
countMetric->set_what(foregroundMatcher.id());
|
countMetric->set_what(foregroundMatcher.id());
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
countMetric->mutable_dimensions_in_what()->set_field(
|
countMetric->mutable_dimensions_in_what()->set_field(
|
||||||
android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||||
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
countMetric->mutable_dimensions_in_what()->add_child()->set_field(1); // uid field
|
||||||
|
|
||||||
auto metric_activation1 = config.add_metric_activation();
|
auto metric_activation1 = config.add_metric_activation();
|
||||||
@@ -398,7 +398,7 @@ TEST(MetricActivationE2eTest, TestCountMetric) {
|
|||||||
EXPECT_EQ(4, countMetrics.data_size());
|
EXPECT_EQ(4, countMetrics.data_size());
|
||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -409,7 +409,7 @@ TEST(MetricActivationE2eTest, TestCountMetric) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -420,7 +420,7 @@ TEST(MetricActivationE2eTest, TestCountMetric) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -433,7 +433,7 @@ TEST(MetricActivationE2eTest, TestCountMetric) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -706,7 +706,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation) {
|
|||||||
EXPECT_EQ(5, countMetrics.data_size());
|
EXPECT_EQ(5, countMetrics.data_size());
|
||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -717,7 +717,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -728,7 +728,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -741,7 +741,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -754,7 +754,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithOneDeactivation) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(4);
|
data = countMetrics.data(4);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1040,7 +1040,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations) {
|
|||||||
EXPECT_EQ(5, countMetrics.data_size());
|
EXPECT_EQ(5, countMetrics.data_size());
|
||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1051,7 +1051,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1062,7 +1062,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1075,7 +1075,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1088,7 +1088,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoDeactivations) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(4);
|
data = countMetrics.data(4);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1264,7 +1264,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation) {
|
|||||||
EXPECT_EQ(3, countMetrics.data_size());
|
EXPECT_EQ(3, countMetrics.data_size());
|
||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1275,7 +1275,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation) {
|
|||||||
EXPECT_EQ(firstDeactivation, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(firstDeactivation, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1286,7 +1286,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation) {
|
|||||||
EXPECT_EQ(firstDeactivation, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(firstDeactivation, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1704,7 +1704,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
EXPECT_EQ(5, countMetrics.data_size());
|
EXPECT_EQ(5, countMetrics.data_size());
|
||||||
|
|
||||||
auto data = countMetrics.data(0);
|
auto data = countMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1715,7 +1715,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1726,7 +1726,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1739,7 +1739,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1752,7 +1752,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(4);
|
data = countMetrics.data(4);
|
||||||
EXPECT_EQ(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1769,7 +1769,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
EXPECT_EQ(5, countMetrics.data_size());
|
EXPECT_EQ(5, countMetrics.data_size());
|
||||||
|
|
||||||
data = countMetrics.data(0);
|
data = countMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1780,7 +1780,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(1);
|
data = countMetrics.data(1);
|
||||||
EXPECT_EQ(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1791,7 +1791,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
EXPECT_EQ(bucketStartTimeNs + bucketSizeNs, data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(2);
|
data = countMetrics.data(2);
|
||||||
EXPECT_EQ(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1804,7 +1804,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(3);
|
data = countMetrics.data(3);
|
||||||
EXPECT_EQ(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -1817,7 +1817,7 @@ TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations) {
|
|||||||
data.bucket_info(0).end_bucket_elapsed_nanos());
|
data.bucket_info(0).end_bucket_elapsed_nanos());
|
||||||
|
|
||||||
data = countMetrics.data(4);
|
data = countMetrics.data(4);
|
||||||
EXPECT_EQ(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
EXPECT_EQ(util::ACTIVITY_FOREGROUND_STATE_CHANGED, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* uid field */,
|
EXPECT_EQ(1 /* uid field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
|
|||||||
@@ -48,12 +48,12 @@ StatsdConfig CreateStatsdConfig() {
|
|||||||
auto isSyncingPredicate = CreateIsSyncingPredicate();
|
auto isSyncingPredicate = CreateIsSyncingPredicate();
|
||||||
auto syncDimension = isSyncingPredicate.mutable_simple_predicate()->mutable_dimensions();
|
auto syncDimension = isSyncingPredicate.mutable_simple_predicate()->mutable_dimensions();
|
||||||
*syncDimension = CreateAttributionUidDimensions(
|
*syncDimension = CreateAttributionUidDimensions(
|
||||||
android::util::SYNC_STATE_CHANGED, {Position::FIRST});
|
util::SYNC_STATE_CHANGED, {Position::FIRST});
|
||||||
syncDimension->add_child()->set_field(2 /* name field*/);
|
syncDimension->add_child()->set_field(2 /* name field*/);
|
||||||
|
|
||||||
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
auto isInBackgroundPredicate = CreateIsInBackgroundPredicate();
|
||||||
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
*isInBackgroundPredicate.mutable_simple_predicate()->mutable_dimensions() =
|
||||||
CreateDimensions(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, {1 /* uid field */ });
|
CreateDimensions(util::ACTIVITY_FOREGROUND_STATE_CHANGED, {1 /* uid field */ });
|
||||||
|
|
||||||
*config.add_predicate() = screenIsOffPredicate;
|
*config.add_predicate() = screenIsOffPredicate;
|
||||||
*config.add_predicate() = isSyncingPredicate;
|
*config.add_predicate() = isSyncingPredicate;
|
||||||
@@ -72,26 +72,26 @@ StatsdConfig CreateStatsdConfig() {
|
|||||||
countMetric->set_condition(combinationPredicate->id());
|
countMetric->set_condition(combinationPredicate->id());
|
||||||
// The metric is dimensioning by uid only.
|
// The metric is dimensioning by uid only.
|
||||||
*countMetric->mutable_dimensions_in_what() =
|
*countMetric->mutable_dimensions_in_what() =
|
||||||
CreateDimensions(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED, {1});
|
CreateDimensions(util::PROCESS_LIFE_CYCLE_STATE_CHANGED, {1});
|
||||||
countMetric->set_bucket(FIVE_MINUTES);
|
countMetric->set_bucket(FIVE_MINUTES);
|
||||||
|
|
||||||
// Links between crash atom and condition of app is in syncing.
|
// Links between crash atom and condition of app is in syncing.
|
||||||
auto links = countMetric->add_links();
|
auto links = countMetric->add_links();
|
||||||
links->set_condition(isSyncingPredicate.id());
|
links->set_condition(isSyncingPredicate.id());
|
||||||
auto dimensionWhat = links->mutable_fields_in_what();
|
auto dimensionWhat = links->mutable_fields_in_what();
|
||||||
dimensionWhat->set_field(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
dimensionWhat->set_field(util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||||
*links->mutable_fields_in_condition() = CreateAttributionUidDimensions(
|
*links->mutable_fields_in_condition() = CreateAttributionUidDimensions(
|
||||||
android::util::SYNC_STATE_CHANGED, {Position::FIRST});
|
util::SYNC_STATE_CHANGED, {Position::FIRST});
|
||||||
|
|
||||||
// Links between crash atom and condition of app is in background.
|
// Links between crash atom and condition of app is in background.
|
||||||
links = countMetric->add_links();
|
links = countMetric->add_links();
|
||||||
links->set_condition(isInBackgroundPredicate.id());
|
links->set_condition(isInBackgroundPredicate.id());
|
||||||
dimensionWhat = links->mutable_fields_in_what();
|
dimensionWhat = links->mutable_fields_in_what();
|
||||||
dimensionWhat->set_field(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
dimensionWhat->set_field(util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
dimensionWhat->add_child()->set_field(1); // uid field.
|
dimensionWhat->add_child()->set_field(1); // uid field.
|
||||||
auto dimensionCondition = links->mutable_fields_in_condition();
|
auto dimensionCondition = links->mutable_fields_in_condition();
|
||||||
dimensionCondition->set_field(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
dimensionCondition->set_field(util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||||
dimensionCondition->add_child()->set_field(1); // uid field.
|
dimensionCondition->add_child()->set_field(1); // uid field.
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
@@ -211,7 +211,7 @@ TEST(MetricConditionLinkE2eTest, TestMultiplePredicatesAndLinks1) {
|
|||||||
EXPECT_EQ(reports.reports(0).metrics(0).count_metrics().data(0).bucket_info(0).count(), 1);
|
EXPECT_EQ(reports.reports(0).metrics(0).count_metrics().data(0).bucket_info(0).count(), 1);
|
||||||
auto data = reports.reports(0).metrics(0).count_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).count_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
EXPECT_EQ(data.dimensions_in_what().field(), android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
EXPECT_EQ(data.dimensions_in_what().field(), util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value_size(), 1);
|
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value_size(), 1);
|
||||||
// Uid field.
|
// Uid field.
|
||||||
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value(0).field(), 1);
|
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value(0).field(), 1);
|
||||||
@@ -332,7 +332,7 @@ TEST(MetricConditionLinkE2eTest, TestMultiplePredicatesAndLinks2) {
|
|||||||
EXPECT_EQ(reports.reports(0).metrics(0).count_metrics().data(0).bucket_info(1).count(), 3);
|
EXPECT_EQ(reports.reports(0).metrics(0).count_metrics().data(0).bucket_info(1).count(), 3);
|
||||||
auto data = reports.reports(0).metrics(0).count_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).count_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
EXPECT_EQ(data.dimensions_in_what().field(), android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
EXPECT_EQ(data.dimensions_in_what().field(), util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value_size(), 1);
|
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value_size(), 1);
|
||||||
// Uid field.
|
// Uid field.
|
||||||
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value(0).field(), 1);
|
EXPECT_EQ(data.dimensions_in_what().value_tuple().dimensions_value(0).field(), 1);
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ StatsdConfig MakeValueMetricConfig(int64_t minTime) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto pulledAtomMatcher =
|
auto pulledAtomMatcher =
|
||||||
CreateSimpleAtomMatcher("TestMatcher", android::util::SUBSYSTEM_SLEEP_STATE);
|
CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
|
||||||
*config.add_atom_matcher() = pulledAtomMatcher;
|
*config.add_atom_matcher() = pulledAtomMatcher;
|
||||||
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
|
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
|
||||||
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
|
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
|
||||||
@@ -82,9 +82,9 @@ StatsdConfig MakeValueMetricConfig(int64_t minTime) {
|
|||||||
valueMetric->set_id(123456);
|
valueMetric->set_id(123456);
|
||||||
valueMetric->set_what(pulledAtomMatcher.id());
|
valueMetric->set_what(pulledAtomMatcher.id());
|
||||||
*valueMetric->mutable_value_field() =
|
*valueMetric->mutable_value_field() =
|
||||||
CreateDimensions(android::util::SUBSYSTEM_SLEEP_STATE, {4 /* time sleeping field */});
|
CreateDimensions(util::SUBSYSTEM_SLEEP_STATE, {4 /* time sleeping field */});
|
||||||
*valueMetric->mutable_dimensions_in_what() =
|
*valueMetric->mutable_dimensions_in_what() =
|
||||||
CreateDimensions(android::util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
|
CreateDimensions(util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
|
||||||
valueMetric->set_bucket(FIVE_MINUTES);
|
valueMetric->set_bucket(FIVE_MINUTES);
|
||||||
valueMetric->set_min_bucket_size_nanos(minTime);
|
valueMetric->set_min_bucket_size_nanos(minTime);
|
||||||
valueMetric->set_use_absolute_value_on_reset(true);
|
valueMetric->set_use_absolute_value_on_reset(true);
|
||||||
@@ -96,7 +96,7 @@ StatsdConfig MakeGaugeMetricConfig(int64_t minTime) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto pulledAtomMatcher =
|
auto pulledAtomMatcher =
|
||||||
CreateSimpleAtomMatcher("TestMatcher", android::util::SUBSYSTEM_SLEEP_STATE);
|
CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
|
||||||
*config.add_atom_matcher() = pulledAtomMatcher;
|
*config.add_atom_matcher() = pulledAtomMatcher;
|
||||||
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
|
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
|
||||||
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
|
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
|
||||||
@@ -106,7 +106,7 @@ StatsdConfig MakeGaugeMetricConfig(int64_t minTime) {
|
|||||||
gaugeMetric->set_what(pulledAtomMatcher.id());
|
gaugeMetric->set_what(pulledAtomMatcher.id());
|
||||||
gaugeMetric->mutable_gauge_fields_filter()->set_include_all(true);
|
gaugeMetric->mutable_gauge_fields_filter()->set_include_all(true);
|
||||||
*gaugeMetric->mutable_dimensions_in_what() =
|
*gaugeMetric->mutable_dimensions_in_what() =
|
||||||
CreateDimensions(android::util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
|
CreateDimensions(util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
|
||||||
gaugeMetric->set_bucket(FIVE_MINUTES);
|
gaugeMetric->set_bucket(FIVE_MINUTES);
|
||||||
gaugeMetric->set_min_bucket_size_nanos(minTime);
|
gaugeMetric->set_min_bucket_size_nanos(minTime);
|
||||||
return config;
|
return config;
|
||||||
@@ -218,7 +218,7 @@ TEST(PartialBucketE2eTest, TestCountMetricSplitOnRemoval) {
|
|||||||
TEST(PartialBucketE2eTest, TestValueMetricWithoutMinPartialBucket) {
|
TEST(PartialBucketE2eTest, TestValueMetricWithoutMinPartialBucket) {
|
||||||
shared_ptr<StatsService> service = SharedRefBase::make<StatsService>(nullptr, nullptr);
|
shared_ptr<StatsService> service = SharedRefBase::make<StatsService>(nullptr, nullptr);
|
||||||
service->mPullerManager->RegisterPullAtomCallback(
|
service->mPullerManager->RegisterPullAtomCallback(
|
||||||
/*uid=*/0, android::util::SUBSYSTEM_SLEEP_STATE, NS_PER_SEC, NS_PER_SEC * 10, {},
|
/*uid=*/0, util::SUBSYSTEM_SLEEP_STATE, NS_PER_SEC, NS_PER_SEC * 10, {},
|
||||||
SharedRefBase::make<FakeSubsystemSleepCallback>());
|
SharedRefBase::make<FakeSubsystemSleepCallback>());
|
||||||
// Partial buckets don't occur when app is first installed.
|
// Partial buckets don't occur when app is first installed.
|
||||||
service->mUidMap->updateApp(1, String16(kApp1.c_str()), 1, 1, String16("v1"), String16(""));
|
service->mUidMap->updateApp(1, String16(kApp1.c_str()), 1, 1, String16("v1"), String16(""));
|
||||||
@@ -239,7 +239,7 @@ TEST(PartialBucketE2eTest, TestValueMetricWithoutMinPartialBucket) {
|
|||||||
TEST(PartialBucketE2eTest, TestValueMetricWithMinPartialBucket) {
|
TEST(PartialBucketE2eTest, TestValueMetricWithMinPartialBucket) {
|
||||||
shared_ptr<StatsService> service = SharedRefBase::make<StatsService>(nullptr, nullptr);
|
shared_ptr<StatsService> service = SharedRefBase::make<StatsService>(nullptr, nullptr);
|
||||||
service->mPullerManager->RegisterPullAtomCallback(
|
service->mPullerManager->RegisterPullAtomCallback(
|
||||||
/*uid=*/0, android::util::SUBSYSTEM_SLEEP_STATE, NS_PER_SEC, NS_PER_SEC * 10, {},
|
/*uid=*/0, util::SUBSYSTEM_SLEEP_STATE, NS_PER_SEC, NS_PER_SEC * 10, {},
|
||||||
SharedRefBase::make<FakeSubsystemSleepCallback>());
|
SharedRefBase::make<FakeSubsystemSleepCallback>());
|
||||||
// Partial buckets don't occur when app is first installed.
|
// Partial buckets don't occur when app is first installed.
|
||||||
service->mUidMap->updateApp(1, String16(kApp1.c_str()), 1, 1, String16("v1"), String16(""));
|
service->mUidMap->updateApp(1, String16(kApp1.c_str()), 1, 1, String16("v1"), String16(""));
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ StatsdConfig CreateStatsdConfig(bool useCondition = true) {
|
|||||||
StatsdConfig config;
|
StatsdConfig config;
|
||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
auto pulledAtomMatcher =
|
auto pulledAtomMatcher =
|
||||||
CreateSimpleAtomMatcher("TestMatcher", android::util::SUBSYSTEM_SLEEP_STATE);
|
CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
|
||||||
*config.add_atom_matcher() = pulledAtomMatcher;
|
*config.add_atom_matcher() = pulledAtomMatcher;
|
||||||
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
|
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
|
||||||
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
|
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
|
||||||
@@ -52,9 +52,9 @@ StatsdConfig CreateStatsdConfig(bool useCondition = true) {
|
|||||||
valueMetric->set_condition(screenIsOffPredicate.id());
|
valueMetric->set_condition(screenIsOffPredicate.id());
|
||||||
}
|
}
|
||||||
*valueMetric->mutable_value_field() =
|
*valueMetric->mutable_value_field() =
|
||||||
CreateDimensions(android::util::SUBSYSTEM_SLEEP_STATE, {4 /* time sleeping field */});
|
CreateDimensions(util::SUBSYSTEM_SLEEP_STATE, {4 /* time sleeping field */});
|
||||||
*valueMetric->mutable_dimensions_in_what() =
|
*valueMetric->mutable_dimensions_in_what() =
|
||||||
CreateDimensions(android::util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
|
CreateDimensions(util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
|
||||||
valueMetric->set_bucket(FIVE_MINUTES);
|
valueMetric->set_bucket(FIVE_MINUTES);
|
||||||
valueMetric->set_use_absolute_value_on_reset(true);
|
valueMetric->set_use_absolute_value_on_reset(true);
|
||||||
valueMetric->set_skip_zero_diff_output(false);
|
valueMetric->set_skip_zero_diff_output(false);
|
||||||
@@ -73,7 +73,7 @@ TEST(ValueMetricE2eTest, TestPulledEvents) {
|
|||||||
ConfigKey cfgKey;
|
ConfigKey cfgKey;
|
||||||
auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
|
auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
|
||||||
SharedRefBase::make<FakeSubsystemSleepCallback>(),
|
SharedRefBase::make<FakeSubsystemSleepCallback>(),
|
||||||
android::util::SUBSYSTEM_SLEEP_STATE);
|
util::SUBSYSTEM_SLEEP_STATE);
|
||||||
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
|
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
|
||||||
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
|
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
|
||||||
processor->mPullerManager->ForceClearPullerCache();
|
processor->mPullerManager->ForceClearPullerCache();
|
||||||
@@ -142,7 +142,7 @@ TEST(ValueMetricE2eTest, TestPulledEvents) {
|
|||||||
EXPECT_GT((int)valueMetrics.data_size(), 1);
|
EXPECT_GT((int)valueMetrics.data_size(), 1);
|
||||||
|
|
||||||
auto data = valueMetrics.data(0);
|
auto data = valueMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
|
EXPECT_EQ(util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* subsystem name field */,
|
EXPECT_EQ(1 /* subsystem name field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -177,7 +177,7 @@ TEST(ValueMetricE2eTest, TestPulledEvents_LateAlarm) {
|
|||||||
ConfigKey cfgKey;
|
ConfigKey cfgKey;
|
||||||
auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
|
auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
|
||||||
SharedRefBase::make<FakeSubsystemSleepCallback>(),
|
SharedRefBase::make<FakeSubsystemSleepCallback>(),
|
||||||
android::util::SUBSYSTEM_SLEEP_STATE);
|
util::SUBSYSTEM_SLEEP_STATE);
|
||||||
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
|
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
|
||||||
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
|
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
|
||||||
processor->mPullerManager->ForceClearPullerCache();
|
processor->mPullerManager->ForceClearPullerCache();
|
||||||
@@ -250,7 +250,7 @@ TEST(ValueMetricE2eTest, TestPulledEvents_LateAlarm) {
|
|||||||
EXPECT_GT((int)valueMetrics.data_size(), 1);
|
EXPECT_GT((int)valueMetrics.data_size(), 1);
|
||||||
|
|
||||||
auto data = valueMetrics.data(0);
|
auto data = valueMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
|
EXPECT_EQ(util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* subsystem name field */,
|
EXPECT_EQ(1 /* subsystem name field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -289,7 +289,7 @@ TEST(ValueMetricE2eTest, TestPulledEvents_WithActivation) {
|
|||||||
ConfigKey cfgKey;
|
ConfigKey cfgKey;
|
||||||
auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
|
auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
|
||||||
SharedRefBase::make<FakeSubsystemSleepCallback>(),
|
SharedRefBase::make<FakeSubsystemSleepCallback>(),
|
||||||
android::util::SUBSYSTEM_SLEEP_STATE);
|
util::SUBSYSTEM_SLEEP_STATE);
|
||||||
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
|
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
|
||||||
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
|
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
|
||||||
processor->mPullerManager->ForceClearPullerCache();
|
processor->mPullerManager->ForceClearPullerCache();
|
||||||
@@ -353,7 +353,7 @@ TEST(ValueMetricE2eTest, TestPulledEvents_WithActivation) {
|
|||||||
EXPECT_GT((int)valueMetrics.data_size(), 0);
|
EXPECT_GT((int)valueMetrics.data_size(), 0);
|
||||||
|
|
||||||
auto data = valueMetrics.data(0);
|
auto data = valueMetrics.data(0);
|
||||||
EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
|
EXPECT_EQ(util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
|
||||||
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
|
||||||
EXPECT_EQ(1 /* subsystem name field */,
|
EXPECT_EQ(1 /* subsystem name field */,
|
||||||
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
|
||||||
@@ -383,7 +383,7 @@ TEST(ValueMetricE2eTest, TestInitWithSlicedState) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto pulledAtomMatcher =
|
auto pulledAtomMatcher =
|
||||||
CreateSimpleAtomMatcher("TestMatcher", android::util::SUBSYSTEM_SLEEP_STATE);
|
CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
|
||||||
*config.add_atom_matcher() = pulledAtomMatcher;
|
*config.add_atom_matcher() = pulledAtomMatcher;
|
||||||
|
|
||||||
auto screenState = CreateScreenState();
|
auto screenState = CreateScreenState();
|
||||||
@@ -396,7 +396,7 @@ TEST(ValueMetricE2eTest, TestInitWithSlicedState) {
|
|||||||
valueMetric->set_bucket(TimeUnit::FIVE_MINUTES);
|
valueMetric->set_bucket(TimeUnit::FIVE_MINUTES);
|
||||||
valueMetric->set_what(pulledAtomMatcher.id());
|
valueMetric->set_what(pulledAtomMatcher.id());
|
||||||
*valueMetric->mutable_value_field() =
|
*valueMetric->mutable_value_field() =
|
||||||
CreateDimensions(android::util::CPU_TIME_PER_UID, {2 /* user_time_micros */});
|
CreateDimensions(util::CPU_TIME_PER_UID, {2 /* user_time_micros */});
|
||||||
valueMetric->add_slice_by_state(screenState.id());
|
valueMetric->add_slice_by_state(screenState.id());
|
||||||
valueMetric->set_max_pull_delay_sec(INT_MAX);
|
valueMetric->set_max_pull_delay_sec(INT_MAX);
|
||||||
|
|
||||||
@@ -437,7 +437,7 @@ TEST(ValueMetricE2eTest, TestInitWithSlicedState_WithDimensions) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto cpuTimePerUidMatcher =
|
auto cpuTimePerUidMatcher =
|
||||||
CreateSimpleAtomMatcher("CpuTimePerUidMatcher", android::util::CPU_TIME_PER_UID);
|
CreateSimpleAtomMatcher("CpuTimePerUidMatcher", util::CPU_TIME_PER_UID);
|
||||||
*config.add_atom_matcher() = cpuTimePerUidMatcher;
|
*config.add_atom_matcher() = cpuTimePerUidMatcher;
|
||||||
|
|
||||||
auto uidProcessState = CreateUidProcessState();
|
auto uidProcessState = CreateUidProcessState();
|
||||||
@@ -450,14 +450,14 @@ TEST(ValueMetricE2eTest, TestInitWithSlicedState_WithDimensions) {
|
|||||||
valueMetric->set_bucket(TimeUnit::FIVE_MINUTES);
|
valueMetric->set_bucket(TimeUnit::FIVE_MINUTES);
|
||||||
valueMetric->set_what(cpuTimePerUidMatcher.id());
|
valueMetric->set_what(cpuTimePerUidMatcher.id());
|
||||||
*valueMetric->mutable_value_field() =
|
*valueMetric->mutable_value_field() =
|
||||||
CreateDimensions(android::util::CPU_TIME_PER_UID, {2 /* user_time_micros */});
|
CreateDimensions(util::CPU_TIME_PER_UID, {2 /* user_time_micros */});
|
||||||
*valueMetric->mutable_dimensions_in_what() =
|
*valueMetric->mutable_dimensions_in_what() =
|
||||||
CreateDimensions(android::util::CPU_TIME_PER_UID, {1 /* uid */});
|
CreateDimensions(util::CPU_TIME_PER_UID, {1 /* uid */});
|
||||||
valueMetric->add_slice_by_state(uidProcessState.id());
|
valueMetric->add_slice_by_state(uidProcessState.id());
|
||||||
MetricStateLink* stateLink = valueMetric->add_state_link();
|
MetricStateLink* stateLink = valueMetric->add_state_link();
|
||||||
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
||||||
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
||||||
*fieldsInWhat = CreateDimensions(android::util::CPU_TIME_PER_UID, {1 /* uid */});
|
*fieldsInWhat = CreateDimensions(util::CPU_TIME_PER_UID, {1 /* uid */});
|
||||||
auto fieldsInState = stateLink->mutable_fields_in_state();
|
auto fieldsInState = stateLink->mutable_fields_in_state();
|
||||||
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /* uid */});
|
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /* uid */});
|
||||||
valueMetric->set_max_pull_delay_sec(INT_MAX);
|
valueMetric->set_max_pull_delay_sec(INT_MAX);
|
||||||
@@ -497,7 +497,7 @@ TEST(ValueMetricE2eTest, TestInitWithSlicedState_WithIncorrectDimensions) {
|
|||||||
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
|
||||||
|
|
||||||
auto cpuTimePerUidMatcher =
|
auto cpuTimePerUidMatcher =
|
||||||
CreateSimpleAtomMatcher("CpuTimePerUidMatcher", android::util::CPU_TIME_PER_UID);
|
CreateSimpleAtomMatcher("CpuTimePerUidMatcher", util::CPU_TIME_PER_UID);
|
||||||
*config.add_atom_matcher() = cpuTimePerUidMatcher;
|
*config.add_atom_matcher() = cpuTimePerUidMatcher;
|
||||||
|
|
||||||
auto uidProcessState = CreateUidProcessState();
|
auto uidProcessState = CreateUidProcessState();
|
||||||
@@ -510,12 +510,12 @@ TEST(ValueMetricE2eTest, TestInitWithSlicedState_WithIncorrectDimensions) {
|
|||||||
valueMetric->set_bucket(TimeUnit::FIVE_MINUTES);
|
valueMetric->set_bucket(TimeUnit::FIVE_MINUTES);
|
||||||
valueMetric->set_what(cpuTimePerUidMatcher.id());
|
valueMetric->set_what(cpuTimePerUidMatcher.id());
|
||||||
*valueMetric->mutable_value_field() =
|
*valueMetric->mutable_value_field() =
|
||||||
CreateDimensions(android::util::CPU_TIME_PER_UID, {2 /* user_time_micros */});
|
CreateDimensions(util::CPU_TIME_PER_UID, {2 /* user_time_micros */});
|
||||||
valueMetric->add_slice_by_state(uidProcessState.id());
|
valueMetric->add_slice_by_state(uidProcessState.id());
|
||||||
MetricStateLink* stateLink = valueMetric->add_state_link();
|
MetricStateLink* stateLink = valueMetric->add_state_link();
|
||||||
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
|
||||||
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
auto fieldsInWhat = stateLink->mutable_fields_in_what();
|
||||||
*fieldsInWhat = CreateDimensions(android::util::CPU_TIME_PER_UID, {1 /* uid */});
|
*fieldsInWhat = CreateDimensions(util::CPU_TIME_PER_UID, {1 /* uid */});
|
||||||
auto fieldsInState = stateLink->mutable_fields_in_state();
|
auto fieldsInState = stateLink->mutable_fields_in_state();
|
||||||
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /* uid */});
|
*fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /* uid */});
|
||||||
valueMetric->set_max_pull_delay_sec(INT_MAX);
|
valueMetric->set_max_pull_delay_sec(INT_MAX);
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ StatsdConfig CreateStatsdConfig(DurationMetric::AggregationType aggregationType)
|
|||||||
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
auto holdingWakelockPredicate = CreateHoldingWakelockPredicate();
|
||||||
// The predicate is dimensioning by any attribution node and both by uid and tag.
|
// The predicate is dimensioning by any attribution node and both by uid and tag.
|
||||||
FieldMatcher dimensions = CreateAttributionUidAndTagDimensions(
|
FieldMatcher dimensions = CreateAttributionUidAndTagDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST, Position::LAST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST, Position::LAST});
|
||||||
// Also slice by the wakelock tag
|
// Also slice by the wakelock tag
|
||||||
dimensions.add_child()->set_field(3); // The wakelock tag is set in field 3 of the wakelock.
|
dimensions.add_child()->set_field(3); // The wakelock tag is set in field 3 of the wakelock.
|
||||||
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
*holdingWakelockPredicate.mutable_simple_predicate()->mutable_dimensions() = dimensions;
|
||||||
@@ -56,7 +56,7 @@ StatsdConfig CreateStatsdConfig(DurationMetric::AggregationType aggregationType)
|
|||||||
// The metric is dimensioning by first attribution node and only by uid.
|
// The metric is dimensioning by first attribution node and only by uid.
|
||||||
*durationMetric->mutable_dimensions_in_what() =
|
*durationMetric->mutable_dimensions_in_what() =
|
||||||
CreateAttributionUidDimensions(
|
CreateAttributionUidDimensions(
|
||||||
android::util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
util::WAKELOCK_STATE_CHANGED, {Position::FIRST});
|
||||||
durationMetric->set_bucket(FIVE_MINUTES);
|
durationMetric->set_bucket(FIVE_MINUTES);
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,7 @@ TEST(WakelockDurationE2eTest, TestAggregatedPredicateDimensionsForSumDuration1)
|
|||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111);
|
util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
// Validate bucket info.
|
// Validate bucket info.
|
||||||
EXPECT_EQ(reports.reports(0).metrics(0).duration_metrics().data(0).bucket_info_size(), 1);
|
EXPECT_EQ(reports.reports(0).metrics(0).duration_metrics().data(0).bucket_info_size(), 1);
|
||||||
data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
@@ -178,7 +178,7 @@ TEST(WakelockDurationE2eTest, TestAggregatedPredicateDimensionsForSumDuration2)
|
|||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111);
|
util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
// Two output buckets.
|
// Two output buckets.
|
||||||
// The wakelock holding interval in the 1st bucket starts from the screen off event and to
|
// The wakelock holding interval in the 1st bucket starts from the screen off event and to
|
||||||
// the end of the 1st bucket.
|
// the end of the 1st bucket.
|
||||||
@@ -228,7 +228,7 @@ TEST(WakelockDurationE2eTest, TestAggregatedPredicateDimensionsForSumDuration3)
|
|||||||
EXPECT_EQ(reports.reports(0).metrics(0).duration_metrics().data(0).bucket_info_size(), 6);
|
EXPECT_EQ(reports.reports(0).metrics(0).duration_metrics().data(0).bucket_info_size(), 6);
|
||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111);
|
util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
// The last wakelock holding spans 4 buckets.
|
// The last wakelock holding spans 4 buckets.
|
||||||
EXPECT_EQ((unsigned long long)data.bucket_info(2).duration_nanos(), bucketSizeNs - 100);
|
EXPECT_EQ((unsigned long long)data.bucket_info(2).duration_nanos(), bucketSizeNs - 100);
|
||||||
EXPECT_EQ((unsigned long long)data.bucket_info(3).duration_nanos(), bucketSizeNs);
|
EXPECT_EQ((unsigned long long)data.bucket_info(3).duration_nanos(), bucketSizeNs);
|
||||||
@@ -293,7 +293,7 @@ TEST(WakelockDurationE2eTest, TestAggregatedPredicateDimensionsForMaxDuration2)
|
|||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
// Validate dimension value.
|
// Validate dimension value.
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111);
|
util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
// The max is acquire event for wl1 to screen off start.
|
// The max is acquire event for wl1 to screen off start.
|
||||||
EXPECT_EQ((unsigned long long)data.bucket_info(0).duration_nanos(), bucketSizeNs + 2 - 200);
|
EXPECT_EQ((unsigned long long)data.bucket_info(0).duration_nanos(), bucketSizeNs + 2 - 200);
|
||||||
}
|
}
|
||||||
@@ -337,7 +337,7 @@ TEST(WakelockDurationE2eTest, TestAggregatedPredicateDimensionsForMaxDuration3)
|
|||||||
EXPECT_EQ(reports.reports(0).metrics(0).duration_metrics().data(0).bucket_info_size(), 2);
|
EXPECT_EQ(reports.reports(0).metrics(0).duration_metrics().data(0).bucket_info_size(), 2);
|
||||||
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
auto data = reports.reports(0).metrics(0).duration_metrics().data(0);
|
||||||
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
ValidateAttributionUidDimension(data.dimensions_in_what(),
|
||||||
android::util::WAKELOCK_STATE_CHANGED, 111);
|
util::WAKELOCK_STATE_CHANGED, 111);
|
||||||
// The last wakelock holding spans 4 buckets.
|
// The last wakelock holding spans 4 buckets.
|
||||||
EXPECT_EQ((unsigned long long)data.bucket_info(1).duration_nanos(), 3 * bucketSizeNs);
|
EXPECT_EQ((unsigned long long)data.bucket_info(1).duration_nanos(), 3 * bucketSizeNs);
|
||||||
EXPECT_EQ((unsigned long long)data.bucket_info(1).start_bucket_elapsed_nanos(),
|
EXPECT_EQ((unsigned long long)data.bucket_info(1).start_bucket_elapsed_nanos(),
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "../metrics/metrics_test_helper.h"
|
#include "../metrics/metrics_test_helper.h"
|
||||||
#include "stats_event.h"
|
#include "stats_event.h"
|
||||||
#include "statslog.h"
|
#include "statslog_statsdtest.h"
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
|
|
||||||
@@ -39,9 +39,9 @@ using testing::Contains;
|
|||||||
* Test merge isolated and host uid
|
* Test merge isolated and host uid
|
||||||
*/
|
*/
|
||||||
namespace {
|
namespace {
|
||||||
int uidAtomTagId = android::util::CPU_CLUSTER_TIME;
|
int uidAtomTagId = util::CPU_CLUSTER_TIME;
|
||||||
const vector<int> uidAdditiveFields = {3};
|
const vector<int> uidAdditiveFields = {3};
|
||||||
int nonUidAtomTagId = android::util::SYSTEM_UPTIME;
|
int nonUidAtomTagId = util::SYSTEM_UPTIME;
|
||||||
int timestamp = 1234;
|
int timestamp = 1234;
|
||||||
int isolatedUid = 30;
|
int isolatedUid = 30;
|
||||||
int isolatedAdditiveData = 31;
|
int isolatedAdditiveData = 31;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
#include "src/guardrail/StatsdStats.h"
|
#include "src/guardrail/StatsdStats.h"
|
||||||
#include "statslog.h"
|
#include "statslog_statsdtest.h"
|
||||||
#include "tests/statsd_test_util.h"
|
#include "tests/statsd_test_util.h"
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
@@ -222,11 +222,11 @@ TEST(StatsdStatsTest, TestAtomLog) {
|
|||||||
StatsdStats stats;
|
StatsdStats stats;
|
||||||
time_t now = time(nullptr);
|
time_t now = time(nullptr);
|
||||||
// old event, we get it from the stats buffer. should be ignored.
|
// old event, we get it from the stats buffer. should be ignored.
|
||||||
stats.noteAtomLogged(android::util::SENSOR_STATE_CHANGED, 1000);
|
stats.noteAtomLogged(util::SENSOR_STATE_CHANGED, 1000);
|
||||||
|
|
||||||
stats.noteAtomLogged(android::util::SENSOR_STATE_CHANGED, now + 1);
|
stats.noteAtomLogged(util::SENSOR_STATE_CHANGED, now + 1);
|
||||||
stats.noteAtomLogged(android::util::SENSOR_STATE_CHANGED, now + 2);
|
stats.noteAtomLogged(util::SENSOR_STATE_CHANGED, now + 2);
|
||||||
stats.noteAtomLogged(android::util::APP_CRASH_OCCURRED, now + 3);
|
stats.noteAtomLogged(util::APP_CRASH_OCCURRED, now + 3);
|
||||||
|
|
||||||
vector<uint8_t> output;
|
vector<uint8_t> output;
|
||||||
stats.dumpStats(&output, false);
|
stats.dumpStats(&output, false);
|
||||||
@@ -239,10 +239,10 @@ TEST(StatsdStatsTest, TestAtomLog) {
|
|||||||
bool dropboxAtomGood = false;
|
bool dropboxAtomGood = false;
|
||||||
|
|
||||||
for (const auto& atomStats : report.atom_stats()) {
|
for (const auto& atomStats : report.atom_stats()) {
|
||||||
if (atomStats.tag() == android::util::SENSOR_STATE_CHANGED && atomStats.count() == 3) {
|
if (atomStats.tag() == util::SENSOR_STATE_CHANGED && atomStats.count() == 3) {
|
||||||
sensorAtomGood = true;
|
sensorAtomGood = true;
|
||||||
}
|
}
|
||||||
if (atomStats.tag() == android::util::APP_CRASH_OCCURRED && atomStats.count() == 1) {
|
if (atomStats.tag() == util::APP_CRASH_OCCURRED && atomStats.count() == 1) {
|
||||||
dropboxAtomGood = true;
|
dropboxAtomGood = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -287,21 +287,21 @@ TEST(StatsdStatsTest, TestNonPlatformAtomLog) {
|
|||||||
TEST(StatsdStatsTest, TestPullAtomStats) {
|
TEST(StatsdStatsTest, TestPullAtomStats) {
|
||||||
StatsdStats stats;
|
StatsdStats stats;
|
||||||
|
|
||||||
stats.updateMinPullIntervalSec(android::util::DISK_SPACE, 3333L);
|
stats.updateMinPullIntervalSec(util::DISK_SPACE, 3333L);
|
||||||
stats.updateMinPullIntervalSec(android::util::DISK_SPACE, 2222L);
|
stats.updateMinPullIntervalSec(util::DISK_SPACE, 2222L);
|
||||||
stats.updateMinPullIntervalSec(android::util::DISK_SPACE, 4444L);
|
stats.updateMinPullIntervalSec(util::DISK_SPACE, 4444L);
|
||||||
|
|
||||||
stats.notePull(android::util::DISK_SPACE);
|
stats.notePull(util::DISK_SPACE);
|
||||||
stats.notePullTime(android::util::DISK_SPACE, 1111L);
|
stats.notePullTime(util::DISK_SPACE, 1111L);
|
||||||
stats.notePullDelay(android::util::DISK_SPACE, 1111L);
|
stats.notePullDelay(util::DISK_SPACE, 1111L);
|
||||||
stats.notePull(android::util::DISK_SPACE);
|
stats.notePull(util::DISK_SPACE);
|
||||||
stats.notePullTime(android::util::DISK_SPACE, 3333L);
|
stats.notePullTime(util::DISK_SPACE, 3333L);
|
||||||
stats.notePullDelay(android::util::DISK_SPACE, 3335L);
|
stats.notePullDelay(util::DISK_SPACE, 3335L);
|
||||||
stats.notePull(android::util::DISK_SPACE);
|
stats.notePull(util::DISK_SPACE);
|
||||||
stats.notePullFromCache(android::util::DISK_SPACE);
|
stats.notePullFromCache(util::DISK_SPACE);
|
||||||
stats.notePullerCallbackRegistrationChanged(android::util::DISK_SPACE, true);
|
stats.notePullerCallbackRegistrationChanged(util::DISK_SPACE, true);
|
||||||
stats.notePullerCallbackRegistrationChanged(android::util::DISK_SPACE, false);
|
stats.notePullerCallbackRegistrationChanged(util::DISK_SPACE, false);
|
||||||
stats.notePullerCallbackRegistrationChanged(android::util::DISK_SPACE, true);
|
stats.notePullerCallbackRegistrationChanged(util::DISK_SPACE, true);
|
||||||
|
|
||||||
|
|
||||||
vector<uint8_t> output;
|
vector<uint8_t> output;
|
||||||
@@ -312,7 +312,7 @@ TEST(StatsdStatsTest, TestPullAtomStats) {
|
|||||||
|
|
||||||
EXPECT_EQ(1, report.pulled_atom_stats_size());
|
EXPECT_EQ(1, report.pulled_atom_stats_size());
|
||||||
|
|
||||||
EXPECT_EQ(android::util::DISK_SPACE, report.pulled_atom_stats(0).atom_id());
|
EXPECT_EQ(util::DISK_SPACE, report.pulled_atom_stats(0).atom_id());
|
||||||
EXPECT_EQ(3, report.pulled_atom_stats(0).total_pull());
|
EXPECT_EQ(3, report.pulled_atom_stats(0).total_pull());
|
||||||
EXPECT_EQ(1, report.pulled_atom_stats(0).total_pull_from_cache());
|
EXPECT_EQ(1, report.pulled_atom_stats(0).total_pull_from_cache());
|
||||||
EXPECT_EQ(2222L, report.pulled_atom_stats(0).min_pull_interval_sec());
|
EXPECT_EQ(2222L, report.pulled_atom_stats(0).min_pull_interval_sec());
|
||||||
|
|||||||
@@ -3750,7 +3750,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenPullFailed) {
|
|||||||
//
|
//
|
||||||
// sp<ValueMetricProducer> valueProducer =
|
// sp<ValueMetricProducer> valueProducer =
|
||||||
// ValueMetricProducerTestHelper::createValueProducerWithState(
|
// ValueMetricProducerTestHelper::createValueProducerWithState(
|
||||||
// pullerManager, metric, {android::util::SCREEN_STATE_CHANGED}, {});
|
// pullerManager, metric, {util::SCREEN_STATE_CHANGED}, {});
|
||||||
//
|
//
|
||||||
// // Set up StateManager and check that StateTrackers are initialized.
|
// // Set up StateManager and check that StateTrackers are initialized.
|
||||||
// StateManager::getInstance().clear();
|
// StateManager::getInstance().clear();
|
||||||
@@ -3934,7 +3934,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenPullFailed) {
|
|||||||
//
|
//
|
||||||
// sp<ValueMetricProducer> valueProducer =
|
// sp<ValueMetricProducer> valueProducer =
|
||||||
// ValueMetricProducerTestHelper::createValueProducerWithState(
|
// ValueMetricProducerTestHelper::createValueProducerWithState(
|
||||||
// pullerManager, metric, {android::util::SCREEN_STATE_CHANGED}, stateGroupMap);
|
// pullerManager, metric, {util::SCREEN_STATE_CHANGED}, stateGroupMap);
|
||||||
//
|
//
|
||||||
// // Set up StateManager and check that StateTrackers are initialized.
|
// // Set up StateManager and check that StateTrackers are initialized.
|
||||||
// StateManager::getInstance().clear();
|
// StateManager::getInstance().clear();
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
//// State with no primary fields - ScreenStateChanged
|
//// State with no primary fields - ScreenStateChanged
|
||||||
//std::shared_ptr<LogEvent> buildScreenEvent(int state) {
|
//std::shared_ptr<LogEvent> buildScreenEvent(int state) {
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::SCREEN_STATE_CHANGED, 1000 /*timestamp*/);
|
// std::make_shared<LogEvent>(util::SCREEN_STATE_CHANGED, 1000 /*timestamp*/);
|
||||||
// event->write((int32_t)state);
|
// event->write((int32_t)state);
|
||||||
// event->init();
|
// event->init();
|
||||||
// return event;
|
// return event;
|
||||||
@@ -70,7 +70,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
//// State with one primary field - UidProcessStateChanged
|
//// State with one primary field - UidProcessStateChanged
|
||||||
//std::shared_ptr<LogEvent> buildUidProcessEvent(int uid, int state) {
|
//std::shared_ptr<LogEvent> buildUidProcessEvent(int uid, int state) {
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::UID_PROCESS_STATE_CHANGED, 1000 /*timestamp*/);
|
// std::make_shared<LogEvent>(util::UID_PROCESS_STATE_CHANGED, 1000 /*timestamp*/);
|
||||||
// event->write((int32_t)uid);
|
// event->write((int32_t)uid);
|
||||||
// event->write((int32_t)state);
|
// event->write((int32_t)state);
|
||||||
// event->init();
|
// event->init();
|
||||||
@@ -85,7 +85,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
// attr.set_uid(uid);
|
// attr.set_uid(uid);
|
||||||
//
|
//
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::WAKELOCK_STATE_CHANGED, 1000 /* timestamp */);
|
// std::make_shared<LogEvent>(util::WAKELOCK_STATE_CHANGED, 1000 /* timestamp */);
|
||||||
// event->write(chain);
|
// event->write(chain);
|
||||||
// event->write((int32_t)1); // PARTIAL_WAKE_LOCK
|
// event->write((int32_t)1); // PARTIAL_WAKE_LOCK
|
||||||
// event->write(tag);
|
// event->write(tag);
|
||||||
@@ -97,7 +97,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
//// State with multiple primary fields - OverlayStateChanged
|
//// State with multiple primary fields - OverlayStateChanged
|
||||||
//std::shared_ptr<LogEvent> buildOverlayEvent(int uid, const std::string& packageName, int state) {
|
//std::shared_ptr<LogEvent> buildOverlayEvent(int uid, const std::string& packageName, int state) {
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
|
// std::make_shared<LogEvent>(util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
|
||||||
// event->write((int32_t)uid);
|
// event->write((int32_t)uid);
|
||||||
// event->write(packageName);
|
// event->write(packageName);
|
||||||
// event->write(true); // using_alert_window
|
// event->write(true); // using_alert_window
|
||||||
@@ -109,7 +109,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
//// Incorrect event - missing fields
|
//// Incorrect event - missing fields
|
||||||
//std::shared_ptr<LogEvent> buildIncorrectOverlayEvent(int uid, const std::string& packageName, int state) {
|
//std::shared_ptr<LogEvent> buildIncorrectOverlayEvent(int uid, const std::string& packageName, int state) {
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
|
// std::make_shared<LogEvent>(util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
|
||||||
// event->write((int32_t)uid);
|
// event->write((int32_t)uid);
|
||||||
// event->write(packageName);
|
// event->write(packageName);
|
||||||
// event->write((int32_t)state);
|
// event->write((int32_t)state);
|
||||||
@@ -120,7 +120,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
//// Incorrect event - exclusive state has wrong type
|
//// Incorrect event - exclusive state has wrong type
|
||||||
//std::shared_ptr<LogEvent> buildOverlayEventBadStateType(int uid, const std::string& packageName) {
|
//std::shared_ptr<LogEvent> buildOverlayEventBadStateType(int uid, const std::string& packageName) {
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
|
// std::make_shared<LogEvent>(util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
|
||||||
// event->write((int32_t)uid);
|
// event->write((int32_t)uid);
|
||||||
// event->write(packageName);
|
// event->write(packageName);
|
||||||
// event->write(true);
|
// event->write(true);
|
||||||
@@ -136,7 +136,7 @@ int getStateInt(StateManager& mgr, int atomId, const HashableDimensionKey& query
|
|||||||
// attr.set_uid(uid);
|
// attr.set_uid(uid);
|
||||||
//
|
//
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
// std::make_shared<LogEvent>(android::util::BLE_SCAN_STATE_CHANGED, 1000);
|
// std::make_shared<LogEvent>(util::BLE_SCAN_STATE_CHANGED, 1000);
|
||||||
// event->write(chain);
|
// event->write(chain);
|
||||||
// event->write(reset ? 2 : acquire ? 1 : 0); // PARTIAL_WAKE_LOCK
|
// event->write(reset ? 2 : acquire ? 1 : 0); // PARTIAL_WAKE_LOCK
|
||||||
// event->write(0); // filtered
|
// event->write(0); // filtered
|
||||||
@@ -216,7 +216,7 @@ TEST(StateManagerTest, TestStateManagerGetInstance) {
|
|||||||
StateManager& mgr = StateManager::getInstance();
|
StateManager& mgr = StateManager::getInstance();
|
||||||
mgr.clear();
|
mgr.clear();
|
||||||
|
|
||||||
mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener1);
|
mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
|
EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
|
||||||
}
|
}
|
||||||
@@ -236,22 +236,22 @@ TEST(StateTrackerTest, TestRegisterListener) {
|
|||||||
|
|
||||||
// Register listener to non-existing StateTracker
|
// Register listener to non-existing StateTracker
|
||||||
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
||||||
EXPECT_TRUE(mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener1));
|
EXPECT_TRUE(mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1));
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(1, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
|
|
||||||
// Register listener to existing StateTracker
|
// Register listener to existing StateTracker
|
||||||
EXPECT_TRUE(mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener2));
|
EXPECT_TRUE(mgr.registerListener(util::SCREEN_STATE_CHANGED, listener2));
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(2, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(2, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
|
|
||||||
// Register already registered listener to existing StateTracker
|
// Register already registered listener to existing StateTracker
|
||||||
EXPECT_TRUE(mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener2));
|
EXPECT_TRUE(mgr.registerListener(util::SCREEN_STATE_CHANGED, listener2));
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(2, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(2, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
|
|
||||||
// Register listener to non-state atom
|
// Register listener to non-state atom
|
||||||
EXPECT_FALSE(mgr.registerListener(android::util::BATTERY_LEVEL_CHANGED, listener2));
|
EXPECT_FALSE(mgr.registerListener(util::BATTERY_LEVEL_CHANGED, listener2));
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,28 +270,28 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
|
|
||||||
// Unregister listener from non-existing StateTracker
|
// Unregister listener from non-existing StateTracker
|
||||||
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
||||||
mgr.unregisterListener(android::util::SCREEN_STATE_CHANGED, listener1);
|
mgr.unregisterListener(util::SCREEN_STATE_CHANGED, listener1);
|
||||||
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(-1, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(-1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
|
|
||||||
// Unregister non-registered listener from existing StateTracker
|
// Unregister non-registered listener from existing StateTracker
|
||||||
mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener1);
|
mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(1, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
mgr.unregisterListener(android::util::SCREEN_STATE_CHANGED, listener2);
|
mgr.unregisterListener(util::SCREEN_STATE_CHANGED, listener2);
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(1, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
|
|
||||||
// Unregister second-to-last listener from StateTracker
|
// Unregister second-to-last listener from StateTracker
|
||||||
mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener2);
|
mgr.registerListener(util::SCREEN_STATE_CHANGED, listener2);
|
||||||
mgr.unregisterListener(android::util::SCREEN_STATE_CHANGED, listener1);
|
mgr.unregisterListener(util::SCREEN_STATE_CHANGED, listener1);
|
||||||
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(1, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
|
|
||||||
// Unregister last listener from StateTracker
|
// Unregister last listener from StateTracker
|
||||||
mgr.unregisterListener(android::util::SCREEN_STATE_CHANGED, listener2);
|
mgr.unregisterListener(util::SCREEN_STATE_CHANGED, listener2);
|
||||||
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
EXPECT_EQ(0, mgr.getStateTrackersCount());
|
||||||
EXPECT_EQ(-1, mgr.getListenersCount(android::util::SCREEN_STATE_CHANGED));
|
EXPECT_EQ(-1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
|
||||||
}
|
}
|
||||||
// TODO(b/149590301): Update these tests to use new socket schema.
|
// TODO(b/149590301): Update these tests to use new socket schema.
|
||||||
///**
|
///**
|
||||||
@@ -305,7 +305,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
//TEST(StateTrackerTest, TestStateChangeNested) {
|
//TEST(StateTrackerTest, TestStateChangeNested) {
|
||||||
// sp<TestStateListener> listener = new TestStateListener();
|
// sp<TestStateListener> listener = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::WAKELOCK_STATE_CHANGED, listener);
|
// mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener);
|
||||||
//
|
//
|
||||||
// std::shared_ptr<LogEvent> event1 =
|
// std::shared_ptr<LogEvent> event1 =
|
||||||
// buildPartialWakelockEvent(1000 /* uid */, "tag", true /*acquire*/);
|
// buildPartialWakelockEvent(1000 /* uid */, "tag", true /*acquire*/);
|
||||||
@@ -342,7 +342,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
//TEST(StateTrackerTest, TestStateChangeReset) {
|
//TEST(StateTrackerTest, TestStateChangeReset) {
|
||||||
// sp<TestStateListener> listener = new TestStateListener();
|
// sp<TestStateListener> listener = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::BLE_SCAN_STATE_CHANGED, listener);
|
// mgr.registerListener(util::BLE_SCAN_STATE_CHANGED, listener);
|
||||||
//
|
//
|
||||||
// std::shared_ptr<LogEvent> event1 =
|
// std::shared_ptr<LogEvent> event1 =
|
||||||
// buildBleScanEvent(1000 /* uid */, true /*acquire*/, false /*reset*/);
|
// buildBleScanEvent(1000 /* uid */, true /*acquire*/, false /*reset*/);
|
||||||
@@ -375,7 +375,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
//TEST(StateTrackerTest, TestStateChangeNoPrimaryFields) {
|
//TEST(StateTrackerTest, TestStateChangeNoPrimaryFields) {
|
||||||
// sp<TestStateListener> listener1 = new TestStateListener();
|
// sp<TestStateListener> listener1 = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener1);
|
// mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
|
||||||
//
|
//
|
||||||
// // log event
|
// // log event
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
@@ -390,7 +390,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// // check StateTracker was updated by querying for state
|
// // check StateTracker was updated by querying for state
|
||||||
// HashableDimensionKey queryKey = DEFAULT_DIMENSION_KEY;
|
// HashableDimensionKey queryKey = DEFAULT_DIMENSION_KEY;
|
||||||
// EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
|
// EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
|
||||||
// getStateInt(mgr, android::util::SCREEN_STATE_CHANGED, queryKey));
|
// getStateInt(mgr, util::SCREEN_STATE_CHANGED, queryKey));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
///**
|
///**
|
||||||
@@ -400,7 +400,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
//TEST(StateTrackerTest, TestStateChangeOnePrimaryField) {
|
//TEST(StateTrackerTest, TestStateChangeOnePrimaryField) {
|
||||||
// sp<TestStateListener> listener1 = new TestStateListener();
|
// sp<TestStateListener> listener1 = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::UID_PROCESS_STATE_CHANGED, listener1);
|
// mgr.registerListener(util::UID_PROCESS_STATE_CHANGED, listener1);
|
||||||
//
|
//
|
||||||
// // log event
|
// // log event
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
@@ -416,13 +416,13 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// HashableDimensionKey queryKey;
|
// HashableDimensionKey queryKey;
|
||||||
// getUidProcessKey(1000 /* uid */, &queryKey);
|
// getUidProcessKey(1000 /* uid */, &queryKey);
|
||||||
// EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
|
// EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
|
||||||
// getStateInt(mgr, android::util::UID_PROCESS_STATE_CHANGED, queryKey));
|
// getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
//TEST(StateTrackerTest, TestStateChangePrimaryFieldAttrChain) {
|
//TEST(StateTrackerTest, TestStateChangePrimaryFieldAttrChain) {
|
||||||
// sp<TestStateListener> listener1 = new TestStateListener();
|
// sp<TestStateListener> listener1 = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::WAKELOCK_STATE_CHANGED, listener1);
|
// mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener1);
|
||||||
//
|
//
|
||||||
// // Log event.
|
// // Log event.
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
@@ -430,7 +430,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// mgr.onLogEvent(*event);
|
// mgr.onLogEvent(*event);
|
||||||
//
|
//
|
||||||
// EXPECT_EQ(1, mgr.getStateTrackersCount());
|
// EXPECT_EQ(1, mgr.getStateTrackersCount());
|
||||||
// EXPECT_EQ(1, mgr.getListenersCount(android::util::WAKELOCK_STATE_CHANGED));
|
// EXPECT_EQ(1, mgr.getListenersCount(util::WAKELOCK_STATE_CHANGED));
|
||||||
//
|
//
|
||||||
// // Check listener was updated.
|
// // Check listener was updated.
|
||||||
// EXPECT_EQ(1, listener1->updates.size());
|
// EXPECT_EQ(1, listener1->updates.size());
|
||||||
@@ -444,19 +444,19 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// HashableDimensionKey queryKey;
|
// HashableDimensionKey queryKey;
|
||||||
// getPartialWakelockKey(1001 /* uid */, "tag1", &queryKey);
|
// getPartialWakelockKey(1001 /* uid */, "tag1", &queryKey);
|
||||||
// EXPECT_EQ(WakelockStateChanged::ACQUIRE,
|
// EXPECT_EQ(WakelockStateChanged::ACQUIRE,
|
||||||
// getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey));
|
// getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey));
|
||||||
//
|
//
|
||||||
// // No state stored for this query key.
|
// // No state stored for this query key.
|
||||||
// HashableDimensionKey queryKey2;
|
// HashableDimensionKey queryKey2;
|
||||||
// getPartialWakelockKey(1002 /* uid */, "tag1", &queryKey2);
|
// getPartialWakelockKey(1002 /* uid */, "tag1", &queryKey2);
|
||||||
// EXPECT_EQ(WakelockStateChanged::RELEASE,
|
// EXPECT_EQ(WakelockStateChanged::RELEASE,
|
||||||
// getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey2));
|
// getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey2));
|
||||||
//
|
//
|
||||||
// // Partial query fails.
|
// // Partial query fails.
|
||||||
// HashableDimensionKey queryKey3;
|
// HashableDimensionKey queryKey3;
|
||||||
// getPartialWakelockKey(1001 /* uid */, &queryKey3);
|
// getPartialWakelockKey(1001 /* uid */, &queryKey3);
|
||||||
// EXPECT_EQ(WakelockStateChanged::RELEASE,
|
// EXPECT_EQ(WakelockStateChanged::RELEASE,
|
||||||
// getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey3));
|
// getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey3));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
///**
|
///**
|
||||||
@@ -466,7 +466,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
//TEST(StateTrackerTest, TestStateChangeMultiplePrimaryFields) {
|
//TEST(StateTrackerTest, TestStateChangeMultiplePrimaryFields) {
|
||||||
// sp<TestStateListener> listener1 = new TestStateListener();
|
// sp<TestStateListener> listener1 = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::OVERLAY_STATE_CHANGED, listener1);
|
// mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener1);
|
||||||
//
|
//
|
||||||
// // log event
|
// // log event
|
||||||
// std::shared_ptr<LogEvent> event =
|
// std::shared_ptr<LogEvent> event =
|
||||||
@@ -482,7 +482,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// HashableDimensionKey queryKey;
|
// HashableDimensionKey queryKey;
|
||||||
// getOverlayKey(1000 /* uid */, "package1", &queryKey);
|
// getOverlayKey(1000 /* uid */, "package1", &queryKey);
|
||||||
// EXPECT_EQ(OverlayStateChanged::ENTERED,
|
// EXPECT_EQ(OverlayStateChanged::ENTERED,
|
||||||
// getStateInt(mgr, android::util::OVERLAY_STATE_CHANGED, queryKey));
|
// getStateInt(mgr, util::OVERLAY_STATE_CHANGED, queryKey));
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
///**
|
///**
|
||||||
@@ -493,7 +493,7 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
//TEST(StateTrackerTest, TestStateChangeEventError) {
|
//TEST(StateTrackerTest, TestStateChangeEventError) {
|
||||||
// sp<TestStateListener> listener1 = new TestStateListener();
|
// sp<TestStateListener> listener1 = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::OVERLAY_STATE_CHANGED, listener1);
|
// mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener1);
|
||||||
//
|
//
|
||||||
// // log event
|
// // log event
|
||||||
// std::shared_ptr<LogEvent> event1 =
|
// std::shared_ptr<LogEvent> event1 =
|
||||||
@@ -513,10 +513,10 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// sp<TestStateListener> listener3 = new TestStateListener();
|
// sp<TestStateListener> listener3 = new TestStateListener();
|
||||||
// sp<TestStateListener> listener4 = new TestStateListener();
|
// sp<TestStateListener> listener4 = new TestStateListener();
|
||||||
// StateManager mgr;
|
// StateManager mgr;
|
||||||
// mgr.registerListener(android::util::SCREEN_STATE_CHANGED, listener1);
|
// mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
|
||||||
// mgr.registerListener(android::util::UID_PROCESS_STATE_CHANGED, listener2);
|
// mgr.registerListener(util::UID_PROCESS_STATE_CHANGED, listener2);
|
||||||
// mgr.registerListener(android::util::OVERLAY_STATE_CHANGED, listener3);
|
// mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener3);
|
||||||
// mgr.registerListener(android::util::WAKELOCK_STATE_CHANGED, listener4);
|
// mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener4);
|
||||||
//
|
//
|
||||||
// std::shared_ptr<LogEvent> event1 = buildUidProcessEvent(
|
// std::shared_ptr<LogEvent> event1 = buildUidProcessEvent(
|
||||||
// 1000,
|
// 1000,
|
||||||
@@ -554,40 +554,40 @@ TEST(StateTrackerTest, TestUnregisterListener) {
|
|||||||
// HashableDimensionKey queryKey1;
|
// HashableDimensionKey queryKey1;
|
||||||
// getUidProcessKey(1001, &queryKey1);
|
// getUidProcessKey(1001, &queryKey1);
|
||||||
// EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_FOREGROUND_SERVICE,
|
// EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_FOREGROUND_SERVICE,
|
||||||
// getStateInt(mgr, android::util::UID_PROCESS_STATE_CHANGED, queryKey1));
|
// getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey1));
|
||||||
//
|
//
|
||||||
// // Query for UidProcessState of uid 1004 - not in state map
|
// // Query for UidProcessState of uid 1004 - not in state map
|
||||||
// HashableDimensionKey queryKey2;
|
// HashableDimensionKey queryKey2;
|
||||||
// getUidProcessKey(1004, &queryKey2);
|
// getUidProcessKey(1004, &queryKey2);
|
||||||
// EXPECT_EQ(-1, getStateInt(mgr, android::util::UID_PROCESS_STATE_CHANGED,
|
// EXPECT_EQ(-1, getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED,
|
||||||
// queryKey2)); // default state
|
// queryKey2)); // default state
|
||||||
//
|
//
|
||||||
// // Query for UidProcessState of uid 1001 - after change in state
|
// // Query for UidProcessState of uid 1001 - after change in state
|
||||||
// mgr.onLogEvent(*event4);
|
// mgr.onLogEvent(*event4);
|
||||||
// EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
|
// EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
|
||||||
// getStateInt(mgr, android::util::UID_PROCESS_STATE_CHANGED, queryKey1));
|
// getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey1));
|
||||||
//
|
//
|
||||||
// // Query for ScreenState
|
// // Query for ScreenState
|
||||||
// EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
|
// EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
|
||||||
// getStateInt(mgr, android::util::SCREEN_STATE_CHANGED, DEFAULT_DIMENSION_KEY));
|
// getStateInt(mgr, util::SCREEN_STATE_CHANGED, DEFAULT_DIMENSION_KEY));
|
||||||
//
|
//
|
||||||
// // Query for OverlayState of uid 1000, package name "package2"
|
// // Query for OverlayState of uid 1000, package name "package2"
|
||||||
// HashableDimensionKey queryKey3;
|
// HashableDimensionKey queryKey3;
|
||||||
// getOverlayKey(1000, "package2", &queryKey3);
|
// getOverlayKey(1000, "package2", &queryKey3);
|
||||||
// EXPECT_EQ(OverlayStateChanged::EXITED,
|
// EXPECT_EQ(OverlayStateChanged::EXITED,
|
||||||
// getStateInt(mgr, android::util::OVERLAY_STATE_CHANGED, queryKey3));
|
// getStateInt(mgr, util::OVERLAY_STATE_CHANGED, queryKey3));
|
||||||
//
|
//
|
||||||
// // Query for WakelockState of uid 1005, tag 2
|
// // Query for WakelockState of uid 1005, tag 2
|
||||||
// HashableDimensionKey queryKey4;
|
// HashableDimensionKey queryKey4;
|
||||||
// getPartialWakelockKey(1005, "tag2", &queryKey4);
|
// getPartialWakelockKey(1005, "tag2", &queryKey4);
|
||||||
// EXPECT_EQ(WakelockStateChanged::RELEASE,
|
// EXPECT_EQ(WakelockStateChanged::RELEASE,
|
||||||
// getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey4));
|
// getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey4));
|
||||||
//
|
//
|
||||||
// // Query for WakelockState of uid 1005, tag 1
|
// // Query for WakelockState of uid 1005, tag 1
|
||||||
// HashableDimensionKey queryKey5;
|
// HashableDimensionKey queryKey5;
|
||||||
// getPartialWakelockKey(1005, "tag1", &queryKey5);
|
// getPartialWakelockKey(1005, "tag1", &queryKey5);
|
||||||
// EXPECT_EQ(WakelockStateChanged::ACQUIRE,
|
// EXPECT_EQ(WakelockStateChanged::ACQUIRE,
|
||||||
// getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey5));
|
// getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey5));
|
||||||
//}
|
//}
|
||||||
|
|
||||||
} // namespace statsd
|
} // namespace statsd
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ AtomMatcher CreateSimpleAtomMatcher(const string& name, int atomId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AtomMatcher CreateTemperatureAtomMatcher() {
|
AtomMatcher CreateTemperatureAtomMatcher() {
|
||||||
return CreateSimpleAtomMatcher("TemperatureMatcher", android::util::TEMPERATURE);
|
return CreateSimpleAtomMatcher("TemperatureMatcher", util::TEMPERATURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
AtomMatcher CreateScheduledJobStateChangedAtomMatcher(const string& name,
|
AtomMatcher CreateScheduledJobStateChangedAtomMatcher(const string& name,
|
||||||
@@ -59,7 +59,7 @@ AtomMatcher CreateScheduledJobStateChangedAtomMatcher(const string& name,
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::SCHEDULED_JOB_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::SCHEDULED_JOB_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(3); // State field.
|
field_value_matcher->set_field(3); // State field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -80,7 +80,7 @@ AtomMatcher CreateScreenBrightnessChangedAtomMatcher() {
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId("ScreenBrightnessChanged"));
|
atom_matcher.set_id(StringToId("ScreenBrightnessChanged"));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::SCREEN_BRIGHTNESS_CHANGED);
|
simple_atom_matcher->set_atom_id(util::SCREEN_BRIGHTNESS_CHANGED);
|
||||||
return atom_matcher;
|
return atom_matcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ AtomMatcher CreateUidProcessStateChangedAtomMatcher() {
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId("UidProcessStateChanged"));
|
atom_matcher.set_id(StringToId("UidProcessStateChanged"));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::UID_PROCESS_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::UID_PROCESS_STATE_CHANGED);
|
||||||
return atom_matcher;
|
return atom_matcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ AtomMatcher CreateWakelockStateChangedAtomMatcher(const string& name,
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::WAKELOCK_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::WAKELOCK_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(4); // State field.
|
field_value_matcher->set_field(4); // State field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -117,7 +117,7 @@ AtomMatcher CreateBatterySaverModeStateChangedAtomMatcher(
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::BATTERY_SAVER_MODE_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::BATTERY_SAVER_MODE_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(1); // State field.
|
field_value_matcher->set_field(1); // State field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -141,7 +141,7 @@ AtomMatcher CreateScreenStateChangedAtomMatcher(
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::SCREEN_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::SCREEN_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(1); // State field.
|
field_value_matcher->set_field(1); // State field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -164,7 +164,7 @@ AtomMatcher CreateSyncStateChangedAtomMatcher(
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::SYNC_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::SYNC_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(3); // State field.
|
field_value_matcher->set_field(3); // State field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -184,7 +184,7 @@ AtomMatcher CreateActivityForegroundStateChangedAtomMatcher(
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(4); // Activity field.
|
field_value_matcher->set_field(4); // Activity field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -206,7 +206,7 @@ AtomMatcher CreateProcessLifeCycleStateChangedAtomMatcher(
|
|||||||
AtomMatcher atom_matcher;
|
AtomMatcher atom_matcher;
|
||||||
atom_matcher.set_id(StringToId(name));
|
atom_matcher.set_id(StringToId(name));
|
||||||
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
auto simple_atom_matcher = atom_matcher.mutable_simple_atom_matcher();
|
||||||
simple_atom_matcher->set_atom_id(android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
simple_atom_matcher->set_atom_id(util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
auto field_value_matcher = simple_atom_matcher->add_field_value_matcher();
|
||||||
field_value_matcher->set_field(3); // Process state field.
|
field_value_matcher->set_field(3); // Process state field.
|
||||||
field_value_matcher->set_eq_int(state);
|
field_value_matcher->set_eq_int(state);
|
||||||
@@ -277,28 +277,28 @@ Predicate CreateIsInBackgroundPredicate() {
|
|||||||
State CreateScreenState() {
|
State CreateScreenState() {
|
||||||
State state;
|
State state;
|
||||||
state.set_id(StringToId("ScreenState"));
|
state.set_id(StringToId("ScreenState"));
|
||||||
state.set_atom_id(android::util::SCREEN_STATE_CHANGED);
|
state.set_atom_id(util::SCREEN_STATE_CHANGED);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
State CreateUidProcessState() {
|
State CreateUidProcessState() {
|
||||||
State state;
|
State state;
|
||||||
state.set_id(StringToId("UidProcessState"));
|
state.set_id(StringToId("UidProcessState"));
|
||||||
state.set_atom_id(android::util::UID_PROCESS_STATE_CHANGED);
|
state.set_atom_id(util::UID_PROCESS_STATE_CHANGED);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
State CreateOverlayState() {
|
State CreateOverlayState() {
|
||||||
State state;
|
State state;
|
||||||
state.set_id(StringToId("OverlayState"));
|
state.set_id(StringToId("OverlayState"));
|
||||||
state.set_atom_id(android::util::OVERLAY_STATE_CHANGED);
|
state.set_atom_id(util::OVERLAY_STATE_CHANGED);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
State CreateScreenStateWithOnOffMap() {
|
State CreateScreenStateWithOnOffMap() {
|
||||||
State state;
|
State state;
|
||||||
state.set_id(StringToId("ScreenStateOnOff"));
|
state.set_id(StringToId("ScreenStateOnOff"));
|
||||||
state.set_atom_id(android::util::SCREEN_STATE_CHANGED);
|
state.set_atom_id(util::SCREEN_STATE_CHANGED);
|
||||||
|
|
||||||
auto map = CreateScreenStateOnOffMap();
|
auto map = CreateScreenStateOnOffMap();
|
||||||
*state.mutable_map() = map;
|
*state.mutable_map() = map;
|
||||||
@@ -309,7 +309,7 @@ State CreateScreenStateWithOnOffMap() {
|
|||||||
State CreateScreenStateWithInDozeMap() {
|
State CreateScreenStateWithInDozeMap() {
|
||||||
State state;
|
State state;
|
||||||
state.set_id(StringToId("ScreenStateInDoze"));
|
state.set_id(StringToId("ScreenStateInDoze"));
|
||||||
state.set_atom_id(android::util::SCREEN_STATE_CHANGED);
|
state.set_atom_id(util::SCREEN_STATE_CHANGED);
|
||||||
|
|
||||||
auto map = CreateScreenStateInDozeMap();
|
auto map = CreateScreenStateInDozeMap();
|
||||||
*state.mutable_map() = map;
|
*state.mutable_map() = map;
|
||||||
@@ -534,7 +534,7 @@ shared_ptr<LogEvent> CreateNoValuesLogEvent(int atomId, int64_t eventTimeNs) {
|
|||||||
std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
|
std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
|
||||||
uint64_t timestampNs, const android::view::DisplayStateEnum state) {
|
uint64_t timestampNs, const android::view::DisplayStateEnum state) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::SCREEN_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::SCREEN_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, state);
|
AStatsEvent_writeInt32(statsEvent, state);
|
||||||
@@ -551,7 +551,7 @@ std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
|
|||||||
|
|
||||||
std::unique_ptr<LogEvent> CreateBatterySaverOnEvent(uint64_t timestampNs) {
|
std::unique_ptr<LogEvent> CreateBatterySaverOnEvent(uint64_t timestampNs) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::BATTERY_SAVER_MODE_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::BATTERY_SAVER_MODE_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, BatterySaverModeStateChanged::ON);
|
AStatsEvent_writeInt32(statsEvent, BatterySaverModeStateChanged::ON);
|
||||||
@@ -568,7 +568,7 @@ std::unique_ptr<LogEvent> CreateBatterySaverOnEvent(uint64_t timestampNs) {
|
|||||||
|
|
||||||
std::unique_ptr<LogEvent> CreateBatterySaverOffEvent(uint64_t timestampNs) {
|
std::unique_ptr<LogEvent> CreateBatterySaverOffEvent(uint64_t timestampNs) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::BATTERY_SAVER_MODE_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::BATTERY_SAVER_MODE_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, BatterySaverModeStateChanged::OFF);
|
AStatsEvent_writeInt32(statsEvent, BatterySaverModeStateChanged::OFF);
|
||||||
@@ -585,7 +585,7 @@ std::unique_ptr<LogEvent> CreateBatterySaverOffEvent(uint64_t timestampNs) {
|
|||||||
|
|
||||||
std::unique_ptr<LogEvent> CreateScreenBrightnessChangedEvent(uint64_t timestampNs, int level) {
|
std::unique_ptr<LogEvent> CreateScreenBrightnessChangedEvent(uint64_t timestampNs, int level) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::SCREEN_BRIGHTNESS_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::SCREEN_BRIGHTNESS_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, level);
|
AStatsEvent_writeInt32(statsEvent, level);
|
||||||
@@ -603,7 +603,7 @@ std::unique_ptr<LogEvent> CreateScreenBrightnessChangedEvent(uint64_t timestampN
|
|||||||
//std::unique_ptr<LogEvent> CreateScheduledJobStateChangedEvent(
|
//std::unique_ptr<LogEvent> CreateScheduledJobStateChangedEvent(
|
||||||
// const std::vector<AttributionNodeInternal>& attributions, const string& jobName,
|
// const std::vector<AttributionNodeInternal>& attributions, const string& jobName,
|
||||||
// const ScheduledJobStateChanged::State state, uint64_t timestampNs) {
|
// const ScheduledJobStateChanged::State state, uint64_t timestampNs) {
|
||||||
// auto event = std::make_unique<LogEvent>(android::util::SCHEDULED_JOB_STATE_CHANGED, timestampNs);
|
// auto event = std::make_unique<LogEvent>(util::SCHEDULED_JOB_STATE_CHANGED, timestampNs);
|
||||||
// event->write(attributions);
|
// event->write(attributions);
|
||||||
// event->write(jobName);
|
// event->write(jobName);
|
||||||
// event->write(state);
|
// event->write(state);
|
||||||
@@ -632,7 +632,7 @@ std::unique_ptr<LogEvent> CreateWakelockStateChangedEvent(uint64_t timestampNs,
|
|||||||
const string& wakelockName,
|
const string& wakelockName,
|
||||||
const WakelockStateChanged::State state) {
|
const WakelockStateChanged::State state) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::WAKELOCK_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::WAKELOCK_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
vector<const char*> cTags(attributionTags.size());
|
vector<const char*> cTags(attributionTags.size());
|
||||||
@@ -676,7 +676,7 @@ std::unique_ptr<LogEvent> CreateReleaseWakelockEvent(uint64_t timestampNs,
|
|||||||
std::unique_ptr<LogEvent> CreateActivityForegroundStateChangedEvent(
|
std::unique_ptr<LogEvent> CreateActivityForegroundStateChangedEvent(
|
||||||
uint64_t timestampNs, const int uid, const ActivityForegroundStateChanged::State state) {
|
uint64_t timestampNs, const int uid, const ActivityForegroundStateChanged::State state) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::ACTIVITY_FOREGROUND_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, uid);
|
AStatsEvent_writeInt32(statsEvent, uid);
|
||||||
@@ -710,7 +710,7 @@ std::unique_ptr<LogEvent> CreateSyncStateChangedEvent(uint64_t timestampNs,
|
|||||||
const string& name,
|
const string& name,
|
||||||
const SyncStateChanged::State state) {
|
const SyncStateChanged::State state) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::SYNC_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::SYNC_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
vector<const char*> cTags(attributionTags.size());
|
vector<const char*> cTags(attributionTags.size());
|
||||||
@@ -753,7 +753,7 @@ std::unique_ptr<LogEvent> CreateSyncEndEvent(uint64_t timestampNs,
|
|||||||
std::unique_ptr<LogEvent> CreateProcessLifeCycleStateChangedEvent(
|
std::unique_ptr<LogEvent> CreateProcessLifeCycleStateChangedEvent(
|
||||||
uint64_t timestampNs, const int uid, const ProcessLifeCycleStateChanged::State state) {
|
uint64_t timestampNs, const int uid, const ProcessLifeCycleStateChanged::State state) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::PROCESS_LIFE_CYCLE_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, uid);
|
AStatsEvent_writeInt32(statsEvent, uid);
|
||||||
@@ -777,7 +777,7 @@ std::unique_ptr<LogEvent> CreateAppCrashEvent(uint64_t timestampNs, const int ui
|
|||||||
|
|
||||||
std::unique_ptr<LogEvent> CreateAppCrashOccurredEvent(uint64_t timestampNs, const int uid) {
|
std::unique_ptr<LogEvent> CreateAppCrashOccurredEvent(uint64_t timestampNs, const int uid) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::APP_CRASH_OCCURRED);
|
AStatsEvent_setAtomId(statsEvent, util::APP_CRASH_OCCURRED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, uid);
|
AStatsEvent_writeInt32(statsEvent, uid);
|
||||||
@@ -797,7 +797,7 @@ std::unique_ptr<LogEvent> CreateAppCrashOccurredEvent(uint64_t timestampNs, cons
|
|||||||
std::unique_ptr<LogEvent> CreateIsolatedUidChangedEvent(uint64_t timestampNs, int hostUid,
|
std::unique_ptr<LogEvent> CreateIsolatedUidChangedEvent(uint64_t timestampNs, int hostUid,
|
||||||
int isolatedUid, bool is_create) {
|
int isolatedUid, bool is_create) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::ISOLATED_UID_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::ISOLATED_UID_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, hostUid);
|
AStatsEvent_writeInt32(statsEvent, hostUid);
|
||||||
@@ -817,7 +817,7 @@ std::unique_ptr<LogEvent> CreateIsolatedUidChangedEvent(uint64_t timestampNs, in
|
|||||||
std::unique_ptr<LogEvent> CreateUidProcessStateChangedEvent(
|
std::unique_ptr<LogEvent> CreateUidProcessStateChangedEvent(
|
||||||
uint64_t timestampNs, int uid, const android::app::ProcessStateEnum state) {
|
uint64_t timestampNs, int uid, const android::app::ProcessStateEnum state) {
|
||||||
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
AStatsEvent* statsEvent = AStatsEvent_obtain();
|
||||||
AStatsEvent_setAtomId(statsEvent, android::util::UID_PROCESS_STATE_CHANGED);
|
AStatsEvent_setAtomId(statsEvent, util::UID_PROCESS_STATE_CHANGED);
|
||||||
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
|
||||||
|
|
||||||
AStatsEvent_writeInt32(statsEvent, uid);
|
AStatsEvent_writeInt32(statsEvent, uid);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "src/hash.h"
|
#include "src/hash.h"
|
||||||
#include "src/logd/LogEvent.h"
|
#include "src/logd/LogEvent.h"
|
||||||
#include "src/stats_log_util.h"
|
#include "src/stats_log_util.h"
|
||||||
#include "statslog.h"
|
#include "statslog_statsdtest.h"
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
namespace os {
|
namespace os {
|
||||||
@@ -38,8 +38,8 @@ using android::util::ProtoReader;
|
|||||||
using google::protobuf::RepeatedPtrField;
|
using google::protobuf::RepeatedPtrField;
|
||||||
using Status = ::ndk::ScopedAStatus;
|
using Status = ::ndk::ScopedAStatus;
|
||||||
|
|
||||||
const int SCREEN_STATE_ATOM_ID = android::util::SCREEN_STATE_CHANGED;
|
const int SCREEN_STATE_ATOM_ID = util::SCREEN_STATE_CHANGED;
|
||||||
const int UID_PROCESS_STATE_ATOM_ID = android::util::UID_PROCESS_STATE_CHANGED;
|
const int UID_PROCESS_STATE_ATOM_ID = util::UID_PROCESS_STATE_CHANGED;
|
||||||
|
|
||||||
// Converts a ProtoOutputStream to a StatsLogReport proto.
|
// Converts a ProtoOutputStream to a StatsLogReport proto.
|
||||||
StatsLogReport outputStreamToProto(ProtoOutputStream* proto);
|
StatsLogReport outputStreamToProto(ProtoOutputStream* proto);
|
||||||
|
|||||||
Reference in New Issue
Block a user