diff options
Diffstat (limited to 'simpleperf/cmd_inject_test.cpp')
-rw-r--r-- | simpleperf/cmd_inject_test.cpp | 92 |
1 files changed, 4 insertions, 88 deletions
diff --git a/simpleperf/cmd_inject_test.cpp b/simpleperf/cmd_inject_test.cpp index c93a15d6..8668174c 100644 --- a/simpleperf/cmd_inject_test.cpp +++ b/simpleperf/cmd_inject_test.cpp @@ -15,7 +15,6 @@ */ #include <android-base/file.h> -#include <android-base/test_utils.h> #include <gtest/gtest.h> #include "cmd_inject_impl.h" @@ -88,7 +87,10 @@ TEST(cmd_inject, binary_option) { } TEST(cmd_inject, exclude_perf_option) { - ASSERT_TRUE(RunInjectCmd({"--exclude-perf"}, nullptr)); + ASSERT_FALSE(RunInjectCmd({"--exclude-perf"}, nullptr)); + std::string perf_with_recording_process = + GetTestData(std::string("etm") + OS_PATH_SEPARATOR + "perf_with_recording_process.data"); + ASSERT_TRUE(RunInjectCmd({"--exclude-perf", "-i", perf_with_recording_process}, nullptr)); } TEST(cmd_inject, output_option) { @@ -146,89 +148,3 @@ TEST(cmd_inject, inject_kernel_data) { ASSERT_TRUE(android::base::ReadFileToString(tmpfile2.path, &output)); ASSERT_EQ(output, autofdo_output); } - -TEST(cmd_inject, unformatted_trace) { - std::string data; - std::string perf_with_unformatted_trace = - GetTestData(std::string("etm") + OS_PATH_SEPARATOR + "perf_with_unformatted_trace.data"); - ASSERT_TRUE(RunInjectCmd({"-i", perf_with_unformatted_trace}, &data)); - // Test that we can find instr range in etm_test_loop binary. - ASSERT_NE(data.find("etm_test_loop"), std::string::npos); - CheckMatchingExpectedData(data); -} - -TEST(cmd_inject, multiple_input_files) { - std::string data; - std::string perf_data = GetTestData(std::string("etm") + OS_PATH_SEPARATOR + "perf.data"); - std::string perf_with_unformatted_trace = - GetTestData(std::string("etm") + OS_PATH_SEPARATOR + "perf_with_unformatted_trace.data"); - - // Test input files separated by comma. - ASSERT_TRUE(RunInjectCmd({"-i", perf_with_unformatted_trace + "," + perf_data}, &data)); - ASSERT_NE(data.find("106c->1074:200"), std::string::npos); - - // Test input files from different -i options. - ASSERT_TRUE(RunInjectCmd({"-i", perf_with_unformatted_trace, "-i", perf_data}, &data)); - ASSERT_NE(data.find("106c->1074:200"), std::string::npos); - - // Test input files provided by input_file_list. - TemporaryFile tmpfile; - std::string input_file_list = perf_data + "\n" + perf_with_unformatted_trace + "\n"; - ASSERT_TRUE(android::base::WriteStringToFd(input_file_list, tmpfile.fd)); - close(tmpfile.release()); - ASSERT_TRUE(RunInjectCmd({"-i", std::string("@") + tmpfile.path}, &data)); - ASSERT_NE(data.find("106c->1074:200"), std::string::npos); -} - -TEST(cmd_inject, merge_branch_list_files) { - TemporaryFile tmpfile; - close(tmpfile.release()); - ASSERT_TRUE(RunInjectCmd({"--output", "branch-list", "-o", tmpfile.path})); - TemporaryFile tmpfile2; - close(tmpfile2.release()); - ASSERT_TRUE(RunInjectCmd({"-i", std::string(tmpfile.path) + "," + tmpfile.path, "--output", - "branch-list", "-o", tmpfile2.path})); - std::string autofdo_data; - ASSERT_TRUE(RunInjectCmd({"-i", tmpfile2.path, "--output", "autofdo"}, &autofdo_data)); - ASSERT_NE(autofdo_data.find("106c->1074:200"), std::string::npos); -} - -TEST(cmd_inject, report_warning_when_overflow) { - CapturedStderr capture; - capture.Start(); - std::vector<std::unique_ptr<TemporaryFile>> branch_list_files; - std::vector<std::unique_ptr<TemporaryFile>> input_files; - - branch_list_files.emplace_back(new TemporaryFile); - close(branch_list_files.back()->release()); - ASSERT_TRUE(RunInjectCmd({"--output", "branch-list", "-o", branch_list_files.back()->path})); - for (size_t i = 1; i <= 7; i++) { - // Create input file list, repeating branch list file for 1000 times. - std::string s; - for (size_t j = 0; j < 1000; j++) { - s += std::string(branch_list_files.back()->path) + "\n"; - } - input_files.emplace_back(new TemporaryFile); - ASSERT_TRUE(android::base::WriteStringToFd(s, input_files.back()->fd)); - close(input_files.back()->release()); - - // Merge branch list files. - branch_list_files.emplace_back(new TemporaryFile); - close(branch_list_files.back()->release()); - ASSERT_TRUE( - RunInjectCmd({"--output", "branch-list", "-i", std::string("@") + input_files.back()->path, - "-o", branch_list_files.back()->path})); - } - capture.Stop(); - const std::string WARNING_MSG = "Branch count overflow happened."; - ASSERT_NE(capture.str().find(WARNING_MSG), std::string::npos); - - // Warning also happens when converting branch lists to AutoFDO format. - capture.Reset(); - capture.Start(); - std::string autofdo_data; - ASSERT_TRUE(RunInjectCmd({"-i", branch_list_files.back()->path}, &autofdo_data)); - capture.Stop(); - ASSERT_NE(capture.str().find(WARNING_MSG), std::string::npos); - ASSERT_NE(autofdo_data.find("106c->1074:18446744073709551615"), std::string::npos); -} |