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

Commit fc32848f authored by Chenjie Yu's avatar Chenjie Yu
Browse files

fix GaugeMetric unit test

Test: unit test
Change-Id: I174e784eff854ff93f269536bbe9eb923b1aa50a
parent b6661f36
Loading
Loading
Loading
Loading
+18 −49
Original line number Diff line number Diff line
@@ -605,15 +605,6 @@ TEST(GaugeMetricProducerTest, TestPullOnTrigger) {

    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
    EXPECT_CALL(*pullerManager, Pull(tagId, _, _))
            .WillOnce(Invoke([](int tagId, int64_t timeNs,
                                vector<std::shared_ptr<LogEvent>>* data) {
                data->clear();
                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 3);
                event->write(3);
                event->init();
                data->push_back(event);
                return true;
            }))
            .WillOnce(Invoke([](int tagId, int64_t timeNs,
                                vector<std::shared_ptr<LogEvent>>* data) {
                data->clear();
@@ -631,7 +622,8 @@ TEST(GaugeMetricProducerTest, TestPullOnTrigger) {
                event->init();
                data->push_back(event);
                return true;
            }));
            }))
            .WillOnce(Return(true));

    int triggerId = 5;
    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
@@ -640,43 +632,28 @@ TEST(GaugeMetricProducerTest, TestPullOnTrigger) {
                                      pullerManager);

    vector<shared_ptr<LogEvent>> allData;
    allData.clear();

    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
    EXPECT_EQ(0UL, gaugeProducer.mCurrentSlicedBucket->size());
    LogEvent trigger(triggerId, bucketStartTimeNs + 10);
    trigger.init();
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
    trigger.setElapsedTimestampNs(bucketStartTimeNs + 20);
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
    EXPECT_EQ(3UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());

    allData.clear();
    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
    event->write(10);
    event->init();
    allData.push_back(event);
    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
    trigger.setElapsedTimestampNs(bucket2StartTimeNs + 1);
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);

    gaugeProducer.onDataPulled(allData);
    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
    auto it = gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->begin();
    EXPECT_EQ(INT, it->mValue.getType());
    EXPECT_EQ(10, it->mValue.int_value);
    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
    EXPECT_EQ(3UL, gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.size());
    EXPECT_EQ(3, gaugeProducer.mPastBuckets.begin()
                         ->second.back()
                         .mGaugeAtoms[0]
                         .mFields->begin()
                         ->mValue.int_value);
    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.size());
    EXPECT_EQ(4, gaugeProducer.mPastBuckets.begin()
                         ->second.back()
                         .mGaugeAtoms[1]
                         .mGaugeAtoms[0]
                         .mFields->begin()
                         ->mValue.int_value);
    EXPECT_EQ(5, gaugeProducer.mPastBuckets.begin()
                         ->second.back()
                         .mGaugeAtoms[2]
                         .mGaugeAtoms[1]
                         .mFields->begin()
                         ->mValue.int_value);
}
@@ -731,7 +708,8 @@ TEST(GaugeMetricProducerTest, TestRemoveDimensionInOutput) {
                event->init();
                data->push_back(event);
                return true;
            }));
            }))
            .WillOnce(Return(true));

    int triggerId = 5;
    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
@@ -740,30 +718,21 @@ TEST(GaugeMetricProducerTest, TestRemoveDimensionInOutput) {
                                      pullerManager);

    vector<shared_ptr<LogEvent>> allData;
    allData.clear();

    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
    LogEvent trigger(triggerId, bucketStartTimeNs + 10);
    LogEvent trigger(triggerId, bucketStartTimeNs + 3);
    trigger.init();
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
    trigger.setElapsedTimestampNs(bucketStartTimeNs + 10);
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->size());
    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
    trigger.setElapsedTimestampNs(bucketStartTimeNs + 20);
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
    trigger.setElapsedTimestampNs(bucket2StartTimeNs + 1);
    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);

    allData.clear();
    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
    event->write(4);
    event->write(11);
    event->init();
    allData.push_back(event);

    gaugeProducer.onDataPulled(allData);
    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
    auto it = gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->begin();
    EXPECT_EQ(INT, it->mValue.getType());
    EXPECT_EQ(11, it->mValue.int_value);
    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.size());
    auto bucketIt = gaugeProducer.mPastBuckets.begin();
    EXPECT_EQ(1UL, bucketIt->second.back().mGaugeAtoms.size());