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

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

Merge "Add tests for mapIsolatedUidToHostUid methods" into rvc-dev

parents 1ed01451 b635b3a2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -454,9 +454,9 @@ message Atom {
        BluetoothActivityInfo bluetooth_activity_info = 10007 [(module) = "framework"];
        ProcessMemoryState process_memory_state = 10013 [(module) = "framework"];
        SystemElapsedRealtime system_elapsed_realtime = 10014 [(module) = "framework"];
        SystemUptime system_uptime = 10015 [(module) = "framework", (module) = "statsdtest"];
        SystemUptime system_uptime = 10015 [(module) = "framework"];
        CpuActiveTime cpu_active_time = 10016 [(module) = "framework", (module) = "statsdtest"];
        CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework", (module) = "statsdtest"];
        CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework"];
        DiskSpace disk_space = 10018 [deprecated=true, (module) = "statsdtest"];
        RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"];
        FullBatteryCapacity full_battery_capacity = 10020 [(module) = "framework"];
+105 −0
Original line number Diff line number Diff line
@@ -1691,6 +1691,111 @@ TEST(StatsLogProcessorTest, TestActivationsPersistAcrossSystemServerRestart) {
                            &buffer);
}

TEST(StatsLogProcessorTest_mapIsolatedUidToHostUid, LogHostUid) {
    int hostUid = 20;
    int isolatedUid = 30;
    uint64_t eventTimeNs = 12355;
    int atomId = 89;
    int field1 = 90;
    int field2 = 28;
    sp<MockUidMap> mockUidMap = makeMockUidMapForOneHost(hostUid, {isolatedUid});
    ConfigKey cfgKey;
    StatsdConfig config = MakeConfig(false);
    sp<StatsLogProcessor> processor =
            CreateStatsLogProcessor(1, 1, config, cfgKey, nullptr, 0, mockUidMap);

    shared_ptr<LogEvent> logEvent = makeUidLogEvent(atomId, eventTimeNs, hostUid, field1, field2);

    processor->OnLogEvent(logEvent.get());

    const vector<FieldValue>* actualFieldValues = &logEvent->getValues();
    EXPECT_EQ(3, actualFieldValues->size());
    EXPECT_EQ(hostUid, actualFieldValues->at(0).mValue.int_value);
    EXPECT_EQ(field1, actualFieldValues->at(1).mValue.int_value);
    EXPECT_EQ(field2, actualFieldValues->at(2).mValue.int_value);
}

TEST(StatsLogProcessorTest_mapIsolatedUidToHostUid, LogIsolatedUid) {
    int hostUid = 20;
    int isolatedUid = 30;
    uint64_t eventTimeNs = 12355;
    int atomId = 89;
    int field1 = 90;
    int field2 = 28;
    sp<MockUidMap> mockUidMap = makeMockUidMapForOneHost(hostUid, {isolatedUid});
    ConfigKey cfgKey;
    StatsdConfig config = MakeConfig(false);
    sp<StatsLogProcessor> processor =
            CreateStatsLogProcessor(1, 1, config, cfgKey, nullptr, 0, mockUidMap);

    shared_ptr<LogEvent> logEvent =
            makeUidLogEvent(atomId, eventTimeNs, isolatedUid, field1, field2);

    processor->OnLogEvent(logEvent.get());

    const vector<FieldValue>* actualFieldValues = &logEvent->getValues();
    EXPECT_EQ(3, actualFieldValues->size());
    EXPECT_EQ(hostUid, actualFieldValues->at(0).mValue.int_value);
    EXPECT_EQ(field1, actualFieldValues->at(1).mValue.int_value);
    EXPECT_EQ(field2, actualFieldValues->at(2).mValue.int_value);
}

