ADPF Session inspect isActive

Bug: 299186288
Test: make libadpf_test
Change-Id: I0bc3268354433dba76f0c8379045e065c99210df
diff --git a/power-libperfmgr/aidl/SessionTaskMap.cpp b/power-libperfmgr/aidl/SessionTaskMap.cpp
index bb084ec..4cc9918 100644
--- a/power-libperfmgr/aidl/SessionTaskMap.cpp
+++ b/power-libperfmgr/aidl/SessionTaskMap.cpp
@@ -74,22 +74,10 @@
         return;
     }
 
-    /*
-    for (auto sessionId : taskItr->second) {
-        auto sessItr = mSessions.find(sessionId);
-        if (sessItr == mSessions.end()) {
-            continue;
-        }
-
-        if (!sessItr->second.val->isActive) {
-            continue;
-        }
-
-        sessItr->second.val->votes->getUclampRange(&uclampRange, timeNow);
-    }
-    */
-
     for (const auto &sessInTask : taskItr->second) {
+        if (!sessInTask->isActive) {
+            continue;
+        }
         sessInTask->votes->getUclampRange(&uclampRange, timeNow);
     }
     *uclampMin = uclampRange.uclampMin;
diff --git a/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp b/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp
index 32067a5..7f7dab3 100644
--- a/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp
+++ b/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp
@@ -290,6 +290,44 @@
     EXPECT_EQ(0, getVoteMin(m, 20, t0 + 181ns));
 }
 
+TEST(SessionTaskMapTest, TwoSessionsOneInactive) {
+    const auto tNow = std::chrono::steady_clock::now();
+    SessionTaskMap m;
+
+    {
+        SessionValueEntry sv;
+        sv.isActive = true;
+        sv.isAppSession = true;
+        sv.lastUpdatedTime = tNow;
+        sv.votes = std::make_shared<Votes>();
+        sv.votes->add(11, VoteRange::makeMinRange(111, tNow, 400ms));
+        EXPECT_TRUE(m.add(1001, sv, {10, 20, 30}));
+    }
+
+    {
+        SessionValueEntry sv;
+        sv.isActive = true;
+        sv.isAppSession = true;
+        sv.lastUpdatedTime = tNow;
+        sv.votes = std::make_shared<Votes>();
+        sv.votes->add(22, VoteRange::makeMinRange(222, tNow, 400ms));
+        EXPECT_TRUE(m.add(2001, sv, {10, 20, 30}));
+    }
+
+    UclampRange uclampRange;
+    m.getTaskVoteRange(10, tNow + 10ns, &uclampRange.uclampMin, &uclampRange.uclampMax);
+    EXPECT_EQ(222, uclampRange.uclampMin);
+
+    auto sessItr = m.findSession(2001);
+    EXPECT_NE(nullptr, sessItr);
+    sessItr->isActive = false;
+
+    uclampRange.uclampMin = 0;
+    uclampRange.uclampMax = 1024;
+    m.getTaskVoteRange(10, tNow + 10ns, &uclampRange.uclampMin, &uclampRange.uclampMax);
+    EXPECT_EQ(111, uclampRange.uclampMin);
+}
+
 }  // namespace pixel
 }  // namespace impl
 }  // namespace power