diff --git a/include/report.h b/include/report.h index 780bcaf7ffdc54979cc68c37aae967c6a296927b..ae7f0e083228f1ca8d626ed5829e9d7e0470d455 100644 --- a/include/report.h +++ b/include/report.h @@ -503,6 +503,12 @@ public: virtual ~Report() {} std::map configIdIndexMaps_; // index of configNames_ + std::string GetConfigName(uint64_t id) + { + size_t index = GetConfigIndex(id); + HIPERF_ASSERT(index < configs_.size(), "unable found config index %zu\n", index); + return configs_[index].eventName_; + } size_t GetConfigIndex(uint64_t id) { diff --git a/test/unittest/common/native/report_test.cpp b/test/unittest/common/native/report_test.cpp index 33f4a43dbd6057fa6ac9e37eeca61808cd21af36..6475bd02277b84567b5507ce03c21b3066779566 100644 --- a/test/unittest/common/native/report_test.cpp +++ b/test/unittest/common/native/report_test.cpp @@ -829,6 +829,20 @@ HWTEST_F(ReportTest, PrepareConsole, TestSize.Level1) EXPECT_EQ(report_->consoleWidth_, report_->ConsoleDefaultWidth); } } + +HWTEST_F(ReportTest, OverConfigIndex, TestSize.Level1) +{ + pid_t pid = fork(); + ASSERT_NE(pid, -1); + + if (pid == 0) { + report_->configIdIndexMaps_.emplace(1000u, 1000u); + report_->GetConfigName(1000); + _exit(-2); + } else { + printf("exit.\n"); + } +} } // namespace HiPerf } // namespace Developtools } // namespace OHOS