169570cc8Sopenharmony_ci/* 269570cc8Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 369570cc8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 469570cc8Sopenharmony_ci * you may not use this file except in compliance with the License. 569570cc8Sopenharmony_ci * You may obtain a copy of the License at 669570cc8Sopenharmony_ci * 769570cc8Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 869570cc8Sopenharmony_ci * 969570cc8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1069570cc8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1169570cc8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1269570cc8Sopenharmony_ci * See the License for the specific language governing permissions and 1369570cc8Sopenharmony_ci * limitations under the License. 1469570cc8Sopenharmony_ci */ 1569570cc8Sopenharmony_ci 1669570cc8Sopenharmony_ci#include <gtest/gtest.h> 1769570cc8Sopenharmony_ci 1869570cc8Sopenharmony_ci#include <cerrno> 1969570cc8Sopenharmony_ci#include <climits> 2069570cc8Sopenharmony_ci#include <cstdlib> 2169570cc8Sopenharmony_ci#include <cstring> 2269570cc8Sopenharmony_ci#include <memory> 2369570cc8Sopenharmony_ci#include <string> 2469570cc8Sopenharmony_ci#include <sys/stat.h> 2569570cc8Sopenharmony_ci#include <sys/types.h> 2669570cc8Sopenharmony_ci#include <unistd.h> 2769570cc8Sopenharmony_ci#include <cstdio> 2869570cc8Sopenharmony_ci#include <cerrno> 2969570cc8Sopenharmony_ci 3069570cc8Sopenharmony_ci#include "appspawn_utils.h" 3169570cc8Sopenharmony_ci#include "parameter.h" 3269570cc8Sopenharmony_ci#include "hnp_base.h" 3369570cc8Sopenharmony_ci#include "hnp_pack.h" 3469570cc8Sopenharmony_ci#include "hnp_installer.h" 3569570cc8Sopenharmony_ci#include "hnp_api.h" 3669570cc8Sopenharmony_ci#include "securec.h" 3769570cc8Sopenharmony_ci#include "hnp_stub.h" 3869570cc8Sopenharmony_ci 3969570cc8Sopenharmony_ciusing namespace testing; 4069570cc8Sopenharmony_ciusing namespace testing::ext; 4169570cc8Sopenharmony_ci 4269570cc8Sopenharmony_ci#define HNP_BASE_PATH "/data/app/el1/bundle/10000" 4369570cc8Sopenharmony_ci#define PARAM_BUFFER_SIZE 10 4469570cc8Sopenharmony_ci 4569570cc8Sopenharmony_ci#ifdef __cplusplus 4669570cc8Sopenharmony_ci extern "C" { 4769570cc8Sopenharmony_ci#endif 4869570cc8Sopenharmony_ci 4969570cc8Sopenharmony_ci 5069570cc8Sopenharmony_ci#ifdef __cplusplus 5169570cc8Sopenharmony_ci } 5269570cc8Sopenharmony_ci#endif 5369570cc8Sopenharmony_ci 5469570cc8Sopenharmony_cinamespace OHOS { 5569570cc8Sopenharmony_ciclass HnpInstallerTest : public testing::Test { 5669570cc8Sopenharmony_cipublic: 5769570cc8Sopenharmony_ci static void SetUpTestCase(); 5869570cc8Sopenharmony_ci static void TearDownTestCase(); 5969570cc8Sopenharmony_ci void SetUp(); 6069570cc8Sopenharmony_ci void TearDown(); 6169570cc8Sopenharmony_ci}; 6269570cc8Sopenharmony_ci 6369570cc8Sopenharmony_civoid HnpInstallerTest::SetUpTestCase() 6469570cc8Sopenharmony_ci{ 6569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_TEST SetUpTestCase"; 6669570cc8Sopenharmony_ci} 6769570cc8Sopenharmony_ci 6869570cc8Sopenharmony_civoid HnpInstallerTest::TearDownTestCase() 6969570cc8Sopenharmony_ci{ 7069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_TEST TearDownTestCase"; 7169570cc8Sopenharmony_ci} 7269570cc8Sopenharmony_ci 7369570cc8Sopenharmony_civoid HnpInstallerTest::SetUp() 7469570cc8Sopenharmony_ci{ 7569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_TEST SetUp"; 7669570cc8Sopenharmony_ci} 7769570cc8Sopenharmony_ci 7869570cc8Sopenharmony_civoid HnpInstallerTest::TearDown() 7969570cc8Sopenharmony_ci{ 8069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_TEST TearDown"; 8169570cc8Sopenharmony_ci} 8269570cc8Sopenharmony_ci 8369570cc8Sopenharmony_civoid HnpPackWithoutBin(char *name, bool isPublic, bool isFirst) 8469570cc8Sopenharmony_ci{ 8569570cc8Sopenharmony_ci char arg6[MAX_FILE_PATH_LEN]; 8669570cc8Sopenharmony_ci 8769570cc8Sopenharmony_ci if (isPublic) { 8869570cc8Sopenharmony_ci EXPECT_EQ(strcpy_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out/public"), EOK); 8969570cc8Sopenharmony_ci } else { 9069570cc8Sopenharmony_ci EXPECT_EQ(strcpy_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out/private"), EOK); 9169570cc8Sopenharmony_ci } 9269570cc8Sopenharmony_ci 9369570cc8Sopenharmony_ci if (isFirst) { 9469570cc8Sopenharmony_ci EXPECT_EQ(mkdir("./hnp_sample", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 9569570cc8Sopenharmony_ci EXPECT_EQ(mkdir("./hnp_out", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 9669570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 9769570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 9869570cc8Sopenharmony_ci } 9969570cc8Sopenharmony_ci 10069570cc8Sopenharmony_ci char arg1[] = "hnpcli"; 10169570cc8Sopenharmony_ci char arg2[] = "pack"; 10269570cc8Sopenharmony_ci char arg3[] = "-i"; 10369570cc8Sopenharmony_ci char arg4[] = "./hnp_sample"; 10469570cc8Sopenharmony_ci char arg5[] = "-o"; 10569570cc8Sopenharmony_ci char arg7[] = "-n"; 10669570cc8Sopenharmony_ci char arg9[] = "-v"; 10769570cc8Sopenharmony_ci char arg10[] = "1.1"; 10869570cc8Sopenharmony_ci char *argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, name, arg9, arg10}; 10969570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 11069570cc8Sopenharmony_ci 11169570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdPack(argc, argv), 0); 11269570cc8Sopenharmony_ci} 11369570cc8Sopenharmony_ci 11469570cc8Sopenharmony_civoid HnpPackWithoutBinDelete(void) 11569570cc8Sopenharmony_ci{ 11669570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_sample"), 0); 11769570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out"), 0); 11869570cc8Sopenharmony_ci} 11969570cc8Sopenharmony_ci 12069570cc8Sopenharmony_civoid HnpPackWithBin(char *name, char *version, bool isPublic, bool isFirst, mode_t mode) 12169570cc8Sopenharmony_ci{ 12269570cc8Sopenharmony_ci char arg6[MAX_FILE_PATH_LEN]; 12369570cc8Sopenharmony_ci 12469570cc8Sopenharmony_ci if (strcmp(version, "1.1") == 0) { 12569570cc8Sopenharmony_ci if (isPublic) { 12669570cc8Sopenharmony_ci EXPECT_EQ(strcpy_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out/public"), EOK); 12769570cc8Sopenharmony_ci } else { 12869570cc8Sopenharmony_ci EXPECT_EQ(strcpy_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out/private"), EOK); 12969570cc8Sopenharmony_ci } 13069570cc8Sopenharmony_ci } else { 13169570cc8Sopenharmony_ci if (isPublic) { 13269570cc8Sopenharmony_ci EXPECT_GT(sprintf_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out_%s/public", version), 0); 13369570cc8Sopenharmony_ci } else { 13469570cc8Sopenharmony_ci EXPECT_GT(sprintf_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out_%s/private", version), 0); 13569570cc8Sopenharmony_ci } 13669570cc8Sopenharmony_ci } 13769570cc8Sopenharmony_ci 13869570cc8Sopenharmony_ci if (isFirst) { 13969570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_sample", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 14069570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_sample/bin", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 14169570cc8Sopenharmony_ci FILE *fp = fopen("hnp_sample/bin/out", "wb"); 14269570cc8Sopenharmony_ci EXPECT_NE(fp, nullptr); 14369570cc8Sopenharmony_ci (void)fclose(fp); 14469570cc8Sopenharmony_ci EXPECT_EQ(chmod("hnp_sample/bin/out", mode), 0); 14569570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 14669570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 14769570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 14869570cc8Sopenharmony_ci } 14969570cc8Sopenharmony_ci 15069570cc8Sopenharmony_ci char arg1[] = "hnpcli"; 15169570cc8Sopenharmony_ci char arg2[] = "pack"; 15269570cc8Sopenharmony_ci char arg3[] = "-i"; 15369570cc8Sopenharmony_ci char arg4[] = "./hnp_sample"; 15469570cc8Sopenharmony_ci char arg5[] = "-o"; 15569570cc8Sopenharmony_ci char arg7[] = "-n"; 15669570cc8Sopenharmony_ci char arg9[] = "-v"; 15769570cc8Sopenharmony_ci char *argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, name, arg9, version}; 15869570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 15969570cc8Sopenharmony_ci 16069570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdPack(argc, argv), 0); 16169570cc8Sopenharmony_ci} 16269570cc8Sopenharmony_ci 16369570cc8Sopenharmony_civoid HnpPackWithBinDelete(void) 16469570cc8Sopenharmony_ci{ 16569570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_sample"), 0); 16669570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out"), 0); 16769570cc8Sopenharmony_ci} 16869570cc8Sopenharmony_ci 16969570cc8Sopenharmony_civoid HnpPackWithCfg(bool isPublic, bool isFirst) 17069570cc8Sopenharmony_ci{ 17169570cc8Sopenharmony_ci FILE *fp; 17269570cc8Sopenharmony_ci int whitelen; 17369570cc8Sopenharmony_ci char arg6[MAX_FILE_PATH_LEN]; 17469570cc8Sopenharmony_ci 17569570cc8Sopenharmony_ci if (isPublic) { 17669570cc8Sopenharmony_ci EXPECT_EQ(strcpy_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out/public"), EOK); 17769570cc8Sopenharmony_ci } else { 17869570cc8Sopenharmony_ci EXPECT_EQ(strcpy_s(arg6, MAX_FILE_PATH_LEN, "./hnp_out/private"), EOK); 17969570cc8Sopenharmony_ci } 18069570cc8Sopenharmony_ci 18169570cc8Sopenharmony_ci if (isFirst) { 18269570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_sample", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 18369570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_sample/bin", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 18469570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 18569570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 18669570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 18769570cc8Sopenharmony_ci fp = fopen("hnp_sample/bin/out", "wb"); 18869570cc8Sopenharmony_ci EXPECT_NE(fp, NULL); 18969570cc8Sopenharmony_ci (void)fclose(fp); 19069570cc8Sopenharmony_ci fp = fopen("hnp_sample/bin/out2", "wb"); 19169570cc8Sopenharmony_ci EXPECT_NE(fp, NULL); 19269570cc8Sopenharmony_ci (void)fclose(fp); 19369570cc8Sopenharmony_ci fp = fopen("hnp_sample/hnp.json", "w"); 19469570cc8Sopenharmony_ci EXPECT_NE(fp, nullptr); 19569570cc8Sopenharmony_ci (void)fclose(fp); 19669570cc8Sopenharmony_ci } 19769570cc8Sopenharmony_ci 19869570cc8Sopenharmony_ci char arg1[] = "hnp"; 19969570cc8Sopenharmony_ci char arg2[] = "pack"; 20069570cc8Sopenharmony_ci char arg3[] = "-i"; 20169570cc8Sopenharmony_ci char arg4[] = "./hnp_sample"; 20269570cc8Sopenharmony_ci char arg5[] = "-o"; 20369570cc8Sopenharmony_ci char *argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 20469570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 20569570cc8Sopenharmony_ci char cfg[] = "{\"type\":\"hnp-config\",\"name\":\"sample\",\"version\":\"1.1\",\"install\":" 20669570cc8Sopenharmony_ci "{\"links\":[{\"source\":\"bin/out\",\"target\":\"outt\"},{\"source\":\"bin/out2\"," 20769570cc8Sopenharmony_ci "\"target\":\"out2\"}]}}"; 20869570cc8Sopenharmony_ci fp = fopen("hnp_sample/hnp.json", "w"); 20969570cc8Sopenharmony_ci whitelen = fwrite(cfg, sizeof(char), strlen(cfg) + 1, fp); 21069570cc8Sopenharmony_ci (void)fclose(fp); 21169570cc8Sopenharmony_ci EXPECT_EQ(whitelen, strlen(cfg) + 1); 21269570cc8Sopenharmony_ci 21369570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdPack(argc, argv), 0); 21469570cc8Sopenharmony_ci} 21569570cc8Sopenharmony_ci 21669570cc8Sopenharmony_civoid HnpPackWithCfgDelete(void) 21769570cc8Sopenharmony_ci{ 21869570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_sample"), 0); 21969570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out"), 0); 22069570cc8Sopenharmony_ci} 22169570cc8Sopenharmony_ci 22269570cc8Sopenharmony_civoid HnpInstall(char *package) 22369570cc8Sopenharmony_ci{ 22469570cc8Sopenharmony_ci char arg1[] = "hnp"; 22569570cc8Sopenharmony_ci char arg2[] = "install"; 22669570cc8Sopenharmony_ci char arg3[] = "-u"; 22769570cc8Sopenharmony_ci char arg4[] = "10000"; 22869570cc8Sopenharmony_ci char arg5[] = "-p"; 22969570cc8Sopenharmony_ci char arg7[] = "-f"; 23069570cc8Sopenharmony_ci char arg8[] = "-i"; 23169570cc8Sopenharmony_ci char arg9[] = "./hnp_out"; 23269570cc8Sopenharmony_ci char arg10[] = "-s"; 23369570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 23469570cc8Sopenharmony_ci char arg12[] = "-a"; 23569570cc8Sopenharmony_ci char arg13[] = "system64"; 23669570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, package, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 23769570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 23869570cc8Sopenharmony_ci 23969570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 24069570cc8Sopenharmony_ci} 24169570cc8Sopenharmony_ci 24269570cc8Sopenharmony_civoid HnpUnInstall(char *package) 24369570cc8Sopenharmony_ci{ 24469570cc8Sopenharmony_ci char arg1[] = "hnp"; 24569570cc8Sopenharmony_ci char arg2[] = "uninstall"; 24669570cc8Sopenharmony_ci char arg3[] = "-u"; 24769570cc8Sopenharmony_ci char arg4[] = "10000"; 24869570cc8Sopenharmony_ci char arg5[] = "-p"; 24969570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, package}; 25069570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 25169570cc8Sopenharmony_ci 25269570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), 0); 25369570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 25469570cc8Sopenharmony_ci} 25569570cc8Sopenharmony_ci 25669570cc8Sopenharmony_ci/** 25769570cc8Sopenharmony_ci* @tc.name: Hnp_Install_001 25869570cc8Sopenharmony_ci* @tc.desc: Verify set Arg if HnpCmdInstall succeed. 25969570cc8Sopenharmony_ci* @tc.type: FUNC 26069570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 26169570cc8Sopenharmony_ci* @tc.author: 26269570cc8Sopenharmony_ci*/ 26369570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_001, TestSize.Level0) 26469570cc8Sopenharmony_ci{ 26569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_001 start"; 26669570cc8Sopenharmony_ci 26769570cc8Sopenharmony_ci // clear resource before test 26869570cc8Sopenharmony_ci HnpDeleteFolder("hnp_sample"); 26969570cc8Sopenharmony_ci HnpDeleteFolder("hnp_out"); 27069570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 27169570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 27269570cc8Sopenharmony_ci 27369570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 27469570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 27569570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 27669570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_private"), const_cast<char *>("1.1"), false, false, 27769570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 27869570cc8Sopenharmony_ci 27969570cc8Sopenharmony_ci char arg1[] = "hnp"; 28069570cc8Sopenharmony_ci char arg2[] = "install"; 28169570cc8Sopenharmony_ci char arg3[] = "-u"; 28269570cc8Sopenharmony_ci 28369570cc8Sopenharmony_ci { // param num not enough 28469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2}; 28569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 28669570cc8Sopenharmony_ci 28769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), HNP_ERRNO_OPERATOR_ARGV_MISS); 28869570cc8Sopenharmony_ci } 28969570cc8Sopenharmony_ci { // param uid is invalid 29069570cc8Sopenharmony_ci char arg4[] = "asd1231"; 29169570cc8Sopenharmony_ci char arg5[] = "-p"; 29269570cc8Sopenharmony_ci char arg6[] = "sample"; 29369570cc8Sopenharmony_ci char arg7[] = "-s"; 29469570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 29569570cc8Sopenharmony_ci char arg9[] = "-a"; 29669570cc8Sopenharmony_ci char arg10[] = "system64"; 29769570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10}; 29869570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 29969570cc8Sopenharmony_ci 30069570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), HNP_ERRNO_INSTALLER_ARGV_UID_INVALID); 30169570cc8Sopenharmony_ci } 30269570cc8Sopenharmony_ci 30369570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 30469570cc8Sopenharmony_ci HnpPackWithBinDelete(); 30569570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 30669570cc8Sopenharmony_ci 30769570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_001 end"; 30869570cc8Sopenharmony_ci} 30969570cc8Sopenharmony_ci 31069570cc8Sopenharmony_ci/** 31169570cc8Sopenharmony_ci* @tc.name: Hnp_Install_002 31269570cc8Sopenharmony_ci* @tc.desc: Verify install path get if HnpCmdInstall succeed. 31369570cc8Sopenharmony_ci* @tc.type: FUNC 31469570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 31569570cc8Sopenharmony_ci* @tc.author: 31669570cc8Sopenharmony_ci*/ 31769570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_002, TestSize.Level0) 31869570cc8Sopenharmony_ci{ 31969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_002 start"; 32069570cc8Sopenharmony_ci 32169570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 32269570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 32369570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 32469570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_private"), const_cast<char *>("1.1"), false, false, 32569570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 32669570cc8Sopenharmony_ci 32769570cc8Sopenharmony_ci char arg1[] = "hnp"; 32869570cc8Sopenharmony_ci char arg2[] = "install"; 32969570cc8Sopenharmony_ci 33069570cc8Sopenharmony_ci { // dir exist but force is false 33169570cc8Sopenharmony_ci char arg3[] = "-u"; 33269570cc8Sopenharmony_ci char arg4[] = "10000"; 33369570cc8Sopenharmony_ci char arg5[] = "-p"; 33469570cc8Sopenharmony_ci char arg6[] = "sample"; 33569570cc8Sopenharmony_ci char arg7[] = "-i"; 33669570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 33769570cc8Sopenharmony_ci char arg9[] = "-s"; 33869570cc8Sopenharmony_ci char arg10[] = "./hnp_out"; 33969570cc8Sopenharmony_ci char arg11[] = "-a"; 34069570cc8Sopenharmony_ci char arg12[] = "system64"; 34169570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12}; 34269570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 34369570cc8Sopenharmony_ci 34469570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 34569570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), HNP_ERRNO_INSTALLER_PATH_IS_EXIST); 34669570cc8Sopenharmony_ci } 34769570cc8Sopenharmony_ci { //ok 34869570cc8Sopenharmony_ci char arg3[] = "-u"; 34969570cc8Sopenharmony_ci char arg4[] = "10000"; 35069570cc8Sopenharmony_ci char arg5[] = "-p"; 35169570cc8Sopenharmony_ci char arg6[] = "sample"; 35269570cc8Sopenharmony_ci char arg7[] = "-i"; 35369570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 35469570cc8Sopenharmony_ci char arg9[] = "-f"; 35569570cc8Sopenharmony_ci char arg10[] = "-s"; 35669570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 35769570cc8Sopenharmony_ci char arg12[] = "-a"; 35869570cc8Sopenharmony_ci char arg13[] = "system64"; 35969570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 36069570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 36169570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 36269570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out", F_OK), 0); 36369570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnp/sample/bin/out", F_OK), 0); 36469570cc8Sopenharmony_ci } 36569570cc8Sopenharmony_ci 36669570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 36769570cc8Sopenharmony_ci HnpPackWithBinDelete(); 36869570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 36969570cc8Sopenharmony_ci 37069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_002 end"; 37169570cc8Sopenharmony_ci} 37269570cc8Sopenharmony_ci 37369570cc8Sopenharmony_ci/** 37469570cc8Sopenharmony_ci* @tc.name: Hnp_Install_003 37569570cc8Sopenharmony_ci* @tc.desc: Verify scr path bin not exist HnpCmdInstall succeed. 37669570cc8Sopenharmony_ci* @tc.type: FUNC 37769570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 37869570cc8Sopenharmony_ci* @tc.author: 37969570cc8Sopenharmony_ci*/ 38069570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_003, TestSize.Level0) 38169570cc8Sopenharmony_ci{ 38269570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_003 start"; 38369570cc8Sopenharmony_ci 38469570cc8Sopenharmony_ci char arg1[] = "hnp"; 38569570cc8Sopenharmony_ci char arg2[] = "install"; 38669570cc8Sopenharmony_ci char arg3[] = "-u"; 38769570cc8Sopenharmony_ci char arg4[] = "10000"; 38869570cc8Sopenharmony_ci char arg5[] = "-p"; 38969570cc8Sopenharmony_ci char arg6[] = "sample"; 39069570cc8Sopenharmony_ci char arg7[] = "-i"; 39169570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 39269570cc8Sopenharmony_ci char arg9[] = "-s"; 39369570cc8Sopenharmony_ci char arg10[] = "./hnp_out"; 39469570cc8Sopenharmony_ci char arg11[] = "-a"; 39569570cc8Sopenharmony_ci char arg12[] = "system64"; 39669570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12}; 39769570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 39869570cc8Sopenharmony_ci 39969570cc8Sopenharmony_ci { // scr path bin not exist 40069570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 40169570cc8Sopenharmony_ci HnpPackWithoutBin(const_cast<char *>("sample_public"), true, true); 40269570cc8Sopenharmony_ci HnpPackWithoutBin(const_cast<char *>("sample_private"), false, false); 40369570cc8Sopenharmony_ci 40469570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 40569570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out", F_OK), -1); 40669570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnp/sample/bin/out", F_OK), -1); 40769570cc8Sopenharmony_ci HnpPackWithoutBinDelete(); 40869570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 40969570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 41069570cc8Sopenharmony_ci } 41169570cc8Sopenharmony_ci { //ok 41269570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 41369570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 41469570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 41569570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_private"), const_cast<char *>("1.1"), false, false, 41669570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 41769570cc8Sopenharmony_ci 41869570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 41969570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out", F_OK), 0); 42069570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnp/sample/bin/out", F_OK), 0); 42169570cc8Sopenharmony_ci HnpPackWithBinDelete(); 42269570cc8Sopenharmony_ci } 42369570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 42469570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 42569570cc8Sopenharmony_ci 42669570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_003 end"; 42769570cc8Sopenharmony_ci} 42869570cc8Sopenharmony_ci 42969570cc8Sopenharmony_ci/** 43069570cc8Sopenharmony_ci* @tc.name: Hnp_Install_004 43169570cc8Sopenharmony_ci* @tc.desc: Verify src path file is not hnp cli generate if HnpCmdInstall succeed. 43269570cc8Sopenharmony_ci* @tc.type: FUNC 43369570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 43469570cc8Sopenharmony_ci* @tc.author: 43569570cc8Sopenharmony_ci*/ 43669570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_004, TestSize.Level0) 43769570cc8Sopenharmony_ci{ 43869570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_004 start"; 43969570cc8Sopenharmony_ci 44069570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 44169570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 44269570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 44369570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_private"), const_cast<char *>("1.1"), false, false, 44469570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 44569570cc8Sopenharmony_ci 44669570cc8Sopenharmony_ci char arg1[] = "hnp"; 44769570cc8Sopenharmony_ci char arg2[] = "install"; 44869570cc8Sopenharmony_ci char arg3[] = "-u"; 44969570cc8Sopenharmony_ci char arg4[] = "10000"; 45069570cc8Sopenharmony_ci char arg5[] = "-p"; 45169570cc8Sopenharmony_ci char arg6[] = "sample"; 45269570cc8Sopenharmony_ci char arg7[] = "-i"; 45369570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 45469570cc8Sopenharmony_ci char arg9[] = "-f"; 45569570cc8Sopenharmony_ci char arg10[] = "-s"; 45669570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 45769570cc8Sopenharmony_ci char arg12[] = "-a"; 45869570cc8Sopenharmony_ci char arg13[] = "system64"; 45969570cc8Sopenharmony_ci 46069570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 46169570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 46269570cc8Sopenharmony_ci 46369570cc8Sopenharmony_ci { //src path file is not hnp 46469570cc8Sopenharmony_ci FILE *fp = fopen("./hnp_out/public/example.zip", "wb"); 46569570cc8Sopenharmony_ci int data[15] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; 46669570cc8Sopenharmony_ci EXPECT_NE(fp, NULL); 46769570cc8Sopenharmony_ci fwrite(data, sizeof(int), 15, fp); 46869570cc8Sopenharmony_ci (void)fclose(fp); 46969570cc8Sopenharmony_ci 47069570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 47169570cc8Sopenharmony_ci remove("./hnp_out/public/example.zip"); 47269570cc8Sopenharmony_ci } 47369570cc8Sopenharmony_ci { //ok 47469570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 47569570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out", F_OK), 0); 47669570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnp/sample/bin/out", F_OK), 0); 47769570cc8Sopenharmony_ci } 47869570cc8Sopenharmony_ci 47969570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 48069570cc8Sopenharmony_ci HnpPackWithBinDelete(); 48169570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 48269570cc8Sopenharmony_ci 48369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_004 end"; 48469570cc8Sopenharmony_ci} 48569570cc8Sopenharmony_ci 48669570cc8Sopenharmony_ci/** 48769570cc8Sopenharmony_ci* @tc.name: Hnp_Install_005 48869570cc8Sopenharmony_ci* @tc.desc: Verify more than 2 link if HnpCmdInstall succeed. 48969570cc8Sopenharmony_ci* @tc.type: FUNC 49069570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 49169570cc8Sopenharmony_ci* @tc.author: 49269570cc8Sopenharmony_ci*/ 49369570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_005, TestSize.Level0) 49469570cc8Sopenharmony_ci{ 49569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_005 start"; 49669570cc8Sopenharmony_ci 49769570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 49869570cc8Sopenharmony_ci 49969570cc8Sopenharmony_ci char arg1[] = "hnp"; 50069570cc8Sopenharmony_ci char arg2[] = "install"; 50169570cc8Sopenharmony_ci 50269570cc8Sopenharmony_ci { //public ok 50369570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 50469570cc8Sopenharmony_ci char arg3[] = "-u"; 50569570cc8Sopenharmony_ci char arg4[] = "10000"; 50669570cc8Sopenharmony_ci char arg5[] = "-p"; 50769570cc8Sopenharmony_ci char arg6[] = "sample"; 50869570cc8Sopenharmony_ci char arg7[] = "-i"; 50969570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 51069570cc8Sopenharmony_ci char arg9[] = "-f"; 51169570cc8Sopenharmony_ci char arg10[] = "-s"; 51269570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 51369570cc8Sopenharmony_ci char arg12[] = "-a"; 51469570cc8Sopenharmony_ci char arg13[] = "system64"; 51569570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 51669570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 51769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 51869570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/outt", F_OK), 0); 51969570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out2", F_OK), 0); 52069570cc8Sopenharmony_ci } 52169570cc8Sopenharmony_ci { //ok 52269570cc8Sopenharmony_ci HnpPackWithCfg(false, false); 52369570cc8Sopenharmony_ci char arg3[] = "-u"; 52469570cc8Sopenharmony_ci char arg4[] = "10000"; 52569570cc8Sopenharmony_ci char arg5[] = "-p"; 52669570cc8Sopenharmony_ci char arg6[] = "sample"; 52769570cc8Sopenharmony_ci char arg7[] = "-i"; 52869570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 52969570cc8Sopenharmony_ci char arg9[] = "-f"; 53069570cc8Sopenharmony_ci char arg10[] = "-s"; 53169570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 53269570cc8Sopenharmony_ci char arg12[] = "-a"; 53369570cc8Sopenharmony_ci char arg13[] = "system64"; 53469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 53569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 53669570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 53769570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnp/sample/bin/outt", F_OK), 0); 53869570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnp/sample/bin/out2", F_OK), 0); 53969570cc8Sopenharmony_ci } 54069570cc8Sopenharmony_ci 54169570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 54269570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 54369570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 54469570cc8Sopenharmony_ci 54569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Installer_005 end"; 54669570cc8Sopenharmony_ci} 54769570cc8Sopenharmony_ci 54869570cc8Sopenharmony_ci/** 54969570cc8Sopenharmony_ci* @tc.name: Hnp_Install_006 55069570cc8Sopenharmony_ci* @tc.desc: Verify private HnpCmdInstall succeed. 55169570cc8Sopenharmony_ci* @tc.type: FUNC 55269570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 55369570cc8Sopenharmony_ci* @tc.author: 55469570cc8Sopenharmony_ci*/ 55569570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_006, TestSize.Level0) 55669570cc8Sopenharmony_ci{ 55769570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_006 start"; 55869570cc8Sopenharmony_ci 55969570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 56069570cc8Sopenharmony_ci 56169570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 56269570cc8Sopenharmony_ci 56369570cc8Sopenharmony_ci char arg1[] = "hnp"; 56469570cc8Sopenharmony_ci char arg2[] = "install"; 56569570cc8Sopenharmony_ci 56669570cc8Sopenharmony_ci { //ok 56769570cc8Sopenharmony_ci char arg3[] = "-u"; 56869570cc8Sopenharmony_ci char arg4[] = "10000"; 56969570cc8Sopenharmony_ci char arg5[] = "-p"; 57069570cc8Sopenharmony_ci char arg6[] = "sample"; 57169570cc8Sopenharmony_ci char arg7[] = "-i"; 57269570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 57369570cc8Sopenharmony_ci char arg9[] = "-f"; 57469570cc8Sopenharmony_ci char arg10[] = "-s"; 57569570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 57669570cc8Sopenharmony_ci char arg12[] = "-a"; 57769570cc8Sopenharmony_ci char arg13[] = "system64"; 57869570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 57969570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 58069570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 58169570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/outt", F_OK), 0); 58269570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out2", F_OK), 0); 58369570cc8Sopenharmony_ci } 58469570cc8Sopenharmony_ci 58569570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 58669570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 58769570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 58869570cc8Sopenharmony_ci 58969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_006 end"; 59069570cc8Sopenharmony_ci} 59169570cc8Sopenharmony_ci 59269570cc8Sopenharmony_ci/** 59369570cc8Sopenharmony_ci* @tc.name: Hnp_Install_007 59469570cc8Sopenharmony_ci* @tc.desc: Verify set Arg if HnpCmdInstall succeed. 59569570cc8Sopenharmony_ci* @tc.type: FUNC 59669570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 59769570cc8Sopenharmony_ci* @tc.author: 59869570cc8Sopenharmony_ci*/ 59969570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_007, TestSize.Level0) 60069570cc8Sopenharmony_ci{ 60169570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_007 start"; 60269570cc8Sopenharmony_ci 60369570cc8Sopenharmony_ci // clear resource before test 60469570cc8Sopenharmony_ci remove("hnp_out/sample.hnp"); 60569570cc8Sopenharmony_ci remove("hnp_sample/bin/out"); 60669570cc8Sopenharmony_ci rmdir("hnp_sample/bin"); 60769570cc8Sopenharmony_ci rmdir("hnp_sample"); 60869570cc8Sopenharmony_ci rmdir("hnp_out"); 60969570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 61069570cc8Sopenharmony_ci 61169570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 61269570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 61369570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 61469570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_private"), const_cast<char *>("1.1"), false, false, 61569570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 61669570cc8Sopenharmony_ci 61769570cc8Sopenharmony_ci char arg1[] = "hnp"; 61869570cc8Sopenharmony_ci char arg2[] = "install"; 61969570cc8Sopenharmony_ci 62069570cc8Sopenharmony_ci { // src dir path is invalid 62169570cc8Sopenharmony_ci char arg3[] = "-u"; 62269570cc8Sopenharmony_ci char arg4[] = "10000"; 62369570cc8Sopenharmony_ci char arg5[] = "-p"; 62469570cc8Sopenharmony_ci char arg6[] = "sample"; 62569570cc8Sopenharmony_ci char arg7[] = "-i"; 62669570cc8Sopenharmony_ci char arg8[] = "./hnp_in"; 62769570cc8Sopenharmony_ci char arg9[] = "-s"; 62869570cc8Sopenharmony_ci char arg10[] = "./hnp_out"; 62969570cc8Sopenharmony_ci char arg11[] = "-a"; 63069570cc8Sopenharmony_ci char arg12[] = "system64"; 63169570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12}; 63269570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 63369570cc8Sopenharmony_ci 63469570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), HNP_ERRNO_BASE_DIR_OPEN_FAILED); 63569570cc8Sopenharmony_ci } 63669570cc8Sopenharmony_ci { // dst dir path is invalid 63769570cc8Sopenharmony_ci char arg3[] = "-u"; 63869570cc8Sopenharmony_ci char arg4[] = "10001"; 63969570cc8Sopenharmony_ci char arg5[] = "-p"; 64069570cc8Sopenharmony_ci char arg6[] = "sample"; 64169570cc8Sopenharmony_ci char arg7[] = "-i"; 64269570cc8Sopenharmony_ci char arg8[] = "./hnp_out/sample.hnp"; 64369570cc8Sopenharmony_ci char arg9[] = "-s"; 64469570cc8Sopenharmony_ci char arg10[] = "./hnp_out"; 64569570cc8Sopenharmony_ci char arg11[] = "-a"; 64669570cc8Sopenharmony_ci char arg12[] = "system64"; 64769570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12}; 64869570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 64969570cc8Sopenharmony_ci 65069570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), HNP_ERRNO_INSTALLER_GET_REALPATH_FAILED); 65169570cc8Sopenharmony_ci } 65269570cc8Sopenharmony_ci 65369570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 65469570cc8Sopenharmony_ci HnpPackWithBinDelete(); 65569570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 65669570cc8Sopenharmony_ci 65769570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_007 end"; 65869570cc8Sopenharmony_ci} 65969570cc8Sopenharmony_ci 66069570cc8Sopenharmony_ci/** 66169570cc8Sopenharmony_ci* @tc.name: Hnp_Install_008 66269570cc8Sopenharmony_ci* @tc.desc: Verify file permission. 66369570cc8Sopenharmony_ci* @tc.type: FUNC 66469570cc8Sopenharmony_ci* @tc.require:issueI9RYCK 66569570cc8Sopenharmony_ci* @tc.author: 66669570cc8Sopenharmony_ci*/ 66769570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_008, TestSize.Level0) 66869570cc8Sopenharmony_ci{ 66969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_08 start"; 67069570cc8Sopenharmony_ci 67169570cc8Sopenharmony_ci // clear resource before test 67269570cc8Sopenharmony_ci remove("hnp_out/sample.hnp"); 67369570cc8Sopenharmony_ci remove("hnp_sample/bin/out"); 67469570cc8Sopenharmony_ci rmdir("hnp_sample/bin"); 67569570cc8Sopenharmony_ci rmdir("hnp_sample"); 67669570cc8Sopenharmony_ci rmdir("hnp_out"); 67769570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 67869570cc8Sopenharmony_ci 67969570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 68069570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 68169570cc8Sopenharmony_ci S_IRWXU | S_IRWXG | S_IROTH | S_IWOTH); 68269570cc8Sopenharmony_ci 68369570cc8Sopenharmony_ci char arg1[] = "hnp"; 68469570cc8Sopenharmony_ci char arg2[] = "install"; 68569570cc8Sopenharmony_ci 68669570cc8Sopenharmony_ci { //ok 68769570cc8Sopenharmony_ci struct stat st = {0}; 68869570cc8Sopenharmony_ci 68969570cc8Sopenharmony_ci char arg3[] = "-u"; 69069570cc8Sopenharmony_ci char arg4[] = "10000"; 69169570cc8Sopenharmony_ci char arg5[] = "-p"; 69269570cc8Sopenharmony_ci char arg6[] = "sample"; 69369570cc8Sopenharmony_ci char arg7[] = "-i"; 69469570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 69569570cc8Sopenharmony_ci char arg9[] = "-f"; 69669570cc8Sopenharmony_ci char arg10[] = "-s"; 69769570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 69869570cc8Sopenharmony_ci char arg12[] = "-a"; 69969570cc8Sopenharmony_ci char arg13[] = "system64"; 70069570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 70169570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 70269570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 70369570cc8Sopenharmony_ci EXPECT_EQ(stat(HNP_BASE_PATH"/hnppublic/bin/out", &st), 0); 70469570cc8Sopenharmony_ci EXPECT_EQ(st.st_mode & 0777, 0744); 70569570cc8Sopenharmony_ci } 70669570cc8Sopenharmony_ci 70769570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 70869570cc8Sopenharmony_ci HnpPackWithBinDelete(); 70969570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 71069570cc8Sopenharmony_ci 71169570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_008 end"; 71269570cc8Sopenharmony_ci} 71369570cc8Sopenharmony_ci 71469570cc8Sopenharmony_ci/** 71569570cc8Sopenharmony_ci* @tc.name: Hnp_Install_009 71669570cc8Sopenharmony_ci* @tc.desc: Verify file permission. 71769570cc8Sopenharmony_ci* @tc.type: FUNC 71869570cc8Sopenharmony_ci* @tc.require:issueI9RYCK 71969570cc8Sopenharmony_ci* @tc.author: 72069570cc8Sopenharmony_ci*/ 72169570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_009, TestSize.Level0) 72269570cc8Sopenharmony_ci{ 72369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_009 start"; 72469570cc8Sopenharmony_ci 72569570cc8Sopenharmony_ci // clear resource before test 72669570cc8Sopenharmony_ci remove("hnp_out/sample.hnp"); 72769570cc8Sopenharmony_ci remove("hnp_sample/bin/out"); 72869570cc8Sopenharmony_ci rmdir("hnp_sample/bin"); 72969570cc8Sopenharmony_ci rmdir("hnp_sample"); 73069570cc8Sopenharmony_ci rmdir("hnp_out"); 73169570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 73269570cc8Sopenharmony_ci 73369570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 73469570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 73569570cc8Sopenharmony_ci S_IXUSR | S_IXGRP | S_IXOTH); 73669570cc8Sopenharmony_ci 73769570cc8Sopenharmony_ci char arg1[] = "hnp"; 73869570cc8Sopenharmony_ci char arg2[] = "install"; 73969570cc8Sopenharmony_ci 74069570cc8Sopenharmony_ci { //ok 74169570cc8Sopenharmony_ci struct stat st = {0}; 74269570cc8Sopenharmony_ci 74369570cc8Sopenharmony_ci char arg3[] = "-u"; 74469570cc8Sopenharmony_ci char arg4[] = "10000"; 74569570cc8Sopenharmony_ci char arg5[] = "-p"; 74669570cc8Sopenharmony_ci char arg6[] = "sample"; 74769570cc8Sopenharmony_ci char arg7[] = "-i"; 74869570cc8Sopenharmony_ci char arg8[] = "./hnp_out"; 74969570cc8Sopenharmony_ci char arg9[] = "-f"; 75069570cc8Sopenharmony_ci char arg10[] = "-s"; 75169570cc8Sopenharmony_ci char arg11[] = "./hnp_out"; 75269570cc8Sopenharmony_ci char arg12[] = "-a"; 75369570cc8Sopenharmony_ci char arg13[] = "system64"; 75469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 75569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 75669570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 75769570cc8Sopenharmony_ci EXPECT_EQ(stat(HNP_BASE_PATH"/hnppublic/bin/out", &st), 0); 75869570cc8Sopenharmony_ci EXPECT_EQ(st.st_mode & 0777, 0755); 75969570cc8Sopenharmony_ci } 76069570cc8Sopenharmony_ci 76169570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 76269570cc8Sopenharmony_ci HnpPackWithBinDelete(); 76369570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 76469570cc8Sopenharmony_ci 76569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_009 end"; 76669570cc8Sopenharmony_ci} 76769570cc8Sopenharmony_ci 76869570cc8Sopenharmony_cistatic void HnpVersionPathCreate(void) 76969570cc8Sopenharmony_ci{ 77069570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77169570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_1", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77269570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_1/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77369570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_1/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77469570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_2", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77569570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_2/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77669570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_2/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77769570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_3", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77869570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_3/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 77969570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_3/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 78069570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_4", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 78169570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_4/public", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 78269570cc8Sopenharmony_ci EXPECT_EQ(mkdir("hnp_out_4/private", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 78369570cc8Sopenharmony_ci 78469570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1"), true, true, 78569570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 78669570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("2"), true, false, 78769570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 78869570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("3"), true, false, 78969570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 79069570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("4"), true, false, 79169570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 79269570cc8Sopenharmony_ci} 79369570cc8Sopenharmony_ci 79469570cc8Sopenharmony_cistatic void HnpVersionPathDelete(void) 79569570cc8Sopenharmony_ci{ 79669570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out_1"), 0); 79769570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out_2"), 0); 79869570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out_3"), 0); 79969570cc8Sopenharmony_ci EXPECT_EQ(HnpDeleteFolder("hnp_out_4"), 0); 80069570cc8Sopenharmony_ci} 80169570cc8Sopenharmony_ci 80269570cc8Sopenharmony_cistatic void HnpVersionV1Install() 80369570cc8Sopenharmony_ci{ 80469570cc8Sopenharmony_ci char arg1[] = "hnp"; 80569570cc8Sopenharmony_ci char arg2[] = "install"; 80669570cc8Sopenharmony_ci char arg3[] = "-u"; 80769570cc8Sopenharmony_ci char arg4[] = "10000"; 80869570cc8Sopenharmony_ci char arg5[] = "-p"; 80969570cc8Sopenharmony_ci char arg7[] = "-i"; 81069570cc8Sopenharmony_ci char arg9[] = "-f"; 81169570cc8Sopenharmony_ci char arg10[] = "-s"; 81269570cc8Sopenharmony_ci char arg11[] = "./hnp_out_1"; 81369570cc8Sopenharmony_ci char arg12[] = "-a"; 81469570cc8Sopenharmony_ci char arg13[] = "system64"; 81569570cc8Sopenharmony_ci 81669570cc8Sopenharmony_ci char arg6[] = "sample1"; 81769570cc8Sopenharmony_ci char arg8[] = "./hnp_out_1"; 81869570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 81969570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 82069570cc8Sopenharmony_ci // install v1 82169570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 82269570cc8Sopenharmony_ci} 82369570cc8Sopenharmony_ci 82469570cc8Sopenharmony_cistatic void HnpVersionV2Install() 82569570cc8Sopenharmony_ci{ 82669570cc8Sopenharmony_ci char arg1[] = "hnp"; 82769570cc8Sopenharmony_ci char arg2[] = "install"; 82869570cc8Sopenharmony_ci char arg3[] = "-u"; 82969570cc8Sopenharmony_ci char arg4[] = "10000"; 83069570cc8Sopenharmony_ci char arg5[] = "-p"; 83169570cc8Sopenharmony_ci char arg7[] = "-i"; 83269570cc8Sopenharmony_ci char arg9[] = "-f"; 83369570cc8Sopenharmony_ci char arg10[] = "-s"; 83469570cc8Sopenharmony_ci char arg11[] = "./hnp_out_2"; 83569570cc8Sopenharmony_ci char arg12[] = "-a"; 83669570cc8Sopenharmony_ci char arg13[] = "system64"; 83769570cc8Sopenharmony_ci 83869570cc8Sopenharmony_ci char arg6[] = "sample2"; 83969570cc8Sopenharmony_ci char arg8[] = "./hnp_out_2"; 84069570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 84169570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 84269570cc8Sopenharmony_ci // install v1 84369570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 84469570cc8Sopenharmony_ci} 84569570cc8Sopenharmony_ci 84669570cc8Sopenharmony_cistatic void HnpVersionV3Install() 84769570cc8Sopenharmony_ci{ 84869570cc8Sopenharmony_ci char arg1[] = "hnp"; 84969570cc8Sopenharmony_ci char arg2[] = "install"; 85069570cc8Sopenharmony_ci char arg3[] = "-u"; 85169570cc8Sopenharmony_ci char arg4[] = "10000"; 85269570cc8Sopenharmony_ci char arg5[] = "-p"; 85369570cc8Sopenharmony_ci char arg7[] = "-i"; 85469570cc8Sopenharmony_ci char arg9[] = "-f"; 85569570cc8Sopenharmony_ci char arg10[] = "-s"; 85669570cc8Sopenharmony_ci char arg11[] = "./hnp_out_3"; 85769570cc8Sopenharmony_ci char arg12[] = "-a"; 85869570cc8Sopenharmony_ci char arg13[] = "system64"; 85969570cc8Sopenharmony_ci 86069570cc8Sopenharmony_ci char arg6[] = "sample3"; 86169570cc8Sopenharmony_ci char arg8[] = "./hnp_out_3"; 86269570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 86369570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 86469570cc8Sopenharmony_ci // install v1 86569570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 86669570cc8Sopenharmony_ci} 86769570cc8Sopenharmony_ci 86869570cc8Sopenharmony_cistatic void HnpVersionV4Install() 86969570cc8Sopenharmony_ci{ 87069570cc8Sopenharmony_ci char arg1[] = "hnp"; 87169570cc8Sopenharmony_ci char arg2[] = "install"; 87269570cc8Sopenharmony_ci char arg3[] = "-u"; 87369570cc8Sopenharmony_ci char arg4[] = "10000"; 87469570cc8Sopenharmony_ci char arg5[] = "-p"; 87569570cc8Sopenharmony_ci char arg7[] = "-i"; 87669570cc8Sopenharmony_ci char arg9[] = "-f"; 87769570cc8Sopenharmony_ci char arg10[] = "-s"; 87869570cc8Sopenharmony_ci char arg11[] = "./hnp_out_4"; 87969570cc8Sopenharmony_ci char arg12[] = "-a"; 88069570cc8Sopenharmony_ci char arg13[] = "system64"; 88169570cc8Sopenharmony_ci 88269570cc8Sopenharmony_ci char arg6[] = "sample4"; 88369570cc8Sopenharmony_ci char arg8[] = "./hnp_out_4"; 88469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13}; 88569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 88669570cc8Sopenharmony_ci // install v1 88769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdInstall(argc, argv), 0); 88869570cc8Sopenharmony_ci} 88969570cc8Sopenharmony_ci 89069570cc8Sopenharmony_cistatic void HnpVersionV1Uninstall() 89169570cc8Sopenharmony_ci{ 89269570cc8Sopenharmony_ci char uarg1[] = "hnp"; 89369570cc8Sopenharmony_ci char uarg2[] = "uninstall"; 89469570cc8Sopenharmony_ci char uarg3[] = "-u"; 89569570cc8Sopenharmony_ci char uarg4[] = "10000"; 89669570cc8Sopenharmony_ci char uarg5[] = "-p"; 89769570cc8Sopenharmony_ci 89869570cc8Sopenharmony_ci // uninstall v1 89969570cc8Sopenharmony_ci char uarg6[] = "sample1"; 90069570cc8Sopenharmony_ci char* uargv[] = {uarg1, uarg2, uarg3, uarg4, uarg5, uarg6}; 90169570cc8Sopenharmony_ci int uargc = sizeof(uargv) / sizeof(uargv[0]); 90269570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(uargc, uargv), 0); 90369570cc8Sopenharmony_ci} 90469570cc8Sopenharmony_ci 90569570cc8Sopenharmony_cistatic void HnpVersionV2Uninstall() 90669570cc8Sopenharmony_ci{ 90769570cc8Sopenharmony_ci char uarg1[] = "hnp"; 90869570cc8Sopenharmony_ci char uarg2[] = "uninstall"; 90969570cc8Sopenharmony_ci char uarg3[] = "-u"; 91069570cc8Sopenharmony_ci char uarg4[] = "10000"; 91169570cc8Sopenharmony_ci char uarg5[] = "-p"; 91269570cc8Sopenharmony_ci 91369570cc8Sopenharmony_ci // uninstall v2 91469570cc8Sopenharmony_ci char uarg6[] = "sample2"; 91569570cc8Sopenharmony_ci char* uargv[] = {uarg1, uarg2, uarg3, uarg4, uarg5, uarg6}; 91669570cc8Sopenharmony_ci int uargc = sizeof(uargv) / sizeof(uargv[0]); 91769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(uargc, uargv), 0); 91869570cc8Sopenharmony_ci} 91969570cc8Sopenharmony_ci 92069570cc8Sopenharmony_cistatic void HnpVersionV3Uninstall() 92169570cc8Sopenharmony_ci{ 92269570cc8Sopenharmony_ci char uarg1[] = "hnp"; 92369570cc8Sopenharmony_ci char uarg2[] = "uninstall"; 92469570cc8Sopenharmony_ci char uarg3[] = "-u"; 92569570cc8Sopenharmony_ci char uarg4[] = "10000"; 92669570cc8Sopenharmony_ci char uarg5[] = "-p"; 92769570cc8Sopenharmony_ci 92869570cc8Sopenharmony_ci // uninstall v3 92969570cc8Sopenharmony_ci char uarg6[] = "sample3"; 93069570cc8Sopenharmony_ci char* uargv[] = {uarg1, uarg2, uarg3, uarg4, uarg5, uarg6}; 93169570cc8Sopenharmony_ci int uargc = sizeof(uargv) / sizeof(uargv[0]); 93269570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(uargc, uargv), 0); 93369570cc8Sopenharmony_ci} 93469570cc8Sopenharmony_ci 93569570cc8Sopenharmony_cistatic void HnpVersionV4Uninstall() 93669570cc8Sopenharmony_ci{ 93769570cc8Sopenharmony_ci char uarg1[] = "hnp"; 93869570cc8Sopenharmony_ci char uarg2[] = "uninstall"; 93969570cc8Sopenharmony_ci char uarg3[] = "-u"; 94069570cc8Sopenharmony_ci char uarg4[] = "10000"; 94169570cc8Sopenharmony_ci char uarg5[] = "-p"; 94269570cc8Sopenharmony_ci 94369570cc8Sopenharmony_ci // uninstall v4 94469570cc8Sopenharmony_ci char uarg6[] = "sample4"; 94569570cc8Sopenharmony_ci char* uargv[] = {uarg1, uarg2, uarg3, uarg4, uarg5, uarg6}; 94669570cc8Sopenharmony_ci int uargc = sizeof(uargv) / sizeof(uargv[0]); 94769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(uargc, uargv), 0); 94869570cc8Sopenharmony_ci} 94969570cc8Sopenharmony_ci 95069570cc8Sopenharmony_cistatic bool HnpSymlinkCheck(const char *sourcePath, const char *targetPath) 95169570cc8Sopenharmony_ci{ 95269570cc8Sopenharmony_ci int ret = false; 95369570cc8Sopenharmony_ci struct stat stat; 95469570cc8Sopenharmony_ci char link[MAX_FILE_PATH_LEN]; 95569570cc8Sopenharmony_ci 95669570cc8Sopenharmony_ci if (lstat(sourcePath, &stat) < 0) { 95769570cc8Sopenharmony_ci return ret; 95869570cc8Sopenharmony_ci } 95969570cc8Sopenharmony_ci 96069570cc8Sopenharmony_ci if (!S_ISLNK(stat.st_mode)) { 96169570cc8Sopenharmony_ci return ret; 96269570cc8Sopenharmony_ci } 96369570cc8Sopenharmony_ci 96469570cc8Sopenharmony_ci int len = readlink(sourcePath, link, sizeof(link) - 1); 96569570cc8Sopenharmony_ci if (len < 0) { 96669570cc8Sopenharmony_ci return ret; 96769570cc8Sopenharmony_ci } 96869570cc8Sopenharmony_ci 96969570cc8Sopenharmony_ci link[len] = '\0'; 97069570cc8Sopenharmony_ci 97169570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "sourcelink is" << link << ";targetlink is" << targetPath; 97269570cc8Sopenharmony_ci return strcmp(link, targetPath) == 0 ? true : false; 97369570cc8Sopenharmony_ci} 97469570cc8Sopenharmony_ci 97569570cc8Sopenharmony_ci/** 97669570cc8Sopenharmony_ci* @tc.name: Hnp_Install_010 97769570cc8Sopenharmony_ci* @tc.desc: Verify version rule HnpCmdInstall succeed. 97869570cc8Sopenharmony_ci* @tc.type: FUNC 97969570cc8Sopenharmony_ci* @tc.require:issueIAGPEW 98069570cc8Sopenharmony_ci* @tc.author: 98169570cc8Sopenharmony_ci*/ 98269570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_010, TestSize.Level0) 98369570cc8Sopenharmony_ci{ 98469570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_010 start"; 98569570cc8Sopenharmony_ci 98669570cc8Sopenharmony_ci HnpVersionPathCreate(); 98769570cc8Sopenharmony_ci 98869570cc8Sopenharmony_ci // install v1 v2 v3 98969570cc8Sopenharmony_ci HnpVersionV1Install(); 99069570cc8Sopenharmony_ci HnpVersionV2Install(); 99169570cc8Sopenharmony_ci HnpVersionV3Install(); 99269570cc8Sopenharmony_ci // check v1 v2 v3 exist 99369570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_1", F_OK), 0); 99469570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_2", F_OK), 0); 99569570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_3", F_OK), 0); 99669570cc8Sopenharmony_ci EXPECT_EQ(HnpSymlinkCheck(HNP_BASE_PATH"/hnppublic/bin/out", "../sample_public.org/sample_public_3/bin/out"), true); 99769570cc8Sopenharmony_ci 99869570cc8Sopenharmony_ci // uninstall v3 99969570cc8Sopenharmony_ci HnpVersionV3Uninstall(); 100069570cc8Sopenharmony_ci // check v1 v2 v3 exist 100169570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_1", F_OK), 0); 100269570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_2", F_OK), 0); 100369570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_3", F_OK), 0); 100469570cc8Sopenharmony_ci EXPECT_EQ(HnpSymlinkCheck(HNP_BASE_PATH"/hnppublic/bin/out", "../sample_public.org/sample_public_3/bin/out"), true); 100569570cc8Sopenharmony_ci 100669570cc8Sopenharmony_ci HnpVersionV4Install(); 100769570cc8Sopenharmony_ci // check v1 v2 v4 exist v3 is uninstall 100869570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_1", F_OK), 0); 100969570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_2", F_OK), 0); 101069570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_3", F_OK), -1); 101169570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_4", F_OK), 0); 101269570cc8Sopenharmony_ci EXPECT_EQ(HnpSymlinkCheck(HNP_BASE_PATH"/hnppublic/bin/out", "../sample_public.org/sample_public_4/bin/out"), true); 101369570cc8Sopenharmony_ci 101469570cc8Sopenharmony_ci // uninstall v1 101569570cc8Sopenharmony_ci HnpVersionV1Uninstall(); 101669570cc8Sopenharmony_ci // check v2 v4 exist v1 v3 is uninstall 101769570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_1", F_OK), -1); 101869570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_2", F_OK), 0); 101969570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_3", F_OK), -1); 102069570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_4", F_OK), 0); 102169570cc8Sopenharmony_ci EXPECT_EQ(HnpSymlinkCheck(HNP_BASE_PATH"/hnppublic/bin/out", "../sample_public.org/sample_public_4/bin/out"), true); 102269570cc8Sopenharmony_ci 102369570cc8Sopenharmony_ci // uninstall v4 102469570cc8Sopenharmony_ci HnpVersionV4Uninstall(); 102569570cc8Sopenharmony_ci // check v2 v4 exist v1 v3 is uninstall 102669570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_1", F_OK), -1); 102769570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_2", F_OK), 0); 102869570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_3", F_OK), -1); 102969570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_4", F_OK), 0); 103069570cc8Sopenharmony_ci EXPECT_EQ(HnpSymlinkCheck(HNP_BASE_PATH"/hnppublic/bin/out", "../sample_public.org/sample_public_4/bin/out"), true); 103169570cc8Sopenharmony_ci 103269570cc8Sopenharmony_ci // uninstall v2 103369570cc8Sopenharmony_ci HnpVersionV2Uninstall(); 103469570cc8Sopenharmony_ci // all version is uninstall 103569570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_1", F_OK), -1); 103669570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_2", F_OK), -1); 103769570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_3", F_OK), -1); 103869570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/sample_public.org/sample_public_4", F_OK), -1); 103969570cc8Sopenharmony_ci 104069570cc8Sopenharmony_ci HnpVersionPathDelete(); 104169570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 104269570cc8Sopenharmony_ci HnpPackWithBinDelete(); 104369570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 104469570cc8Sopenharmony_ci 104569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_010 end"; 104669570cc8Sopenharmony_ci} 104769570cc8Sopenharmony_ci 104869570cc8Sopenharmony_cistatic bool IsHnpInstallEnable() 104969570cc8Sopenharmony_ci{ 105069570cc8Sopenharmony_ci char buffer[PARAM_BUFFER_SIZE] = {0}; 105169570cc8Sopenharmony_ci int ret = GetParameter("const.startup.hnp.install.enable", "false", buffer, PARAM_BUFFER_SIZE); 105269570cc8Sopenharmony_ci if (ret <= 0) { 105369570cc8Sopenharmony_ci return false; 105469570cc8Sopenharmony_ci } 105569570cc8Sopenharmony_ci 105669570cc8Sopenharmony_ci if (strcmp(buffer, "true") == 0) { 105769570cc8Sopenharmony_ci return true; 105869570cc8Sopenharmony_ci } 105969570cc8Sopenharmony_ci 106069570cc8Sopenharmony_ci return false; 106169570cc8Sopenharmony_ci} 106269570cc8Sopenharmony_ci 106369570cc8Sopenharmony_ci/** 106469570cc8Sopenharmony_ci* @tc.name: Hnp_Install_API_001 106569570cc8Sopenharmony_ci* @tc.desc: Verify set Arg if NativeInstallHnp succeed. 106669570cc8Sopenharmony_ci* @tc.type: FUNC 106769570cc8Sopenharmony_ci* @tc.require:issueI9DQSE 106869570cc8Sopenharmony_ci* @tc.author: 106969570cc8Sopenharmony_ci*/ 107069570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_API_001, TestSize.Level0) 107169570cc8Sopenharmony_ci{ 107269570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_001 start"; 107369570cc8Sopenharmony_ci 107469570cc8Sopenharmony_ci int ret; 107569570cc8Sopenharmony_ci bool installEnable = IsHnpInstallEnable(); 107669570cc8Sopenharmony_ci 107769570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 107869570cc8Sopenharmony_ci 107969570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 108069570cc8Sopenharmony_ci struct HapInfo hapInfo; 108169570cc8Sopenharmony_ci (void)memset_s(&hapInfo, sizeof(HapInfo), 0, sizeof(HapInfo)); 108269570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.packageName, sizeof(hapInfo.packageName), "%s", "sample") > 0, true); 108369570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.abi, sizeof(hapInfo.abi), "%s", "system64") > 0, true); 108469570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.hapPath, sizeof(hapInfo.hapPath), "%s", "./hnp_out") > 0, true); 108569570cc8Sopenharmony_ci 108669570cc8Sopenharmony_ci if (!installEnable) { 108769570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "hnp install enable false"; 108869570cc8Sopenharmony_ci } 108969570cc8Sopenharmony_ci 109069570cc8Sopenharmony_ci if (IsDeveloperModeOpen() && installEnable) { 109169570cc8Sopenharmony_ci { //param is invalid 109269570cc8Sopenharmony_ci ret = NativeInstallHnp(NULL, "./hnp_out", &hapInfo, 1); 109369570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_API_ERRNO_PARAM_INVALID); 109469570cc8Sopenharmony_ci } 109569570cc8Sopenharmony_ci { //ok 109669570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.hapPath, sizeof(hapInfo.hapPath), "%s", "test") > 0, true); 109769570cc8Sopenharmony_ci ret = NativeInstallHnp("10000", "./hnp_out", &hapInfo, 1); 109869570cc8Sopenharmony_ci EXPECT_EQ(ret, 0); 109969570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/outt", F_OK), 0); 110069570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out2", F_OK), 0); 110169570cc8Sopenharmony_ci } 110269570cc8Sopenharmony_ci } 110369570cc8Sopenharmony_ci 110469570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 110569570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 110669570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 110769570cc8Sopenharmony_ci 110869570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_001 end"; 110969570cc8Sopenharmony_ci} 111069570cc8Sopenharmony_ci 111169570cc8Sopenharmony_ci/** 111269570cc8Sopenharmony_ci* @tc.name: Hnp_Install_API_002 111369570cc8Sopenharmony_ci* @tc.desc: Verify set Arg if NativeInstallHnp succeed. 111469570cc8Sopenharmony_ci* @tc.type: FUNC 111569570cc8Sopenharmony_ci* @tc.require:issueI9DQSE 111669570cc8Sopenharmony_ci* @tc.author: 111769570cc8Sopenharmony_ci*/ 111869570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_API_002, TestSize.Level0) 111969570cc8Sopenharmony_ci{ 112069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_002 start"; 112169570cc8Sopenharmony_ci 112269570cc8Sopenharmony_ci int ret; 112369570cc8Sopenharmony_ci bool installEnable = IsHnpInstallEnable(); 112469570cc8Sopenharmony_ci 112569570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 112669570cc8Sopenharmony_ci 112769570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 112869570cc8Sopenharmony_ci 112969570cc8Sopenharmony_ci if (!installEnable) { 113069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "hnp install enable false"; 113169570cc8Sopenharmony_ci } 113269570cc8Sopenharmony_ci 113369570cc8Sopenharmony_ci if (IsDeveloperModeOpen() && installEnable) { 113469570cc8Sopenharmony_ci { //st dir path is invalid 113569570cc8Sopenharmony_ci struct HapInfo hapInfo; 113669570cc8Sopenharmony_ci (void)memset_s(&hapInfo, sizeof(HapInfo), 0, sizeof(HapInfo)); 113769570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.packageName, sizeof(hapInfo.packageName), "%s", "sample") > 0, true); 113869570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.abi, sizeof(hapInfo.abi), "%s", "system64") > 0, true); 113969570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.hapPath, sizeof(hapInfo.hapPath), "%s", "test") > 0, true); 114069570cc8Sopenharmony_ci ret = NativeInstallHnp("10001", "./hnp_out/", &hapInfo, 1); 114169570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_ERRNO_INSTALLER_GET_REALPATH_FAILED); 114269570cc8Sopenharmony_ci } 114369570cc8Sopenharmony_ci } 114469570cc8Sopenharmony_ci 114569570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 114669570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 114769570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 114869570cc8Sopenharmony_ci 114969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_002 end"; 115069570cc8Sopenharmony_ci} 115169570cc8Sopenharmony_ci 115269570cc8Sopenharmony_ci/** 115369570cc8Sopenharmony_ci* @tc.name: Hnp_Install_API_003 115469570cc8Sopenharmony_ci* @tc.desc: Verify more than 1 hnp package if NativeInstallHnp succeed. 115569570cc8Sopenharmony_ci* @tc.type: FUNC 115669570cc8Sopenharmony_ci* @tc.require:issueI9DQSE 115769570cc8Sopenharmony_ci* @tc.author: 115869570cc8Sopenharmony_ci*/ 115969570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_API_003, TestSize.Level0) 116069570cc8Sopenharmony_ci{ 116169570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_003 start"; 116269570cc8Sopenharmony_ci 116369570cc8Sopenharmony_ci int ret; 116469570cc8Sopenharmony_ci bool installEnable = IsHnpInstallEnable(); 116569570cc8Sopenharmony_ci 116669570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 116769570cc8Sopenharmony_ci 116869570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 116969570cc8Sopenharmony_ci 117069570cc8Sopenharmony_ci if (IsDeveloperModeOpen()) { 117169570cc8Sopenharmony_ci { //ok 117269570cc8Sopenharmony_ci struct HapInfo hapInfo; 117369570cc8Sopenharmony_ci (void)memset_s(&hapInfo, sizeof(HapInfo), 0, sizeof(HapInfo)); 117469570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.packageName, sizeof(hapInfo.packageName), "%s", "sample") > 0, true); 117569570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.hapPath, sizeof(hapInfo.hapPath), "%s", "test") > 0, true); 117669570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.abi, sizeof(hapInfo.abi), "%s", "system64") > 0, true); 117769570cc8Sopenharmony_ci ret = NativeInstallHnp("10000", "./hnp_out/", &hapInfo, 1); 117869570cc8Sopenharmony_ci if (installEnable) { 117969570cc8Sopenharmony_ci EXPECT_EQ(ret, 0); 118069570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/outt", F_OK), 0); 118169570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out2", F_OK), 0); 118269570cc8Sopenharmony_ci } else { 118369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "hnp install enable false"; 118469570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_API_ERRNO_HNP_INSTALL_DISABLED); 118569570cc8Sopenharmony_ci } 118669570cc8Sopenharmony_ci } 118769570cc8Sopenharmony_ci } 118869570cc8Sopenharmony_ci 118969570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 119069570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 119169570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 119269570cc8Sopenharmony_ci 119369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_003 end"; 119469570cc8Sopenharmony_ci} 119569570cc8Sopenharmony_ci 119669570cc8Sopenharmony_ci/** 119769570cc8Sopenharmony_ci* @tc.name: Hnp_Install_API_004 119869570cc8Sopenharmony_ci* @tc.desc: Verify develop mode NativeInstallHnp succeed. 119969570cc8Sopenharmony_ci* @tc.type: FUNC 120069570cc8Sopenharmony_ci* @tc.require:issueI9JCQ1 120169570cc8Sopenharmony_ci* @tc.author: 120269570cc8Sopenharmony_ci*/ 120369570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_Install_API_004, TestSize.Level0) 120469570cc8Sopenharmony_ci{ 120569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_004 start"; 120669570cc8Sopenharmony_ci 120769570cc8Sopenharmony_ci int ret; 120869570cc8Sopenharmony_ci 120969570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 121069570cc8Sopenharmony_ci 121169570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 121269570cc8Sopenharmony_ci 121369570cc8Sopenharmony_ci if (!IsHnpInstallEnable()) { 121469570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "hnp install enable false"; 121569570cc8Sopenharmony_ci } else { 121669570cc8Sopenharmony_ci { //ok 121769570cc8Sopenharmony_ci struct HapInfo hapInfo; 121869570cc8Sopenharmony_ci (void)memset_s(&hapInfo, sizeof(HapInfo), 0, sizeof(HapInfo)); 121969570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.packageName, sizeof(hapInfo.packageName), "%s", "sample") > 0, true); 122069570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.hapPath, sizeof(hapInfo.hapPath), "%s", "test") > 0, true); 122169570cc8Sopenharmony_ci EXPECT_EQ(sprintf_s(hapInfo.abi, sizeof(hapInfo.abi), "%s", "system64") > 0, true); 122269570cc8Sopenharmony_ci ret = NativeInstallHnp("10000", "./hnp_out/", &hapInfo, 1); 122369570cc8Sopenharmony_ci if (IsDeveloperModeOpen()) { 122469570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "this is developer mode"; 122569570cc8Sopenharmony_ci EXPECT_EQ(ret, 0); 122669570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/outt", F_OK), 0); 122769570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out2", F_OK), 0); 122869570cc8Sopenharmony_ci } else { 122969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "this is not developer mode"; 123069570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_API_NOT_IN_DEVELOPER_MODE); 123169570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/outt", F_OK), -1); 123269570cc8Sopenharmony_ci EXPECT_EQ(access(HNP_BASE_PATH"/hnppublic/bin/out2", F_OK), -1); 123369570cc8Sopenharmony_ci } 123469570cc8Sopenharmony_ci } 123569570cc8Sopenharmony_ci } 123669570cc8Sopenharmony_ci 123769570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 123869570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 123969570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 124069570cc8Sopenharmony_ci 124169570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_Install_API_004 end"; 124269570cc8Sopenharmony_ci} 124369570cc8Sopenharmony_ci 124469570cc8Sopenharmony_ci/** 124569570cc8Sopenharmony_ci* @tc.name: Hnp_RelPath_API_001 124669570cc8Sopenharmony_ci* @tc.desc: Verify HnpRelPath succeed. 124769570cc8Sopenharmony_ci* @tc.type: FUNC 124869570cc8Sopenharmony_ci* @tc.require:issueIANH44 124969570cc8Sopenharmony_ci* @tc.author: 125069570cc8Sopenharmony_ci*/ 125169570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_RelPath_API_001, TestSize.Level0) 125269570cc8Sopenharmony_ci{ 125369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_RelPath_API_001 start"; 125469570cc8Sopenharmony_ci 125569570cc8Sopenharmony_ci const char *fromPath = "test"; 125669570cc8Sopenharmony_ci const char *toPath = "test2"; 125769570cc8Sopenharmony_ci char relPath[MAX_FILE_PATH_LEN]{}; 125869570cc8Sopenharmony_ci 125969570cc8Sopenharmony_ci HnpRelPath(fromPath, toPath, relPath); 126069570cc8Sopenharmony_ci EXPECT_EQ(strcmp(relPath, "test2"), 0); 126169570cc8Sopenharmony_ci 126269570cc8Sopenharmony_ci const char *fromPath2 = "/aaa/bbb/ccc/ddd"; 126369570cc8Sopenharmony_ci const char *toPath2 = "/aaa/bbb/ccc/eeefff"; 126469570cc8Sopenharmony_ci char relPath2[MAX_FILE_PATH_LEN]{}; 126569570cc8Sopenharmony_ci 126669570cc8Sopenharmony_ci HnpRelPath(fromPath2, toPath2, relPath2); 126769570cc8Sopenharmony_ci EXPECT_EQ(strcmp(relPath2, "eeefff"), 0); 126869570cc8Sopenharmony_ci 126969570cc8Sopenharmony_ci const char *fromPath3 = "/aaa/bbb/bin/bbb/aaa"; 127069570cc8Sopenharmony_ci const char *toPath3 = "/aaa/bbb/bisheng/aaa"; 127169570cc8Sopenharmony_ci char relPath3[MAX_FILE_PATH_LEN]{}; 127269570cc8Sopenharmony_ci 127369570cc8Sopenharmony_ci HnpRelPath(fromPath3, toPath3, relPath3); 127469570cc8Sopenharmony_ci EXPECT_EQ(strcmp(relPath3, "../../bisheng/aaa"), 0); 127569570cc8Sopenharmony_ci 127669570cc8Sopenharmony_ci const char *fromPath4 = "/aaa/bbb/cccddd/aaa/bbb"; 127769570cc8Sopenharmony_ci const char *toPath4 = "/aaa/bbb/ccc/eeefff"; 127869570cc8Sopenharmony_ci char relPath4[MAX_FILE_PATH_LEN]{}; 127969570cc8Sopenharmony_ci 128069570cc8Sopenharmony_ci HnpRelPath(fromPath4, toPath4, relPath4); 128169570cc8Sopenharmony_ci EXPECT_EQ(strcmp(relPath4, "../../ccc/eeefff"), 0); 128269570cc8Sopenharmony_ci} 128369570cc8Sopenharmony_ci 128469570cc8Sopenharmony_ci/** 128569570cc8Sopenharmony_ci* @tc.name: Hnp_UnInstall_001 128669570cc8Sopenharmony_ci* @tc.desc: Verify set Arg if HnpCmdUnInstall succeed. 128769570cc8Sopenharmony_ci* @tc.type: FUNC 128869570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 128969570cc8Sopenharmony_ci* @tc.author: 129069570cc8Sopenharmony_ci*/ 129169570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_UnInstall_001, TestSize.Level0) 129269570cc8Sopenharmony_ci{ 129369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_001 start"; 129469570cc8Sopenharmony_ci 129569570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 129669570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample"), const_cast<char *>("1.1"), true, true, 129769570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 129869570cc8Sopenharmony_ci HnpInstall(const_cast<char *>("sample")); 129969570cc8Sopenharmony_ci 130069570cc8Sopenharmony_ci char arg1[] = "hnp"; 130169570cc8Sopenharmony_ci char arg2[] = "uninstall"; 130269570cc8Sopenharmony_ci 130369570cc8Sopenharmony_ci { // param num not enough 130469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2}; 130569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 130669570cc8Sopenharmony_ci 130769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), HNP_ERRNO_OPERATOR_ARGV_MISS); 130869570cc8Sopenharmony_ci } 130969570cc8Sopenharmony_ci { // param uid is invalid 131069570cc8Sopenharmony_ci char arg3[] = "-u"; 131169570cc8Sopenharmony_ci char arg4[] = "asd1231"; 131269570cc8Sopenharmony_ci char arg5[] = "-p"; 131369570cc8Sopenharmony_ci char arg6[] = "sample"; 131469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 131569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 131669570cc8Sopenharmony_ci 131769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), HNP_ERRNO_INSTALLER_ARGV_UID_INVALID); 131869570cc8Sopenharmony_ci } 131969570cc8Sopenharmony_ci { // ok 132069570cc8Sopenharmony_ci char arg3[] = "-u"; 132169570cc8Sopenharmony_ci char arg4[] = "10000"; 132269570cc8Sopenharmony_ci char arg5[] = "-p"; 132369570cc8Sopenharmony_ci char arg6[] = "sample"; 132469570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 132569570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 132669570cc8Sopenharmony_ci 132769570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), 0); 132869570cc8Sopenharmony_ci } 132969570cc8Sopenharmony_ci 133069570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 133169570cc8Sopenharmony_ci HnpPackWithBinDelete(); 133269570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 133369570cc8Sopenharmony_ci 133469570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_001 end"; 133569570cc8Sopenharmony_ci} 133669570cc8Sopenharmony_ci 133769570cc8Sopenharmony_ci/** 133869570cc8Sopenharmony_ci* @tc.name: Hnp_UnInstall_002 133969570cc8Sopenharmony_ci* @tc.desc: Verify cfg pack HnpCmdUnInstall succeed. 134069570cc8Sopenharmony_ci* @tc.type: FUNC 134169570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 134269570cc8Sopenharmony_ci* @tc.author: 134369570cc8Sopenharmony_ci*/ 134469570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_UnInstall_002, TestSize.Level0) 134569570cc8Sopenharmony_ci{ 134669570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_002 start"; 134769570cc8Sopenharmony_ci 134869570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 134969570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 135069570cc8Sopenharmony_ci HnpInstall(const_cast<char *>("sample")); 135169570cc8Sopenharmony_ci 135269570cc8Sopenharmony_ci char arg1[] = "hnp"; 135369570cc8Sopenharmony_ci char arg2[] = "uninstall"; 135469570cc8Sopenharmony_ci { // param uninstall path is invalid 135569570cc8Sopenharmony_ci char arg3[] = "-u"; 135669570cc8Sopenharmony_ci char arg4[] = "10000"; 135769570cc8Sopenharmony_ci char arg5[] = "-p"; 135869570cc8Sopenharmony_ci char arg6[] = "wechat"; 135969570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 136069570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 136169570cc8Sopenharmony_ci 136269570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), 0); 136369570cc8Sopenharmony_ci } 136469570cc8Sopenharmony_ci { // ok 136569570cc8Sopenharmony_ci char arg3[] = "-u"; 136669570cc8Sopenharmony_ci char arg4[] = "10000"; 136769570cc8Sopenharmony_ci char arg5[] = "-p"; 136869570cc8Sopenharmony_ci char arg6[] = "sample"; 136969570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 137069570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 137169570cc8Sopenharmony_ci 137269570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), 0); 137369570cc8Sopenharmony_ci } 137469570cc8Sopenharmony_ci 137569570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 137669570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 137769570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 137869570cc8Sopenharmony_ci 137969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_002 end"; 138069570cc8Sopenharmony_ci} 138169570cc8Sopenharmony_ci 138269570cc8Sopenharmony_ci/** 138369570cc8Sopenharmony_ci* @tc.name: Hnp_UnInstall_003 138469570cc8Sopenharmony_ci* @tc.desc: Verify set Arg if HnpCmdUnInstall succeed. 138569570cc8Sopenharmony_ci* @tc.type: FUNC 138669570cc8Sopenharmony_ci* @tc.require:issueI9BU5F 138769570cc8Sopenharmony_ci* @tc.author: 138869570cc8Sopenharmony_ci*/ 138969570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_UnInstall_003, TestSize.Level0) 139069570cc8Sopenharmony_ci{ 139169570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_003 start"; 139269570cc8Sopenharmony_ci 139369570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 139469570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_public"), const_cast<char *>("1.1"), true, true, 139569570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 139669570cc8Sopenharmony_ci HnpPackWithBin(const_cast<char *>("sample_private"), const_cast<char *>("1.1"), false, false, 139769570cc8Sopenharmony_ci S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH); 139869570cc8Sopenharmony_ci HnpInstall(const_cast<char *>("sample")); 139969570cc8Sopenharmony_ci 140069570cc8Sopenharmony_ci char arg1[] = "hnp"; 140169570cc8Sopenharmony_ci char arg2[] = "uninstall"; 140269570cc8Sopenharmony_ci 140369570cc8Sopenharmony_ci { // param software name is invalid 140469570cc8Sopenharmony_ci char arg3[] = "-u"; 140569570cc8Sopenharmony_ci char arg4[] = "10000"; 140669570cc8Sopenharmony_ci char arg5[] = "-p"; 140769570cc8Sopenharmony_ci char arg6[] = "wechat"; 140869570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 140969570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 141069570cc8Sopenharmony_ci 141169570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), 0); 141269570cc8Sopenharmony_ci } 141369570cc8Sopenharmony_ci { // ok 141469570cc8Sopenharmony_ci char arg3[] = "-u"; 141569570cc8Sopenharmony_ci char arg4[] = "10000"; 141669570cc8Sopenharmony_ci char arg5[] = "-p"; 141769570cc8Sopenharmony_ci char arg6[] = "sample"; 141869570cc8Sopenharmony_ci char* argv[] = {arg1, arg2, arg3, arg4, arg5, arg6}; 141969570cc8Sopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 142069570cc8Sopenharmony_ci 142169570cc8Sopenharmony_ci EXPECT_EQ(HnpCmdUnInstall(argc, argv), 0); 142269570cc8Sopenharmony_ci } 142369570cc8Sopenharmony_ci 142469570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 142569570cc8Sopenharmony_ci HnpPackWithBinDelete(); 142669570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 142769570cc8Sopenharmony_ci 142869570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_003 end"; 142969570cc8Sopenharmony_ci} 143069570cc8Sopenharmony_ci 143169570cc8Sopenharmony_ci/** 143269570cc8Sopenharmony_ci* @tc.name: Hnp_UnInstall_API_001 143369570cc8Sopenharmony_ci* @tc.desc: Verify param invalid API NativeUnInstallHnp succeed. 143469570cc8Sopenharmony_ci* @tc.type: FUNC 143569570cc8Sopenharmony_ci* @tc.require:issueI9DQSE 143669570cc8Sopenharmony_ci* @tc.author: 143769570cc8Sopenharmony_ci*/ 143869570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_UnInstall_API_001, TestSize.Level0) 143969570cc8Sopenharmony_ci{ 144069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_API_001 start"; 144169570cc8Sopenharmony_ci 144269570cc8Sopenharmony_ci int ret; 144369570cc8Sopenharmony_ci 144469570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 144569570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 144669570cc8Sopenharmony_ci HnpInstall(const_cast<char *>("sample")); 144769570cc8Sopenharmony_ci 144869570cc8Sopenharmony_ci if (IsDeveloperModeOpen()) { 144969570cc8Sopenharmony_ci { // param is invalid 145069570cc8Sopenharmony_ci ret = NativeUnInstallHnp(NULL, "sample"); 145169570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_API_ERRNO_PARAM_INVALID); 145269570cc8Sopenharmony_ci } 145369570cc8Sopenharmony_ci { // ok 145469570cc8Sopenharmony_ci ret = NativeUnInstallHnp("10000", "sample"); 145569570cc8Sopenharmony_ci EXPECT_EQ(ret, 0); 145669570cc8Sopenharmony_ci } 145769570cc8Sopenharmony_ci } 145869570cc8Sopenharmony_ci 145969570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 146069570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 146169570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 146269570cc8Sopenharmony_ci 146369570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_API_001 end"; 146469570cc8Sopenharmony_ci} 146569570cc8Sopenharmony_ci 146669570cc8Sopenharmony_ci/** 146769570cc8Sopenharmony_ci* @tc.name: Hnp_UnInstall_API_002 146869570cc8Sopenharmony_ci* @tc.desc: Verify path invalid API NativeUnInstallHnp succeed. 146969570cc8Sopenharmony_ci* @tc.type: FUNC 147069570cc8Sopenharmony_ci* @tc.require:issueI9DQSE 147169570cc8Sopenharmony_ci* @tc.author: 147269570cc8Sopenharmony_ci*/ 147369570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_UnInstall_API_002, TestSize.Level0) 147469570cc8Sopenharmony_ci{ 147569570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_API_002 start"; 147669570cc8Sopenharmony_ci 147769570cc8Sopenharmony_ci int ret; 147869570cc8Sopenharmony_ci 147969570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 148069570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 148169570cc8Sopenharmony_ci HnpInstall(const_cast<char *>("sample")); 148269570cc8Sopenharmony_ci 148369570cc8Sopenharmony_ci if (IsDeveloperModeOpen()) { 148469570cc8Sopenharmony_ci { // param uninstall path is invalid 148569570cc8Sopenharmony_ci ret = NativeUnInstallHnp("10001", "wechat"); 148669570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_ERRNO_UNINSTALLER_HNP_PATH_NOT_EXIST); 148769570cc8Sopenharmony_ci } 148869570cc8Sopenharmony_ci } 148969570cc8Sopenharmony_ci 149069570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 149169570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 149269570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 149369570cc8Sopenharmony_ci 149469570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_API_002 end"; 149569570cc8Sopenharmony_ci} 149669570cc8Sopenharmony_ci 149769570cc8Sopenharmony_ci/** 149869570cc8Sopenharmony_ci* @tc.name: Hnp_UnInstall_API_003 149969570cc8Sopenharmony_ci* @tc.desc: Verify develop mode NativeUnInstallHnp succeed. 150069570cc8Sopenharmony_ci* @tc.type: FUNC 150169570cc8Sopenharmony_ci* @tc.require:issueI9JCQ1 150269570cc8Sopenharmony_ci* @tc.author: 150369570cc8Sopenharmony_ci*/ 150469570cc8Sopenharmony_ciHWTEST_F(HnpInstallerTest, Hnp_UnInstall_API_003, TestSize.Level0) 150569570cc8Sopenharmony_ci{ 150669570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_API_003 start"; 150769570cc8Sopenharmony_ci 150869570cc8Sopenharmony_ci int ret; 150969570cc8Sopenharmony_ci 151069570cc8Sopenharmony_ci EXPECT_EQ(mkdir(HNP_BASE_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH), 0); 151169570cc8Sopenharmony_ci HnpPackWithCfg(true, true); 151269570cc8Sopenharmony_ci HnpInstall(const_cast<char *>("sample")); 151369570cc8Sopenharmony_ci 151469570cc8Sopenharmony_ci { 151569570cc8Sopenharmony_ci ret = NativeUnInstallHnp("10000", "sample"); 151669570cc8Sopenharmony_ci if (IsDeveloperModeOpen()) { 151769570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "this is developer mode"; 151869570cc8Sopenharmony_ci EXPECT_EQ(ret, 0); 151969570cc8Sopenharmony_ci } else { 152069570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "this is not developer mode"; 152169570cc8Sopenharmony_ci EXPECT_EQ(ret, HNP_API_NOT_IN_DEVELOPER_MODE); 152269570cc8Sopenharmony_ci } 152369570cc8Sopenharmony_ci } 152469570cc8Sopenharmony_ci 152569570cc8Sopenharmony_ci HnpDeleteFolder(HNP_BASE_PATH); 152669570cc8Sopenharmony_ci HnpPackWithCfgDelete(); 152769570cc8Sopenharmony_ci remove(HNP_PACKAGE_INFO_JSON_FILE_PATH); 152869570cc8Sopenharmony_ci 152969570cc8Sopenharmony_ci GTEST_LOG_(INFO) << "Hnp_UnInstall_API_003 end"; 153069570cc8Sopenharmony_ci} 153169570cc8Sopenharmony_ci 153269570cc8Sopenharmony_ci}