cmd_report_test.cpp revision 8a530e3bae0cc031d60e397c347e96f44487e919
1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include <gtest/gtest.h> 18 19#include "command.h" 20 21static std::unique_ptr<Command> RecordCmd() { 22 return CreateCommandInstance("record"); 23} 24 25static std::unique_ptr<Command> ReportCmd() { 26 return CreateCommandInstance("report"); 27} 28 29class ReportCommandTest : public ::testing::Test { 30 protected: 31 static void SetUpTestCase() { 32 ASSERT_TRUE(RecordCmd()->Run({"-a", "sleep", "1"})); 33 ASSERT_TRUE(RecordCmd()->Run({"-a", "-o", "perf2.data", "sleep", "1"})); 34 } 35}; 36 37TEST_F(ReportCommandTest, no_options) { 38 ASSERT_TRUE(ReportCmd()->Run({})); 39} 40 41TEST_F(ReportCommandTest, input_file_option) { 42 ASSERT_TRUE(ReportCmd()->Run({"-i", "perf2.data"})); 43} 44 45TEST_F(ReportCommandTest, sort_option_pid) { 46 ASSERT_TRUE(ReportCmd()->Run({"--sort", "pid"})); 47} 48 49TEST_F(ReportCommandTest, sort_option_all) { 50 ASSERT_TRUE(ReportCmd()->Run({"--sort", "comm,pid,dso,symbol"})); 51} 52 53extern bool IsBranchSamplingSupported(); 54 55TEST(report_cmd, use_branch_address) { 56 if (IsBranchSamplingSupported()) { 57 ASSERT_TRUE(RecordCmd()->Run({"-b", "sleep", "1"})); 58 ASSERT_TRUE( 59 ReportCmd()->Run({"-b", "--sort", "comm,pid,dso_from,symbol_from,dso_to,symbol_to"})); 60 } else { 61 GTEST_LOG_(INFO) 62 << "This test does nothing as branch stack sampling is not supported on this device."; 63 } 64} 65