1 /* 2 * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #include <gtest/gtest.h> 16 #include <fstream> 17 #include <string> 18 #include <iostream> 19 #include <regex> 20 #include "parse_slide_fps_trace.h" 21 #include "sp_log.h" 22 #include "sp_utils.h" 23 24 using namespace testing::ext; 25 using namespace std; 26 27 namespace OHOS { 28 namespace SmartPerf { 29 class ParseSlideFpsTraceTest : public testing::Test { 30 public: SetUpTestCase()31 static void SetUpTestCase() {} TearDownTestCase()32 static void TearDownTestCase() {} 33 SetUp()34 void SetUp() {} TearDown()35 void TearDown() {} 36 37 bool needTime = false; 38 int frameNum = 0; 39 int frameNow = 0; 40 int count = 0; 41 int four = 4; 42 double touchTime = 0; 43 double responseTime = 0; 44 double doCompositionTime = 0; 45 double completionTime = 0.035; 46 double completeTime = 0; 47 int swiperScrollFlag = 0; 48 int swiperFlingflag = 0; 49 int listFlag = 0; 50 }; 51 52 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideFpsTraceNoh01, TestSize.Level1) 53 { 54 ParseSlideFpsTrace parseSlideFpsTrace; 55 std::string file = "non_existent_file.txt"; 56 double result = parseSlideFpsTrace.ParseSlideFpsTraceNoh(file); 57 EXPECT_EQ(result, -1.0); 58 } 59 60 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideCalculateTime01, TestSize.Level1) 61 { 62 ParseSlideFpsTrace parseSlideFpsTrace; 63 completeTime = 0; 64 responseTime = 0; 65 EXPECT_EQ(-1.0, parseSlideFpsTrace.CalculateTime()); 66 } 67 68 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideCalculateTime02, TestSize.Level1) 69 { 70 ParseSlideFpsTrace parseSlideFpsTrace; 71 completeTime = 10; 72 responseTime = 5; 73 EXPECT_EQ(-1.0, parseSlideFpsTrace.CalculateTime()); 74 } 75 76 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideCalculateTime03, TestSize.Level1) 77 { 78 ParseSlideFpsTrace parseSlideFpsTrace; 79 completeTime = 120.5; 80 responseTime = 50; 81 EXPECT_EQ(-1.0, parseSlideFpsTrace.CalculateTime()); 82 } 83 84 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideAppSwiperScroll01, TestSize.Level1) 85 { 86 ParseSlideFpsTrace parseSlideFpsTrace; 87 std::string line = "H:APP_SWIPER_SCROLL,123456789"; 88 parseSlideFpsTrace.AppSwiperScroll(line); 89 ASSERT_EQ(touchTime, 0); 90 ASSERT_EQ(swiperScrollFlag, 0); 91 } 92 93 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideAppSwiperScroll02, TestSize.Level1) 94 { 95 ParseSlideFpsTrace parseSlideFpsTrace; 96 std::string line = "H:APP_SWIPER_FLING,987654321"; 97 swiperScrollFlag = 1; 98 doCompositionTime = 100; 99 parseSlideFpsTrace.AppSwiperScroll(line); 100 ASSERT_EQ(completeTime, 0); 101 ASSERT_EQ(swiperFlingflag, 0); 102 } 103 104 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideAppSwiperScroll03, TestSize.Level1) 105 { 106 ParseSlideFpsTrace parseSlideFpsTrace; 107 std::string line = "H:APP_SWIPER_SCROLL,123456789"; 108 parseSlideFpsTrace.AppSwiperScroll(line); 109 doCompositionTime = 123456790; 110 parseSlideFpsTrace.AppSwiperScroll(line); 111 ASSERT_EQ(responseTime, 0); 112 ASSERT_EQ(frameNow, 0); 113 ASSERT_EQ(needTime, false); 114 } 115 116 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideGetLineTime01, TestSize.Level1) 117 { 118 ParseSlideFpsTrace parseSlideFpsTrace; 119 std::string lineStr = "....10:12:34:56"; 120 std::string expected = "12:34:56"; 121 EXPECT_EQ(parseSlideFpsTrace.GetLineTime(lineStr), expected); 122 } 123 124 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideGetLineTime02, TestSize.Level1) 125 { 126 ParseSlideFpsTrace parseSlideFpsTrace; 127 std::string lineStr = "......."; 128 std::string expected = ""; 129 EXPECT_EQ(parseSlideFpsTrace.GetLineTime(lineStr), expected); 130 } 131 132 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideCutString01, TestSize.Level1) 133 { 134 ParseSlideFpsTrace parseSlideFpsTrace; 135 std::string lineStr = "startTestend"; 136 std::string start = "start"; 137 std::string end = "end"; 138 size_t offset = 0; 139 std::string expected = "startTest"; 140 std::string result = parseSlideFpsTrace.CutString(lineStr, start, end, offset); 141 EXPECT_EQ(expected, result); 142 } 143 144 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideCutString02, TestSize.Level1) 145 { 146 ParseSlideFpsTrace parseSlideFpsTrace; 147 std::string lineStr = "startTestend"; 148 std::string start = "start"; 149 std::string end = "end"; 150 size_t offset = 9; 151 std::string expected = ""; 152 std::string result = parseSlideFpsTrace.CutString(lineStr, start, end, offset); 153 EXPECT_EQ(expected, result); 154 } 155 156 HWTEST_F(ParseSlideFpsTraceTest, ParseSlideCutString03, TestSize.Level1) 157 { 158 ParseSlideFpsTrace parseSlideFpsTrace; 159 std::string lineStr = "startTestend"; 160 std::string start = "start"; 161 std::string end = "end"; 162 size_t offset = 10; 163 std::string expected = "nd"; 164 std::string result = parseSlideFpsTrace.CutString(lineStr, start, end, offset); 165 EXPECT_EQ(expected, result); 166 } 167 } 168 }