1/* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 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 16#include <cstdio> 17#include <unistd.h> 18#include "gtest/gtest.h" 19#include "c/qos.h" 20 21namespace OHOS { 22namespace QOS { 23using namespace testing; 24using namespace testing::ext; 25using namespace OHOS::QOS; 26 27class QoSNdkTest : public testing::Test { 28public: 29 static void SetUpTestCase(); 30 static void TearDownTestCase(); 31 void SetUp(); 32 void TearDown(); 33}; 34 35void QoSNdkTest::SetUpTestCase() 36{ 37} 38 39void QoSNdkTest::TearDownTestCase() 40{ 41} 42 43void QoSNdkTest::SetUp() 44{ 45} 46 47void QoSNdkTest::TearDown() 48{ 49} 50 51/** 52 * @tc.name: QoSNdkTest 53 * @tc.desc: Verify the Set and Reset QoSLevel function. 54 * @tc.type: FUNC 55 */ 56HWTEST_F(QoSNdkTest, SetThreadQoSNdkTest1, TestSize.Level1) 57{ 58 int ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_BACKGROUND); 59 EXPECT_EQ(ret, 0); 60 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_UTILITY); 61 EXPECT_EQ(ret, 0); 62 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEFAULT); 63 EXPECT_EQ(ret, 0); 64 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INITIATED); 65 EXPECT_EQ(ret, 0); 66 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEADLINE_REQUEST); 67 EXPECT_EQ(ret, 0); 68 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); 69 EXPECT_EQ(ret, 0); 70 ret = OH_QoS_SetThreadQoS(QoS_Level(-1)); 71 EXPECT_EQ(ret, -1); 72 ret = OH_QoS_SetThreadQoS(QoS_Level(6)); 73 EXPECT_EQ(ret, -1); 74 ret = OH_QoS_SetThreadQoS(QoS_Level(1024)); 75 EXPECT_EQ(ret, -1); 76} 77 78HWTEST_F(QoSNdkTest, ResetThreadQoSNdkTest, TestSize.Level1) 79{ 80 int ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_BACKGROUND); 81 EXPECT_EQ(ret, 0); 82 ret = OH_QoS_ResetThreadQoS(); 83 EXPECT_EQ(ret, 0); 84 85 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_UTILITY); 86 EXPECT_EQ(ret, 0); 87 ret = OH_QoS_ResetThreadQoS(); 88 EXPECT_EQ(ret, 0); 89 90 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEFAULT); 91 EXPECT_EQ(ret, 0); 92 ret = OH_QoS_ResetThreadQoS(); 93 EXPECT_EQ(ret, 0); 94 95 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INITIATED); 96 EXPECT_EQ(ret, 0); 97 ret = OH_QoS_ResetThreadQoS(); 98 EXPECT_EQ(ret, 0); 99 100 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEADLINE_REQUEST); 101 EXPECT_EQ(ret, 0); 102 ret = OH_QoS_ResetThreadQoS(); 103 EXPECT_EQ(ret, 0); 104 105 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); 106 EXPECT_EQ(ret, 0); 107 ret = OH_QoS_ResetThreadQoS(); 108 EXPECT_EQ(ret, 0); 109} 110 111HWTEST_F(QoSNdkTest, GetThreadQoSNdkTest1, TestSize.Level1) 112{ 113 int ret = OH_QoS_GetThreadQoS(nullptr); 114 EXPECT_EQ(ret, -1); 115 116 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_BACKGROUND); 117 EXPECT_EQ(ret, 0); 118 enum QoS_Level level; 119 ret = OH_QoS_GetThreadQoS(&level); 120 EXPECT_EQ(ret, 0); 121 EXPECT_EQ(level, QoS_Level::QOS_BACKGROUND); 122 123 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_UTILITY); 124 EXPECT_EQ(ret, 0); 125 ret = OH_QoS_GetThreadQoS(&level); 126 EXPECT_EQ(ret, 0); 127 EXPECT_EQ(level, QoS_Level::QOS_UTILITY); 128 129 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEFAULT); 130 EXPECT_EQ(ret, 0); 131 ret = OH_QoS_GetThreadQoS(&level); 132 EXPECT_EQ(ret, 0); 133 EXPECT_EQ(level, QoS_Level::QOS_DEFAULT); 134 135 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INITIATED); 136 EXPECT_EQ(ret, 0); 137 ret = OH_QoS_GetThreadQoS(&level); 138 EXPECT_EQ(ret, 0); 139 EXPECT_EQ(level, QoS_Level::QOS_USER_INITIATED); 140 141 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEADLINE_REQUEST); 142 EXPECT_EQ(ret, 0); 143 ret = OH_QoS_GetThreadQoS(&level); 144 EXPECT_EQ(ret, 0); 145 EXPECT_EQ(level, QoS_Level::QOS_DEADLINE_REQUEST); 146 147 ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); 148 EXPECT_EQ(ret, 0); 149 ret = OH_QoS_GetThreadQoS(&level); 150 EXPECT_EQ(ret, 0); 151 EXPECT_EQ(level, QoS_Level::QOS_USER_INTERACTIVE); 152 153 ret = OH_QoS_ResetThreadQoS(); 154 EXPECT_EQ(ret, 0); 155 ret = OH_QoS_GetThreadQoS(&level); 156 EXPECT_EQ(ret, -1); 157} 158} // QOS 159} // OHOS