Revert "Sort and group network stats collected from eBPF."
This reverts commit 7b03736655caacdfad68f3e95a63464ce6bab972.
Reason for revert: This CL caused serious bug in android build. See b/119193941
Change-Id: I99a3d01bfa594592465ca43aa74bb31cb41f495e
diff --git a/libnetdbpf/BpfNetworkStatsTest.cpp b/libnetdbpf/BpfNetworkStatsTest.cpp
index 432d9fc..64dc7d4 100644
--- a/libnetdbpf/BpfNetworkStatsTest.cpp
+++ b/libnetdbpf/BpfNetworkStatsTest.cpp
@@ -431,108 +431,14 @@
ASSERT_EQ(0,
parseBpfNetworkStatsDevInternal(&lines, mFakeIfaceStatsMap, mFakeIfaceIndexNameMap));
ASSERT_EQ((unsigned long)4, lines.size());
-
+ std::sort(lines.begin(), lines.end(), [](const auto& line1, const auto& line2)-> bool {
+ return strcmp(line1.iface, line2.iface) < 0;
+ });
expectStatsLineEqual(value1, IFACE_NAME1, UID_ALL, SET_ALL, TAG_NONE, lines[0]);
expectStatsLineEqual(value1, IFACE_NAME3, UID_ALL, SET_ALL, TAG_NONE, lines[1]);
expectStatsLineEqual(value2, IFACE_NAME2, UID_ALL, SET_ALL, TAG_NONE, lines[2]);
ASSERT_EQ(0, strcmp(TRUNCATED_IFACE_NAME, lines[3].iface));
expectStatsLineEqual(value2, TRUNCATED_IFACE_NAME, UID_ALL, SET_ALL, TAG_NONE, lines[3]);
}
-
-TEST_F(BpfNetworkStatsHelperTest, TestGetStatsSortedAndGrouped) {
- SKIP_IF_BPF_NOT_SUPPORTED;
-
- // Create iface indexes with duplicate iface name.
- updateIfaceMap(IFACE_NAME1, IFACE_INDEX1);
- updateIfaceMap(IFACE_NAME2, IFACE_INDEX2);
- updateIfaceMap(IFACE_NAME1, IFACE_INDEX3); // Duplicate!
-
- StatsValue value1 = {
- .rxBytes = TEST_BYTES0,
- .rxPackets = TEST_PACKET0,
- .txBytes = TEST_BYTES1,
- .txPackets = TEST_PACKET1,
- };
- StatsValue value2 = {
- .rxBytes = TEST_BYTES1,
- .rxPackets = TEST_PACKET1,
- .txBytes = TEST_BYTES0,
- .txPackets = TEST_PACKET0,
- };
- StatsValue value3 = {
- .rxBytes = TEST_BYTES0 * 2,
- .rxPackets = TEST_PACKET0 * 2,
- .txBytes = TEST_BYTES1 * 2,
- .txPackets = TEST_PACKET1 * 2,
- };
-
- std::vector<stats_line> lines;
- std::vector<std::string> ifaces;
-
- // Test empty stats.
- ASSERT_EQ(0, parseBpfNetworkStatsDetailInternal(&lines, ifaces, TAG_ALL, UID_ALL,
- mFakeTagStatsMap, mFakeIfaceIndexNameMap));
- ASSERT_EQ((size_t) 0, lines.size());
- lines.clear();
-
- // Test 1 line stats.
- populateFakeStats(TEST_UID1, TEST_TAG, IFACE_INDEX1, TEST_COUNTERSET0, value1,
- mFakeTagStatsMap);
- ASSERT_EQ(0, parseBpfNetworkStatsDetailInternal(&lines, ifaces, TAG_ALL, UID_ALL,
- mFakeTagStatsMap, mFakeIfaceIndexNameMap));
- ASSERT_EQ((size_t) 1, lines.size());
- expectStatsLineEqual(value1, IFACE_NAME1, TEST_UID1, TEST_COUNTERSET0, TEST_TAG, lines[0]);
- lines.clear();
-
- // These items should not be grouped.
- populateFakeStats(TEST_UID1, TEST_TAG, IFACE_INDEX2, TEST_COUNTERSET0, value2,
- mFakeTagStatsMap);
- populateFakeStats(TEST_UID1, TEST_TAG, IFACE_INDEX3, TEST_COUNTERSET1, value2,
- mFakeTagStatsMap);
- populateFakeStats(TEST_UID1, TEST_TAG + 1, IFACE_INDEX1, TEST_COUNTERSET0, value2,
- mFakeTagStatsMap);
- populateFakeStats(TEST_UID2, TEST_TAG, IFACE_INDEX1, TEST_COUNTERSET0, value1,
- mFakeTagStatsMap);
- ASSERT_EQ(0, parseBpfNetworkStatsDetailInternal(&lines, ifaces, TAG_ALL, UID_ALL,
- mFakeTagStatsMap, mFakeIfaceIndexNameMap));
- ASSERT_EQ((size_t) 5, lines.size());
- lines.clear();
-
- // These items should be grouped.
- populateFakeStats(TEST_UID1, TEST_TAG, IFACE_INDEX3, TEST_COUNTERSET0, value1,
- mFakeTagStatsMap);
- populateFakeStats(TEST_UID2, TEST_TAG, IFACE_INDEX3, TEST_COUNTERSET0, value1,
- mFakeTagStatsMap);
-
- ASSERT_EQ(0, parseBpfNetworkStatsDetailInternal(&lines, ifaces, TAG_ALL, UID_ALL,
- mFakeTagStatsMap, mFakeIfaceIndexNameMap));
- ASSERT_EQ((size_t) 5, lines.size());
-
- // Verify Sorted & Grouped.
- expectStatsLineEqual(value3, IFACE_NAME1, TEST_UID1, TEST_COUNTERSET0, TEST_TAG, lines[0]);
- expectStatsLineEqual(value2, IFACE_NAME1, TEST_UID1, TEST_COUNTERSET1, TEST_TAG, lines[1]);
- expectStatsLineEqual(value2, IFACE_NAME1, TEST_UID1, TEST_COUNTERSET0, TEST_TAG + 1, lines[2]);
- expectStatsLineEqual(value3, IFACE_NAME1, TEST_UID2, TEST_COUNTERSET0, TEST_TAG, lines[3]);
- expectStatsLineEqual(value2, IFACE_NAME2, TEST_UID1, TEST_COUNTERSET0, TEST_TAG, lines[4]);
- lines.clear();
-
- // Perform test on IfaceStats.
- uint32_t ifaceStatsKey = IFACE_INDEX2;
- EXPECT_TRUE(isOk(mFakeIfaceStatsMap.writeValue(ifaceStatsKey, value2, BPF_ANY)));
- ifaceStatsKey = IFACE_INDEX1;
- EXPECT_TRUE(isOk(mFakeIfaceStatsMap.writeValue(ifaceStatsKey, value1, BPF_ANY)));
-
- // This should be grouped.
- ifaceStatsKey = IFACE_INDEX3;
- EXPECT_TRUE(isOk(mFakeIfaceStatsMap.writeValue(ifaceStatsKey, value1, BPF_ANY)));
-
- ASSERT_EQ(0,
- parseBpfNetworkStatsDevInternal(&lines, mFakeIfaceStatsMap, mFakeIfaceIndexNameMap));
- ASSERT_EQ((size_t) 2, lines.size());
-
- expectStatsLineEqual(value3, IFACE_NAME1, UID_ALL, SET_ALL, TAG_NONE, lines[0]);
- expectStatsLineEqual(value2, IFACE_NAME2, UID_ALL, SET_ALL, TAG_NONE, lines[1]);
- lines.clear();
-}
} // namespace bpf
} // namespace android