diff options
author | Yabin Cui <yabinc@google.com> | 2017-02-10 10:24:43 -0800 |
---|---|---|
committer | Yabin Cui <yabinc@google.com> | 2017-02-10 10:24:43 -0800 |
commit | b16a51ac5e3e7e581bcd79cb7ec91cdb62b45a2b (patch) | |
tree | b070c18cbdb80ff10cca06ff05514e5ee865146e | |
parent | 637989a574c61c1e0b28b3c09e4b94aefec28756 (diff) | |
download | extras-b16a51ac5e3e7e581bcd79cb7ec91cdb62b45a2b.tar.gz |
simpleperf: fix an error in checking monitored targets.
Bug: http://b/30974760
Test: run simpleperf_unit_test.
Change-Id: Ib3b5772468f0d67f54859d7dff15f66b567fac95
-rw-r--r-- | simpleperf/cmd_record_test.cpp | 11 | ||||
-rw-r--r-- | simpleperf/event_selection_set.cpp | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/simpleperf/cmd_record_test.cpp b/simpleperf/cmd_record_test.cpp index 35e871fe..c3fb8f26 100644 --- a/simpleperf/cmd_record_test.cpp +++ b/simpleperf/cmd_record_test.cpp @@ -385,3 +385,14 @@ TEST(record_cmd, stop_when_no_more_targets) { while (tid == 0); ASSERT_TRUE(RecordCmd()->Run({"-o", tmpfile.path, "-t", std::to_string(tid)})); } + +TEST(record_cmd, donot_stop_when_having_targets) { + std::vector<std::unique_ptr<Workload>> workloads; + CreateProcesses(1, &workloads); + std::string pid = std::to_string(workloads[0]->GetPid()); + uint64_t start_time_in_ns = GetSystemClock(); + TemporaryFile tmpfile; + ASSERT_TRUE(RecordCmd()->Run({"-o", tmpfile.path, "-p", pid, "--duration", "3"})); + uint64_t end_time_in_ns = GetSystemClock(); + ASSERT_GT(end_time_in_ns - start_time_in_ns, static_cast<uint64_t>(2e9)); +} diff --git a/simpleperf/event_selection_set.cpp b/simpleperf/event_selection_set.cpp index 71c6c723..bc1f5a8b 100644 --- a/simpleperf/event_selection_set.cpp +++ b/simpleperf/event_selection_set.cpp @@ -813,7 +813,7 @@ bool EventSelectionSet::HasSampler() { for (auto& group : groups_) { for (auto& sel : group) { if (!sel.event_fds.empty()) { - return false; + return true; } for (auto& sampler : sel.inplace_samplers) { if (!sampler->IsClosed()) { |