summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2018-05-11 17:30:37 -0700
committerYabin Cui <yabinc@google.com>2018-05-14 22:48:43 +0000
commit3231ba48934f04d61fa954e555d0f7fedc579e12 (patch)
tree4463561c6fa441a5922c9cb5c671bffc9d864adf
parentc29e0cd01e44066cb49463ac497eb0becdcf6ffe (diff)
downloadextras-3231ba48934f04d61fa954e555d0f7fedc579e12.tar.gz
simpleperf: fix *handle_SIGHUP tests.
Fix record_cmd.handle_SIGHUP and omit stat_cmd.handle_SIGHUP in cts tests. Bug: http://b/79495636 Test: run CtsSimpleperfTestCases. Change-Id: I3a540207082000a1d0cdf39ab53798411a8b4d24 (cherry picked from commit 9bd7e57e5f68db6906b1d5fed9a9a76f6973f6ff)
-rw-r--r--simpleperf/cmd_record_test.cpp17
-rw-r--r--simpleperf/cmd_stat_test.cpp5
2 files changed, 18 insertions, 4 deletions
diff --git a/simpleperf/cmd_record_test.cpp b/simpleperf/cmd_record_test.cpp
index c3f9cb40..e942332f 100644
--- a/simpleperf/cmd_record_test.cpp
+++ b/simpleperf/cmd_record_test.cpp
@@ -391,12 +391,21 @@ TEST(record_cmd, support_modifier_for_clock_events) {
TEST(record_cmd, handle_SIGHUP) {
TemporaryFile tmpfile;
- std::thread thread([]() {
- sleep(1);
+ int pipefd[2];
+ ASSERT_EQ(0, pipe(pipefd));
+ int read_fd = pipefd[0];
+ int write_fd = pipefd[1];
+ char data[8] = {};
+ std::thread thread([&]() {
+ android::base::ReadFully(read_fd, data, 7);
kill(getpid(), SIGHUP);
});
- thread.detach();
- ASSERT_TRUE(RecordCmd()->Run({"-o", tmpfile.path, "sleep", "1000000"}));
+ ASSERT_TRUE(RecordCmd()->Run({"-o", tmpfile.path, "--start_profiling_fd",
+ std::to_string(write_fd), "sleep", "1000000"}));
+ thread.join();
+ close(write_fd);
+ close(read_fd);
+ ASSERT_STREQ(data, "STARTED");
}
TEST(record_cmd, stop_when_no_more_targets) {
diff --git a/simpleperf/cmd_stat_test.cpp b/simpleperf/cmd_stat_test.cpp
index 3cdb4ebd..3876b420 100644
--- a/simpleperf/cmd_stat_test.cpp
+++ b/simpleperf/cmd_stat_test.cpp
@@ -157,6 +157,11 @@ TEST(stat_cmd, no_modifier_for_clock_events) {
}
TEST(stat_cmd, handle_SIGHUP) {
+ if (!GetDefaultAppPackageName().empty()) {
+ // See http://b/79495636.
+ GTEST_LOG_(INFO) << "Omit this test in app's context.";
+ return;
+ }
std::thread thread([]() {
sleep(1);
kill(getpid(), SIGHUP);