From bbfcb40cd3895cf1ceb919173c7e8005d39569ab Mon Sep 17 00:00:00 2001 From: wuying39 <921169248@qq.com> Date: Wed, 23 Jul 2025 17:07:16 +0800 Subject: [PATCH] revise unit test funcs add improve the sample code --- docs/Details_Usage.md | 14 ++- ...{write_on_numa2.cpp => write_on_numa1.cpp} | 16 ++- test/test_perf/test_api.cpp | 14 ++- test/test_perf/test_count.cpp | 102 +++++++++++++++--- test/test_perf/test_group.cpp | 31 +----- test/test_perf/test_metric.cpp | 50 ++++++--- test/test_perf/test_pmu.cpp | 8 +- test/test_perf/test_spe.cpp | 10 +- 8 files changed, 170 insertions(+), 75 deletions(-) rename test/test_perf/case/{write_on_numa2.cpp => write_on_numa1.cpp} (32%) diff --git a/docs/Details_Usage.md b/docs/Details_Usage.md index 850a76c..66bb068 100644 --- a/docs/Details_Usage.md +++ b/docs/Details_Usage.md @@ -405,6 +405,11 @@ libkperf支持uncore事件的采集,只有Counting模式支持uncore事件的 可以像这样设置PmuAttr: ```c++ // c++代码示例 +#include +#include "symbol.h" +#include "pmu.h" +#include "pcerrc.h" + char *evtList[1]; evtList[0] = "hisi_sccl1_ddrc0/flux_rd/"; PmuAttr attr = {0}; @@ -669,6 +674,13 @@ perf stat -e "{inst_retired,inst_spec,cycles}","{inst_retired,cycles}" ``` 用libkperf可以这样实现: ```c++ +#include +#include +#include +#include "symbol.h" +#include "pmu.h" +#include "pcerrc.h" + // 指定5个事件,因为inst_retired和cycles会重复出现在多个指标中,所以需要重复指定事件。 char *evtList[5] = {"inst_retired", "inst_spec", "cycles", "inst_retired", "cycles"}; // 指定事件分组编号,前三个事件为一组,后两个事件为一组。 @@ -684,7 +696,7 @@ PmuDisable(pd); PmuData *data = nullptr; int len = PmuRead(pd, &data); // 根据分组来聚合数据 -map> evtMap; +std::map> evtMap; for (int i=0;i #include #include @@ -11,7 +25,7 @@ int main() { int len = 1024*256; for (int j=0;j<64;++j) { - int *data = (int *)numa_alloc_onnode(len * sizeof(int), 2); + int *data = (int *)numa_alloc_onnode(len * sizeof(int), 1); for (int i=0;i again. @@ -620,6 +620,10 @@ TEST_F(TestAPI, TestOperationNotSupported) TEST_F(TestAPI, TestBrBe) { + CHIP_TYPE chipType = GetCpuType(); + if (chipType != HIPF) { + GTEST_SKIP() << "Unsupported chip"; + } auto attr = GetPmuAttribute(); attr.symbolMode = NO_SYMBOL_RESOLVE; auto pid = RunTestApp("bad_branch_pred"); diff --git a/test/test_perf/test_count.cpp b/test/test_perf/test_count.cpp index 8d8dcf3..bbfa70a 100644 --- a/test/test_perf/test_count.cpp +++ b/test/test_perf/test_count.cpp @@ -13,6 +13,8 @@ * Description: Unit test for counting. ******************************************************************************/ #include "test_common.h" +#include "common.h" +#include "cpu_map.h" #include using namespace std; @@ -111,15 +113,25 @@ TEST_F(TestCount, OpenDDRC) { // Open flux_rd and flux_wr of all DDRC device. vector eventNames; - vector scclIdx = {1, 3, 5, 7}; - vector ddrcIdx = {0, 1, 2, 3}; + CHIP_TYPE chipType = GetCpuType(); + vector scclIdx; + vector ddrcIdx; + if (chipType == HIPA) { + scclIdx = {1, 3, 5, 7}; + ddrcIdx = {"0", "1", "2", "3"}; + } else if (chipType == HIPB) { + scclIdx = {1, 3, 9, 11}; + ddrcIdx = {"0_0", "0_1", "2_0", "2_1", "3_0", "3_1", "5_0", "5_1"}; + } else { + GTEST_SKIP() << "Unsupported chip"; + } for (auto sccl : scclIdx) { for (auto ddrc : ddrcIdx) { const unsigned maxEvtLen =1024; char *fluxRdEvt = new char[maxEvtLen]; - snprintf(fluxRdEvt, maxEvtLen, "hisi_sccl%d_ddrc%d/flux_rd/",sccl,ddrc); + snprintf(fluxRdEvt, maxEvtLen, "hisi_sccl%d_ddrc%s/flux_rd/",sccl,ddrc.c_str()); char *fluxWrEvt = new char[maxEvtLen]; - snprintf(fluxWrEvt, maxEvtLen, "hisi_sccl%d_ddrc%d/flux_wr/",sccl,ddrc); + snprintf(fluxWrEvt, maxEvtLen, "hisi_sccl%d_ddrc%s/flux_wr/",sccl,ddrc.c_str()); eventNames.push_back(fluxRdEvt); eventNames.push_back(fluxWrEvt); } @@ -138,15 +150,24 @@ TEST_F(TestCount, OpenDDRC) TEST_F(TestCount, NumaFluxWr) { // Test data of uncore event ddrc/flux_wr/. - - // Run application which will write memory on numa node 2. - appPid = RunTestApp("write_on_numa2"); - - // Prepare ddr events. - char *evtList[4] = {"hisi_sccl5_ddrc0/flux_wr/", "hisi_sccl5_ddrc1/flux_wr/", "hisi_sccl5_ddrc2/flux_wr/", "hisi_sccl5_ddrc3/flux_wr/"}; + // Run application which will write memory on numa node 1. + appPid = RunTestApp("write_on_numa1"); + int ddrcNum; + CHIP_TYPE chipType = GetCpuType(); PmuAttr attr = {0}; - attr.evtList = evtList; - attr.numEvt = 4; + char *evtListHIPA[4] = {"hisi_sccl3_ddrc0/flux_wr/", "hisi_sccl3_ddrc1/flux_wr/", "hisi_sccl3_ddrc2/flux_wr/", "hisi_sccl3_ddrc3/flux_wr/"}; + char *evtListHIPB[8] = {"hisi_sccl1_ddrc0_0/flux_wr/", "hisi_sccl1_ddrc0_1/flux_wr/", "hisi_sccl1_ddrc2_0/flux_wr/", "hisi_sccl1_ddrc2_1/flux_wr/", + "hisi_sccl1_ddrc3_0/flux_wr/", "hisi_sccl1_ddrc3_1/flux_wr/", "hisi_sccl1_ddrc5_0/flux_wr/", "hisi_sccl1_ddrc5_1/flux_wr/"}; + if (chipType == HIPA) { + ddrcNum = 4; + attr.evtList = evtListHIPA; + } else if (chipType == HIPB) { + ddrcNum = 8; + attr.evtList = evtListHIPB; + } else { + GTEST_SKIP() << "Unsupported chip"; + } + attr.numEvt = ddrcNum; // Collect pmu data. pd = PmuOpen(COUNTING, &attr); @@ -155,7 +176,7 @@ TEST_F(TestCount, NumaFluxWr) int ret = PmuCollect(pd, 8000, collectInterval); ASSERT_EQ(ret, SUCCESS); int len = PmuRead(pd, &data); - ASSERT_EQ(len, 4); + ASSERT_EQ(len, ddrcNum); // Check flux event count which should be greater than total memory bytes divided by 256 bits. size_t cntSum = 0; @@ -165,10 +186,13 @@ TEST_F(TestCount, NumaFluxWr) ASSERT_GE(cntSum, (1024 * 256 * 4 * 64) / 32); } -TEST_F(TestCount, AggregateUncoreEvents) +TEST_F(TestCount, AggregateUncoreEventsHIPA) { // Test aggregate of uncore events. - + CHIP_TYPE chipType = GetCpuType(); + if (chipType != HIPA) { + GTEST_SKIP() << "Unsupported chip"; + } char* aggreUncore[1] = {"hisi_sccl1_ddrc/flux_rd/"}; char* uncoreList[4] = {"hisi_sccl1_ddrc0/flux_rd/", "hisi_sccl1_ddrc1/flux_rd/", "hisi_sccl1_ddrc2/flux_rd/", "hisi_sccl1_ddrc3/flux_rd/"}; PmuAttr attr = {0}; @@ -199,6 +223,44 @@ TEST_F(TestCount, AggregateUncoreEvents) ASSERT_NEAR(aggreCnt, uncoreSum, uncoreSum * 0.5); } +TEST_F(TestCount, AggregateUncoreEventsHIPB) +{ + // Test aggregate of uncore events. + CHIP_TYPE chipType = GetCpuType(); + PmuAttr attr = {0}; + if (chipType != HIPB) { + GTEST_SKIP() << "Unsupported chip"; + } + char* aggreUncore[1] = {"hisi_sccl1_ddrc/flux_rd/"}; + char* uncoreList[8] = {"hisi_sccl1_ddrc0_0/flux_rd/", "hisi_sccl1_ddrc0_1/flux_rd/", "hisi_sccl1_ddrc2_0/flux_rd/", "hisi_sccl1_ddrc2_1/flux_rd/", + "hisi_sccl1_ddrc3_0/flux_rd/", "hisi_sccl1_ddrc3_1/flux_rd/", "hisi_sccl1_ddrc5_0/flux_rd/", "hisi_sccl1_ddrc5_1/flux_rd/"}; + attr.evtList = aggreUncore; + attr.numEvt = 1; + int pd1 = PmuOpen(COUNTING, &attr); + attr.evtList = uncoreList; + attr.numEvt = 8; + int pd2 = PmuOpen(COUNTING, &attr); + PmuEnable(pd1); + PmuEnable(pd2); + sleep(2); + PmuDisable(pd1); + PmuDisable(pd2); + + PmuData *data1 = nullptr; + int len1 = PmuRead(pd1, &data1); + ASSERT_EQ(len1, 1); + PmuData *data2 = nullptr; + int len2 = PmuRead(pd2, &data2); + ASSERT_EQ(len2, 8); + + uint64_t aggreCnt = data1[0].count; + unsigned long uncoreSum = 0; + for (int i = 0; i < len2; ++i) { + uncoreSum += data2[i].count; + } + ASSERT_NEAR(aggreCnt, uncoreSum, uncoreSum * 0.5); +} + TEST_F(TestCount, PwritevFile) { // Test data of tracepoint syscalls:sys_enter_pwritev. @@ -262,6 +324,16 @@ TEST_F(TestCount, UncoreRawEventSmmuConfigError) TEST_F(TestCount, UncoreRawEventSmmu) { // Test whether raw uncore event. + vector entries = ListDirectoryEntries("/sys/devices/"); + bool findSmmu = false; + for (const auto& entry : entries) { + if (entry == "") { + findSmmu = true; + } + } + if (!findSmmu) { + GTEST_SKIP() << "No such smmu device: smmuv3_pmcg_100020"; + } char* evtList[1] = {"smmuv3_pmcg_100020/cycles,filter_enable=1,filter_stream_id=0x7d/"}; PmuAttr attr = {0}; attr.evtList = evtList; diff --git a/test/test_perf/test_group.cpp b/test/test_perf/test_group.cpp index 738876b..f40e682 100644 --- a/test/test_perf/test_group.cpp +++ b/test/test_perf/test_group.cpp @@ -170,7 +170,7 @@ TEST_F(TestGroup, TestCountingEventGroupHasAggregateUncore) attr.numEvt = numEvt; char *evtList[numEvt] = {"r3", "r1", "r14", "r4", "r12", "r5", "r25", "r2", "r26", "r2d", "r17", "r11", - "hisi_sccl1_ddrc/flux_rd/", "r22"}; + "r22", "hisi_sccl1_ddrc/flux_rd/"}; attr.evtList = evtList; struct EvtAttr groupId[numEvt] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13}; @@ -209,29 +209,6 @@ TEST_F(TestGroup, TestCountingEventGroupHasAggregateUncoreEnd) ASSERT_TRUE(CheckDataEventList(data, len, evtList)); } -TEST_F(TestGroup, TestCountingEventGroupHasAggregateUncoreEnd2) -{ - auto attr = GetPmuAttribute(); - unsigned numEvt = 15; - attr.numEvt = numEvt; - char *evtList[numEvt] = {"r3", "r1", "r14", "r4", "r12", "r5", "r25", "r2", - "r26", "r2d", "r17", "r11", "r22", - "hisi_sccl1_ddrc/flux_rd/", "hisi_sccl1_hha/rx_wbi/"}; - attr.evtList = evtList; - - struct EvtAttr groupId[numEvt] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 13}; - attr.evtAttr = groupId; - int pd = PmuOpen(COUNTING, &attr); - ASSERT_TRUE(pd != -1); - int ret = PmuCollect(pd, 100, collectInterval); - ASSERT_EQ(ret, SUCCESS); - - int len = PmuRead(pd, &data); - EXPECT_TRUE(data != nullptr); - ASSERT_EQ(len, numEvt); - ASSERT_TRUE(CheckDataEventList(data, len, evtList)); -} - TEST_F(TestGroup, TestCountingEventGroupAllAggregateUncore) { auto attr = GetPmuAttribute(); @@ -255,7 +232,7 @@ TEST_F(TestGroup, TestCountingEventGroupHasUncore) attr.numEvt = numEvt; char *evtList[numEvt] = {"r3", "r1", "r14", "r4", "r12", "r5", "r25", "r2", "r26", "r2d", "r17", "r11", - "hisi_sccl1_ddrc2/flux_rd/", "hisi_sccl1_ddrc0/flux_wr/", "r22", "r24"}; + "r22", "r24", "hisi_sccl1_ddrc/flux_rd/", "hisi_sccl1_ddrc/flux_wr/"}; attr.evtList = evtList; struct EvtAttr groupId[numEvt] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 13}; @@ -288,7 +265,7 @@ TEST_F(TestGroup, TestSamplingNoEventGroup) int pd = PmuOpen(SAMPLING, &attr); ASSERT_TRUE(pd!= -1); - int ret = PmuCollect(pd, 100, collectInterval); + int ret = PmuCollect(pd, 1000, collectInterval); ASSERT_EQ(ret, SUCCESS); int len = PmuRead(pd, &data); @@ -311,7 +288,7 @@ TEST_F(TestGroup, TestSamplingEventGroup) int pd = PmuOpen(SAMPLING, &attr); ASSERT_TRUE(pd != -1); - int ret = PmuCollect(pd, 100, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); ASSERT_EQ(ret, SUCCESS); int len = PmuRead(pd, &data); diff --git a/test/test_perf/test_metric.cpp b/test/test_perf/test_metric.cpp index ff2dfa9..d3a1cc3 100644 --- a/test/test_perf/test_metric.cpp +++ b/test/test_perf/test_metric.cpp @@ -13,6 +13,7 @@ * Description: Unit test for metric. ******************************************************************************/ #include "test_common.h" +#include "cpu_map.h" #include using namespace std; @@ -37,7 +38,7 @@ TEST_F(TestMetric, GetInvalidBdfList) enum PmuBdfType bdfType = (enum PmuBdfType)5; unsigned bdfLen = 0; const char** bdfList = PmuDeviceBdfList(bdfType, &bdfLen); - ASSERT_EQ(Perrorno(), SUCCESS); + ASSERT_EQ(Perrorno(), 1064); ASSERT_EQ(bdfList, nullptr); } @@ -46,8 +47,10 @@ TEST_F(TestMetric, GetPcieBdfList) enum PmuBdfType bdfType = PMU_BDF_TYPE_PCIE; unsigned bdfLen = 0; const char** bdfList = PmuDeviceBdfList(bdfType, &bdfLen); + if (bdfList == nullptr) { + GTEST_SKIP() << "No pcie device"; + } ASSERT_EQ(Perrorno(), SUCCESS); - ASSERT_NE(bdfList, nullptr); } TEST_F(TestMetric, GetSmmuBdfList) @@ -55,8 +58,10 @@ TEST_F(TestMetric, GetSmmuBdfList) enum PmuBdfType bdfType = PMU_BDF_TYPE_SMMU; unsigned bdfLen = 0; const char** bdfList = PmuDeviceBdfList(bdfType, &bdfLen); + if (bdfList == nullptr) { + GTEST_SKIP() << "No smmu device"; + } ASSERT_EQ(Perrorno(), SUCCESS); - ASSERT_NE(bdfList, nullptr); } TEST_F(TestMetric, GetCpuFreq) @@ -81,13 +86,13 @@ TEST_F(TestMetric, GetClusterIdListOverSize) unsigned clusterId = 33; unsigned* coreList = nullptr; int len = PmuGetClusterCore(clusterId, &coreList); - ASSERT_EQ(Perrorno(), SUCCESS); + ASSERT_EQ(Perrorno(), 1063); ASSERT_EQ(len, -1); } TEST_F(TestMetric, GetNumaIdList) { - unsigned numaId = 2; + unsigned numaId = 1; unsigned* coreList = nullptr; int len = PmuGetNumaCore(numaId, &coreList); ASSERT_EQ(Perrorno(), SUCCESS); @@ -121,6 +126,10 @@ TEST_F(TestMetric, CollectDDRBandwidth) TEST_F(TestMetric, CollectL3Latency) { + CHIP_TYPE chipType = GetCpuType(); + if (chipType != HIPB) { + GTEST_SKIP() << "Unsupported chip"; + } PmuDeviceAttr devAttr = {}; devAttr.metric = PMU_L3_LAT; int pd = PmuDeviceOpen(&devAttr, 1); @@ -195,13 +204,12 @@ TEST_F(TestMetric, CollectL3TrafficAndL3REF) PmuClose(pd); } -TEST_F(TestMetric, CollectL3LatencyAndL3Miss) +TEST_F(TestMetric, CollectL3Miss) { - PmuDeviceAttr devAttr[2] = {}; - devAttr[0].metric = PMU_L3_LAT; - devAttr[1].metric = PMU_L3_MISS; + PmuDeviceAttr devAttr[1] = {}; + devAttr[0].metric = PMU_L3_MISS; - int pd = PmuDeviceOpen(devAttr, 2); + int pd = PmuDeviceOpen(devAttr, 1); ASSERT_NE(pd, -1); PmuEnable(pd); sleep(1); @@ -211,15 +219,13 @@ TEST_F(TestMetric, CollectL3LatencyAndL3Miss) ASSERT_NE(oriLen, -1); PmuDeviceData *devData = nullptr; - auto len = PmuGetDevMetric(oriData, oriLen, devAttr, 2, &devData); + auto len = PmuGetDevMetric(oriData, oriLen, devAttr, 1, &devData); unsigned clusterCount = GetClusterCount(); - unsigned dataLen = GetCpuNums() + clusterCount; + unsigned dataLen = GetCpuNums(); ASSERT_EQ(len, dataLen); ASSERT_NE(devData[0].count, 0); - ASSERT_EQ(devData[0].metric, PMU_L3_LAT); - ASSERT_EQ(devData[0].mode, PMU_METRIC_CLUSTER); - ASSERT_EQ(devData[clusterCount].metric, PMU_L3_MISS); - ASSERT_EQ(devData[clusterCount].mode, PMU_METRIC_CORE); + ASSERT_EQ(devData[0].metric, PMU_L3_MISS); + ASSERT_EQ(devData[0].mode, PMU_METRIC_CORE); DevDataFree(devData); PmuDataFree(oriData); PmuClose(pd); @@ -227,6 +233,10 @@ TEST_F(TestMetric, CollectL3LatencyAndL3Miss) TEST_F(TestMetric, GetMetricPcieBandwidth) { + CHIP_TYPE chipType = GetCpuType(); + if (chipType != HIPB) { + GTEST_SKIP() << "Unsupported chip"; + } const char** bdfList = nullptr; unsigned bdfLen = 0; bdfList = PmuDeviceBdfList(PMU_BDF_TYPE_PCIE, &bdfLen); @@ -264,7 +274,9 @@ TEST_F(TestMetric, GetMetricSmmuTransaction) const char** bdfList = nullptr; unsigned bdfLen = 0; bdfList = PmuDeviceBdfList(PMU_BDF_TYPE_SMMU, &bdfLen); - ASSERT_NE(bdfList, nullptr); + if (bdfList == nullptr) { + GTEST_SKIP() << "No smmu device"; + } PmuDeviceAttr devAttr[bdfLen] = {}; for (int i = 0; i < bdfLen; ++i) { devAttr[i].metric = PMU_SMMU_TRAN; @@ -324,6 +336,10 @@ TEST_F(TestMetric, GetMetricHHACross) TEST_F(TestMetric, GetMetricPcieLatency) { + CHIP_TYPE chipType = GetCpuType(); + if (chipType != HIPB) { + GTEST_SKIP() << "Unsupported chip"; + } const char** bdfList = nullptr; unsigned bdfLen = 0; bdfList = PmuDeviceBdfList(PMU_BDF_TYPE_PCIE, &bdfLen); diff --git a/test/test_perf/test_pmu.cpp b/test/test_perf/test_pmu.cpp index e65a1ed..20d6d6c 100644 --- a/test/test_perf/test_pmu.cpp +++ b/test/test_perf/test_pmu.cpp @@ -80,7 +80,7 @@ TEST_F(TestPMU, PmuSystemCollectTwoThreads) usleep(1000); // Tell process to create thread. kill(appPid, SIGCONT); - int ret = PmuCollect(pd, 100, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllTids(data, len, appPid)); @@ -97,7 +97,7 @@ TEST_F(TestPMU, PmuProcCollectTwoThreads) usleep(1000); // Tell process to create thread. DelayContinue(appPid, 100); - int ret = PmuCollect(pd, 1000, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllTids(data, len, appPid)); @@ -140,7 +140,7 @@ TEST_F(TestPMU, PmuSystemCollectSubProc) usleep(1000); // Tell process to create thread. kill(appPid, SIGCONT); - int ret = PmuCollect(pd, 100, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllChildren(data, len, appPid)); @@ -194,7 +194,7 @@ TEST_F(TestPMU, TestSampling100000ThreadCase) attr.numCpu = 1; auto pd = PmuOpen(SAMPLING, &attr); PmuEnable(pd); - sleep(1); + sleep(3); PmuDisable(pd); int len = PmuRead(pd, &data); ASSERT_GT(len, 0); diff --git a/test/test_perf/test_spe.cpp b/test/test_perf/test_spe.cpp index 905dd60..d42cffa 100644 --- a/test/test_perf/test_spe.cpp +++ b/test/test_perf/test_spe.cpp @@ -81,7 +81,7 @@ TEST_F(TestSPE, SpeSystemCollectTwoThreads) usleep(1000); // Tell process to create thread. DelayContinue(appPid, 100); - int ret = PmuCollect(pd, 500, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllTids(data, len, appPid)); @@ -98,7 +98,7 @@ TEST_F(TestSPE, SpeProcCollectTwoThreads) usleep(1000); // Tell process to create thread. DelayContinue(appPid, 100); - int ret = PmuCollect(pd, 1000, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllTids(data, len, appPid)); @@ -141,7 +141,7 @@ TEST_F(TestSPE, SpeSystemCollectSubProc) usleep(1000); // Tell process to create thread. kill(appPid, SIGCONT); - int ret = PmuCollect(pd, 100, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllChildren(data, len, appPid)); @@ -157,7 +157,7 @@ TEST_F(TestSPE, SpeProcCollectSubProc) pd = PmuOpen(SPE_SAMPLING, &attr); // Tell process to create thread. DelayContinue(appPid, 100); - int ret = PmuCollect(pd, 1000, collectInterval); + int ret = PmuCollect(pd, 3000, collectInterval); int len = PmuRead(pd, &data); ASSERT_TRUE(data != nullptr); ASSERT_TRUE(FoundAllChildren(data, len, appPid)); @@ -174,7 +174,7 @@ TEST_F(TestSPE, SpeProcCollect100000threadCase) attr.numCpu = 1; pd = PmuOpen(SPE_SAMPLING, &attr); PmuEnable(pd); - sleep(1); + sleep(3); PmuDisable(pd); int len = PmuRead(pd, &data); ASSERT_GT(len, 0); -- Gitee