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#include <gtest/gtest.h> 16 17#include <cstdlib> 18#include <unistd.h> 19#include <sys/wait.h> 20#include <csignal> 21#include <cerrno> 22#include <cstring> 23#include <sys/prctl.h> 24#include <sys/types.h> 25#include <sys/stat.h> 26#include <fcntl.h> 27#include <sys/syscall.h> 28#include <asm/unistd.h> 29#include <syscall.h> 30#include <climits> 31#include <sched.h> 32 33#include "service_control.h" 34 35using namespace std; 36using namespace testing::ext; 37 38namespace init_ut { 39class ServiceControlUnitTest : public testing::Test { 40public: 41 static void SetUpTestCase(void) {}; 42 static void TearDownTestCase(void) {}; 43 void SetUp() {}; 44 void TearDown() {}; 45} 46 47HWTEST_F(ServiceControlUnitTest, ServiceControlWithExtra_001, TestSize.Level1) 48{ 49 int ret = ServiceControlWithExtra("deviceinfoservice", RESTART, argv, 1); 50 EXPECT_EQ(ret, EC_SUCCESS); 51} 52 53HWTEST_F(ServiceControlUnitTest, ServiceControlWithExtra_002, TestSize.Level1) 54{ 55 int ret = ServiceControlWithExtra(nullptr, RESTART, argv, 1); 56 EXPECT_EQ(ret, EC_FAILURE); 57} 58 59HWTEST_F(ServiceControlUnitTest, ServiceControlWithExtra_003, TestSize.Level1) 60{ 61 int ret = ServiceControlWithExtra(nullptr, 3, argv, 1); // 3 is action 62 EXPECT_EQ(ret, EC_FAILURE); 63} 64 65HWTEST_F(ServiceControlUnitTest, ServiceControlWithExtra_004, TestSize.Level1) 66{ 67 int ret = ServiceControlWithExtra("notservie", RESTART, argv, 1); 68 EXPECT_EQ(ret, EC_FAILURE); 69} 70 71HWTEST_F(ServiceControlUnitTest, ServiceControlWithExtra_005, TestSize.Level1) 72{ 73 int ret = ServiceControlWithExtra("deviceinfoservice", 3, argv, 1); // 3 is action 74 EXPECT_EQ(ret, EC_SUCCESS); 75} 76 77HWTEST_F(ServiceControlUnitTest, ServiceControl_001, TestSize.Level1) 78{ 79 int ret = ServiceControl("deviceinfoservice", START); 80 EXPECT_EQ(ret, EC_SUCCESS); 81} 82 83HWTEST_F(ServiceControlUnitTest, ServiceControl_002, TestSize.Level1) 84{ 85 int ret = ServiceControl("deviceinfoservice", STOP); 86 EXPECT_EQ(ret, EC_SUCCESS); 87} 88 89HWTEST_F(ServiceControlUnitTest, ServiceControl_003, TestSize.Level1) 90{ 91 int ret = ServiceControl("deviceinfoservice", RESTART); 92 EXPECT_EQ(ret, EC_SUCCESS); 93} 94 95HWTEST_F(ServiceControlUnitTest, ServiceControl_004, TestSize.Level1) 96{ 97 int ret = ServiceControl(nullptr, RESTART); 98 EXPECT_EQ(ret, EC_FAILURE); 99} 100 101HWTEST_F(ServiceControlUnitTest, ServiceWaitForStatus_001, TestSize.Level1) 102{ 103 int ret = ServiceWaitForStatus("deviceinfoservice", SERVICE_READY, 1); 104 EXPECT_EQ(ret, EC_SUCCESS); 105} 106 107HWTEST_F(ServiceControlUnitTest, ServiceWaitForStatus_002, TestSize.Level1) 108{ 109 int ret = ServiceWaitForStatus("deviceinfoservice", SERVICE_READY, -1); 110 EXPECT_EQ(ret, EC_SUCCESS); 111} 112 113HWTEST_F(ServiceControlUnitTest, ServiceWaitForStatus_003, TestSize.Level1) 114{ 115 int ret = ServiceWaitForStatus(nullptr, SERVICE_READY, 1); 116 EXPECT_EQ(ret, EC_FAILURE); 117} 118 119HWTEST_F(ServiceControlUnitTest, ServiceSetReady_001, TestSize.Level1) 120{ 121 int ret = ServiceSetReady("deviceinfoservice"); 122 EXPECT_EQ(ret, EC_SUCCESS); 123} 124 125HWTEST_F(ServiceControlUnitTest, ServiceSetReady_002, TestSize.Level1) 126{ 127 int ret = ServiceSetReady(nullptr); 128 EXPECT_EQ(ret, EC_FAILURE); 129} 130 131HWTEST_F(ServiceControlUnitTest, StartServiceByTimer_001, TestSize.Level1) 132{ 133 int ret = StartServiceByTimer("deviceinfoservice", 1); 134 EXPECT_EQ(ret, EC_SUCCESS); 135} 136 137HWTEST_F(ServiceControlUnitTest, StartServiceByTimer_002, TestSize.Level1) 138{ 139 int ret = StartServiceByTimer("deviceinfoservice", 0); 140 EXPECT_EQ(ret, EC_SUCCESS); 141} 142 143HWTEST_F(ServiceControlUnitTest, StartServiceByTimer_003, TestSize.Level1) 144{ 145 int ret = StartServiceByTimer(nullptr, 0); 146 EXPECT_EQ(ret, EC_FAILURE); 147} 148 149HWTEST_F(ServiceControlUnitTest, StopServiceTimer_001, TestSize.Level1) 150{ 151 int ret = StopServiceTimer("deviceinfoservice"); 152 EXPECT_EQ(ret, EC_SUCCESS); 153} 154 155HWTEST_F(ServiceControlUnitTest, StopServiceTimer_002, TestSize.Level1) 156{ 157 int ret = StopServiceTimer(nullptr); 158 EXPECT_EQ(ret, EC_FAILURE); 159} 160}