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 <gtest/gtest.h> 17 #include "erofs_remount_overlay.h" 18 #include "param_stub.h" 19 #include "fs_manager.h" 20 21 #define MODEM_DRIVER_MNT_PATH STARTUP_INIT_UT_PATH"/vendor/modem/modem_driver" 22 #define MODEM_VENDOR_MNT_PATH STARTUP_INIT_UT_PATH"/vendor/modem/modem_vendor" 23 #define MODEM_FW_MNT_PATH STARTUP_INIT_UT_PATH"/vendor/modem/modem_fw" 24 #define MODEM_DRIVER_EXCHANGE_PATH STARTUP_INIT_UT_PATH"/mnt/driver_exchange" 25 #define MODEM_VENDOR_EXCHANGE_PATH STARTUP_INIT_UT_PATH"/mnt/vendor_exchange" 26 #define MODEM_FW_EXCHANGE_PATH STARTUP_INIT_UT_PATH"/mnt/fw_exchange" 27 #define REMOUNT_RESULT_PATH STARTUP_INIT_UT_PATH"/data/service/el1/startup/remount/" 28 #define REMOUNT_RESULT_FLAG STARTUP_INIT_UT_PATH"/data/service/el1/startup/remount/remount.result.done" 29 #define DPA_MNT_PATH STARTUP_INIT_UT_PATH"/vendor/communication/dpa" 30 #define DPA_EXCHANGE_PATH STARTUP_INIT_UT_PATH"/mnt/dpa_exchange" 31 32 using namespace std; 33 using namespace testing::ext; 34 35 namespace init_ut { 36 class ErofsRemountUnitTest : public testing::Test { 37 public: SetUpTestCase(void)38 static void SetUpTestCase(void) {}; TearDownTestCase(void)39 static void TearDownTestCase(void) {}; SetUp(void)40 void SetUp(void) {}; TearDown(void)41 void TearDown(void) {}; 42 }; 43 44 HWTEST_F(ErofsRemountUnitTest, Init_GetRemountResult_001, TestSize.Level0) 45 { 46 RemountOverlay(); 47 CheckAndCreateDir(REMOUNT_RESULT_PATH); 48 SetRemountResultFlag(); 49 int ret = GetRemountResult(); 50 EXPECT_EQ(ret, 0); 51 } 52 53 HWTEST_F(ErofsRemountUnitTest, Init_Modem2Exchange_001, TestSize.Level0) 54 { 55 const char *srcPath = STARTUP_INIT_UT_PATH"/data/modem2Exchange"; 56 const char *targetPath = STARTUP_INIT_UT_PATH"/data/modem2Exchangetarget"; 57 58 CheckAndCreateDir(srcPath); 59 CheckAndCreateDir(targetPath); 60 61 SetStubResult(STUB_MOUNT, -1); 62 int ret = Modem2Exchange(srcPath, targetPath); 63 EXPECT_EQ(ret, -1); 64 65 SetStubResult(STUB_MOUNT, 0); 66 ret = Modem2Exchange(srcPath, targetPath); 67 EXPECT_EQ(ret, 0); 68 69 rmdir(srcPath); 70 rmdir(targetPath); 71 } 72 73 HWTEST_F(ErofsRemountUnitTest, Init_ExchangeToMode_001, TestSize.Level0) 74 { 75 const char *srcPath = STARTUP_INIT_UT_PATH"/data/Exchange2Mode"; 76 const char *targetPath = STARTUP_INIT_UT_PATH"/data/Exchange2Modetarget"; 77 78 int ret = Exchange2Modem(srcPath, targetPath); 79 EXPECT_EQ(ret, 0); 80 81 CheckAndCreateDir(srcPath); 82 CheckAndCreateDir(targetPath); 83 84 SetStubResult(STUB_MOUNT, 0); 85 SetStubResult(STUB_UMOUNT, 0); 86 87 ret = Exchange2Modem(srcPath, targetPath); 88 EXPECT_EQ(ret, 0); 89 90 CheckAndCreateDir(targetPath); 91 SetStubResult(STUB_MOUNT, -1); 92 SetStubResult(STUB_UMOUNT, -1); 93 94 Exchange2Modem(srcPath, targetPath); 95 EXPECT_EQ(ret, 0); 96 97 rmdir(srcPath); 98 rmdir(targetPath); 99 } 100 101 HWTEST_F(ErofsRemountUnitTest, Init_OverlayRemountVendorPre_001, TestSize.Level0) 102 { 103 CheckAndCreateDir(MODEM_DRIVER_MNT_PATH"/"); 104 CheckAndCreateDir(MODEM_VENDOR_MNT_PATH"/"); 105 CheckAndCreateDir(MODEM_FW_MNT_PATH"/"); 106 CheckAndCreateDir(DPA_MNT_PATH"/"); 107 CheckAndCreateDir(STARTUP_INIT_UT_PATH"/mnt/"); 108 109 OverlayRemountVendorPre(); 110 EXPECT_EQ(access(MODEM_DRIVER_MNT_PATH, F_OK), 0); 111 EXPECT_EQ(access(MODEM_DRIVER_EXCHANGE_PATH, F_OK), 0); 112 OverlayRemountVendorPost(); 113 114 rmdir(MODEM_DRIVER_MNT_PATH); 115 rmdir(MODEM_VENDOR_MNT_PATH); 116 rmdir(MODEM_FW_MNT_PATH); 117 rmdir(MODEM_DRIVER_EXCHANGE_PATH); 118 rmdir(MODEM_VENDOR_EXCHANGE_PATH); 119 rmdir(MODEM_FW_EXCHANGE_PATH); 120 rmdir(DPA_EXCHANGE_PATH); 121 } 122 }