summaryrefslogtreecommitdiff
path: root/simpleperf/cmd_inject_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'simpleperf/cmd_inject_test.cpp')
-rw-r--r--simpleperf/cmd_inject_test.cpp92
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);
-}