TEST(StatsLogProcessorTest_mapIsolatedUidToHostUid, LogHostUidAttributionChain) {
    int hostUid = 20;
    int isolatedUid = 30;
    uint64_t eventTimeNs = 12355;
    int atomId = 89;
    int field1 = 90;
    int field2 = 28;
    sp<MockUidMap> mockUidMap = makeMockUidMapForOneHost(hostUid, {isolatedUid});
    ConfigKey cfgKey;
    StatsdConfig config = MakeConfig(false);
    sp<StatsLogProcessor> processor =
            CreateStatsLogProcessor(1, 1, config, cfgKey, nullptr, 0, mockUidMap);

    shared_ptr<LogEvent> logEvent = makeAttributionLogEvent(atomId, eventTimeNs, {hostUid, 200},
                                                            {"tag1", "tag2"}, field1, field2);

    processor->OnLogEvent(logEvent.get());

    const vector<FieldValue>* actualFieldValues = &logEvent->getValues();
    EXPECT_EQ(6, actualFieldValues->size());
    EXPECT_EQ(hostUid, actualFieldValues->at(0).mValue.int_value);
    EXPECT_EQ("tag1", actualFieldValues->at(1).mValue.str_value);
    EXPECT_EQ(200, actualFieldValues->at(2).mValue.int_value);
    EXPECT_EQ("tag2", actualFieldValues->at(3).mValue.str_value);
    EXPECT_EQ(field1, actualFieldValues->at(4).mValue.int_value);
    EXPECT_EQ(field2, actualFieldValues->at(5).mValue.int_value);
}

TEST(StatsLogProcessorTest_mapIsolatedUidToHostUid, LogIsolatedUidAttributionChain) {
    int hostUid = 20;
    int isolatedUid = 30;
    uint64_t eventTimeNs = 12355;
    int atomId = 89;
    int field1 = 90;
    int field2 = 28;
    sp<MockUidMap> mockUidMap = makeMockUidMapForOneHost(hostUid, {isolatedUid});
    ConfigKey cfgKey;
    StatsdConfig config = MakeConfig(false);
    sp<StatsLogProcessor> processor =
            CreateStatsLogProcessor(1, 1, config, cfgKey, nullptr, 0, mockUidMap);

    shared_ptr<LogEvent> logEvent = makeAttributionLogEvent(atomId, eventTimeNs, {isolatedUid, 200},
                                                            {"tag1", "tag2"}, field1, field2);

    processor->OnLogEvent(logEvent.get());

    const vector<FieldValue>* actualFieldValues = &logEvent->getValues();
    EXPECT_EQ(6, actualFieldValues->size());
    EXPECT_EQ(hostUid, actualFieldValues->at(0).mValue.int_value);
    EXPECT_EQ("tag1", actualFieldValues->at(1).mValue.str_value);
    EXPECT_EQ(200, actualFieldValues->at(2).mValue.int_value);
    EXPECT_EQ("tag2", actualFieldValues->at(3).mValue.str_value);
    EXPECT_EQ(field1, actualFieldValues->at(4).mValue.int_value);
    EXPECT_EQ(field2, actualFieldValues->at(5).mValue.int_value);
}

#else
GTEST_LOG_(INFO) << "This test does nothing.\n";
#endif
+3 −1
Original line number Diff line number Diff line
@@ -13,13 +13,15 @@
// limitations under the License.

#include "src/anomaly/AnomalyTracker.h"
#include "../metrics/metrics_test_helper.h"

#include <gtest/gtest.h>
#include <math.h>
#include <stdio.h>

#include <vector>

#include "tests/statsd_test_util.h"

using namespace testing;
using android::sp;
using std::set;
+325 −161

File changed.

Preview size limit exceeded, changes collapsed.

+0 −6
Original line number Diff line number Diff line
@@ -48,12 +48,6 @@ public:
                 void(const ConfigKey& configKey, wp<PullUidProvider> provider));
};

class MockUidMap : public UidMap {
 public:
  MOCK_CONST_METHOD1(getHostUidOrSelf, int(int uid));
  MOCK_CONST_METHOD1(getAppUid, std::set<int32_t>(const string& package));
};

HashableDimensionKey getMockedDimensionKey(int tagId, int key, std::string value);
MetricDimensionKey getMockedMetricDimensionKey(int tagId, int key, std::string value);

Loading