1 /*
2 * Copyright (c) 2023 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 "ace_forward_compatibility.h"
18
19 using namespace testing;
20 using namespace testing::ext;
21
22 namespace OHOS::Ace {
23 class AceForwardCompatibilityTest : public testing::Test {};
24
25 /**
26 * @tc.name: TestWithInit
27 * @tc.desc: test without init
28 * @tc.type: FUNC
29 */
HWTEST_F(AceForwardCompatibilityTest, TestWithInit, TestSize.Level1)30 HWTEST_F(AceForwardCompatibilityTest, TestWithInit, TestSize.Level1)
31 {
32 constexpr char ARKUI_LIB_NAME_COMPATIBLE[] = "libace_compatible.z.so";
33 AceForwardCompatibility::Init("do not care", 10, false);
34 AceForwardCompatibility::ReclaimFileCache(0);
35 AceForwardCompatibility::ReclaimFileCache(getpid());
36 EXPECT_TRUE(AceForwardCompatibility::IsForceOldPipeline());
37 EXPECT_TRUE(AceForwardCompatibility::PipelineChanged());
38 EXPECT_STREQ(AceForwardCompatibility::GetAceLibName(), ARKUI_LIB_NAME_COMPATIBLE);
39 }
40
41 /**
42 * @tc.name: TestIsForceOldPipeline001
43 * @tc.desc: test without TestIsForceOldPipeline
44 * @tc.type: FUNC
45 */
HWTEST_F(AceForwardCompatibilityTest, TestIsForceOldPipeline001, TestSize.Level1)46 HWTEST_F(AceForwardCompatibilityTest, TestIsForceOldPipeline001, TestSize.Level1)
47 {
48 AceForwardCompatibility::Init("TestIsForceOldPipeline", 9, false);
49 EXPECT_TRUE(AceForwardCompatibility::IsForceOldPipeline());
50 }
51
52 /**
53 * @tc.name: TestIsForceOldPipeline002
54 * @tc.desc: test without TestIsForceOldPipeline
55 * @tc.type: FUNC
56 */
HWTEST_F(AceForwardCompatibilityTest, TestIsForceOldPipeline002, TestSize.Level1)57 HWTEST_F(AceForwardCompatibilityTest, TestIsForceOldPipeline002, TestSize.Level1)
58 {
59 AceForwardCompatibility::Init("TestIsForceOldPipeline", 9, true);
60 EXPECT_TRUE(AceForwardCompatibility::IsForceOldPipeline());
61 }
62
63 /**
64 * @tc.name: TestIsNewPipeline001
65 * @tc.desc: test TestIsNewPipeline
66 * @tc.type: FUNC
67 */
HWTEST_F(AceForwardCompatibilityTest, TestIsNewPipeline001, TestSize.Level1)68 HWTEST_F(AceForwardCompatibilityTest, TestIsNewPipeline001, TestSize.Level1)
69 {
70 AceForwardCompatibility::Init("TestIsNewPipeline", 10, false);
71 EXPECT_FALSE(AceForwardCompatibility::IsNewPipeline());
72 }
73
74 /**
75 * @tc.name: TestIsNewPipeline002
76 * @tc.desc: test TestIsNewPipeline
77 * @tc.type: FUNC
78 */
HWTEST_F(AceForwardCompatibilityTest, TestIsNewPipeline002, TestSize.Level1)79 HWTEST_F(AceForwardCompatibilityTest, TestIsNewPipeline002, TestSize.Level1)
80 {
81 AceForwardCompatibility::Init("TestIsForceOldPipeline", 9, true);
82 EXPECT_FALSE(AceForwardCompatibility::IsNewPipeline());
83 }
84
85 /**
86 * @tc.name: TestIsUseNG001
87 * @tc.desc: isNewPipeline_ is true
88 * @tc.type: FUNC
89 */
HWTEST_F(AceForwardCompatibilityTest, TestIsUseNG001, TestSize.Level1)90 HWTEST_F(AceForwardCompatibilityTest, TestIsUseNG001, TestSize.Level1)
91 {
92 AceForwardCompatibility::Init("TestIsUseNG", 10, false);
93 EXPECT_TRUE(AceForwardCompatibility::IsUseNG());
94 }
95
96 /**
97 * @tc.name: TestIsUseNG002
98 * @tc.desc: isNewPipeline_ is false
99 * @tc.type: FUNC
100 */
HWTEST_F(AceForwardCompatibilityTest, TestIsUseNG002, TestSize.Level1)101 HWTEST_F(AceForwardCompatibilityTest, TestIsUseNG002, TestSize.Level1)
102 {
103 AceForwardCompatibility::Init("TestIsForceOldPipeline", 10, true);
104 EXPECT_FALSE(AceForwardCompatibility::IsUseNG());
105 }
106
107 /**
108 * @tc.name: TestPipelineChanged001
109 * @tc.desc: isNewPipeline_ and isNewAppspawn_ is true
110 * @tc.type: FUNC
111 */
HWTEST_F(AceForwardCompatibilityTest, TestPipelineChanged001, TestSize.Level1)112 HWTEST_F(AceForwardCompatibilityTest, TestPipelineChanged001, TestSize.Level1)
113 {
114 AceForwardCompatibility::Init("TestPipelineChanged", 9, false);
115 EXPECT_TRUE(AceForwardCompatibility::PipelineChanged());
116 }
117
118 /**
119 * @tc.name: TestGetAceLibName001
120 * @tc.desc: test ARKUI_LIB_NAME_COMPATIBLE
121 * @tc.type: FUNC
122 */
HWTEST_F(AceForwardCompatibilityTest, TestGetAceLibName001, TestSize.Level1)123 HWTEST_F(AceForwardCompatibilityTest, TestGetAceLibName001, TestSize.Level1)
124 {
125 AceForwardCompatibility::Init("TestGetAceLibName", 9, false);
126 constexpr char aceLibName[] = "libace_compatible.z.so";
127 EXPECT_STREQ(AceForwardCompatibility::GetAceLibName(), aceLibName);
128 }
129 } // namespace OHOS::ACE
130