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 "data_protect.h" 17 18 #include <string> 19 #include <gtest/gtest.h> 20 21 namespace panda::panda_file::test { 22 23 HWTEST(DataProtect, PacString, testing::ext::TestSize.Level0) 24 { 25 StringPacProtect pstr("Hello World!"); 26 ASSERT_STREQ(pstr.GetOriginString().c_str(), "Hello World!"); 27 pstr.Append('a'); 28 pstr.Append('a'); 29 pstr.Append('a'); 30 pstr.Append('a'); 31 ASSERT_STREQ(pstr.GetOriginString().c_str(), "Hello World!aaaa"); 32 pstr.Append(" QWERT"); 33 ASSERT_STREQ(pstr.GetOriginString().c_str(), "Hello World!aaaa QWERT"); 34 pstr.Append('1'); 35 ASSERT_STREQ(pstr.GetOriginString().c_str(), "Hello World!aaaa QWERT1"); 36 ASSERT_TRUE(pstr.CompareStringWithPacedString("Hello World!aaaa QWERT1")); 37 } 38 39 HWTEST(DataProtect, PacBool, testing::ext::TestSize.Level0) 40 { 41 BoolPacProtect flag(true); 42 ASSERT_TRUE(flag.GetBool()); 43 flag.Update(false); 44 ASSERT_TRUE(!flag.GetBool()); 45 } 46 47 } // namespace panda::panda_file::test 48