1f6603c60Sopenharmony_ci/* 2f6603c60Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3f6603c60Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4f6603c60Sopenharmony_ci * you may not use this file except in compliance with the License. 5f6603c60Sopenharmony_ci * You may obtain a copy of the License at 6f6603c60Sopenharmony_ci * 7f6603c60Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8f6603c60Sopenharmony_ci * 9f6603c60Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10f6603c60Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11f6603c60Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12f6603c60Sopenharmony_ci * See the License for the specific language governing permissions and 13f6603c60Sopenharmony_ci * limitations under the License. 14f6603c60Sopenharmony_ci */ 15f6603c60Sopenharmony_ci 16f6603c60Sopenharmony_ci#include <strings.h> 17f6603c60Sopenharmony_ci#include <wctype.h> 18f6603c60Sopenharmony_ci#include <wchar.h> 19f6603c60Sopenharmony_ci 20f6603c60Sopenharmony_ci#include "gtest/gtest.h" 21f6603c60Sopenharmony_ci#include "log.h" 22f6603c60Sopenharmony_ci#include "utils.h" 23f6603c60Sopenharmony_ci 24f6603c60Sopenharmony_ciusing namespace testing::ext; 25f6603c60Sopenharmony_ci 26f6603c60Sopenharmony_ciclass ActsUtilStringOperApiTest : public testing::Test { 27f6603c60Sopenharmony_cipublic: 28f6603c60Sopenharmony_ci locale_t g_ausoaLocale; 29f6603c60Sopenharmony_ciprotected: 30f6603c60Sopenharmony_ci // SetUpTestCase: Testsuit setup, run before 1st testcase 31f6603c60Sopenharmony_ci static void SetUpTestCase(void) 32f6603c60Sopenharmony_ci { 33f6603c60Sopenharmony_ci } 34f6603c60Sopenharmony_ci // TearDownTestCase: Testsuit teardown, run after last testcase 35f6603c60Sopenharmony_ci static void TearDownTestCase(void) 36f6603c60Sopenharmony_ci { 37f6603c60Sopenharmony_ci } 38f6603c60Sopenharmony_ci // Testcase setup 39f6603c60Sopenharmony_ci virtual void SetUp() 40f6603c60Sopenharmony_ci { 41f6603c60Sopenharmony_ci g_ausoaLocale = newlocale(LC_ALL_MASK, "", (locale_t)0); 42f6603c60Sopenharmony_ci } 43f6603c60Sopenharmony_ci // Testcase teardown 44f6603c60Sopenharmony_ci virtual void TearDown() 45f6603c60Sopenharmony_ci { 46f6603c60Sopenharmony_ci freelocale(g_ausoaLocale); 47f6603c60Sopenharmony_ci } 48f6603c60Sopenharmony_ci}; 49f6603c60Sopenharmony_ci 50f6603c60Sopenharmony_ci/** 51f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFS_0100 52f6603c60Sopenharmony_ci* @tc.name test fss api with digit 1 53f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 54f6603c60Sopenharmony_ci*/ 55f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFss0100, Function | MediumTest | Level1) { 56f6603c60Sopenharmony_ci int paraValue; 57f6603c60Sopenharmony_ci int returnVal; 58f6603c60Sopenharmony_ci 59f6603c60Sopenharmony_ci paraValue = 1; 60f6603c60Sopenharmony_ci returnVal = ffs(paraValue); 61f6603c60Sopenharmony_ci LOGD(" ffs returnVal:='%d'\n", returnVal); 62f6603c60Sopenharmony_ci ASSERT_TRUE(1 == returnVal) << "ErrInfo: ffs returnVal:='" << returnVal << "'"; 63f6603c60Sopenharmony_ci} 64f6603c60Sopenharmony_ci 65f6603c60Sopenharmony_ci/** 66f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFS_0200 67f6603c60Sopenharmony_ci* @tc.name test fss api with digit 0 68f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 69f6603c60Sopenharmony_ci*/ 70f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFss0200, Function | MediumTest | Level1) { 71f6603c60Sopenharmony_ci int paraValue; 72f6603c60Sopenharmony_ci int returnVal; 73f6603c60Sopenharmony_ci 74f6603c60Sopenharmony_ci paraValue = 0; 75f6603c60Sopenharmony_ci returnVal = ffs(paraValue); 76f6603c60Sopenharmony_ci LOGD(" ffs returnVal:='%d'\n", returnVal); 77f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: ffs returnVal:='" << returnVal << "'"; 78f6603c60Sopenharmony_ci} 79f6603c60Sopenharmony_ci 80f6603c60Sopenharmony_ci/** 81f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFS_0300 82f6603c60Sopenharmony_ci* @tc.name test fss api with xdigit 83f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 84f6603c60Sopenharmony_ci*/ 85f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFss0300, Function | MediumTest | Level1) { 86f6603c60Sopenharmony_ci int paraValue; 87f6603c60Sopenharmony_ci int returnVal; 88f6603c60Sopenharmony_ci 89f6603c60Sopenharmony_ci paraValue = 0x8000; 90f6603c60Sopenharmony_ci returnVal = ffs(paraValue); 91f6603c60Sopenharmony_ci LOGD(" ffs returnVal:='%d'\n", returnVal); 92f6603c60Sopenharmony_ci ASSERT_TRUE(16 == returnVal) << "ErrInfo: ffs returnVal:='" << returnVal << "'"; 93f6603c60Sopenharmony_ci} 94f6603c60Sopenharmony_ci 95f6603c60Sopenharmony_ci/** 96f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFSL_0400 97f6603c60Sopenharmony_ci* @tc.name test fssl api with digit 1 98f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 99f6603c60Sopenharmony_ci*/ 100f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFssl0400, Function | MediumTest | Level1) { 101f6603c60Sopenharmony_ci long int paraValue; 102f6603c60Sopenharmony_ci int returnVal; 103f6603c60Sopenharmony_ci 104f6603c60Sopenharmony_ci paraValue = 1; 105f6603c60Sopenharmony_ci returnVal = ffsl(paraValue); 106f6603c60Sopenharmony_ci LOGD(" ffsl returnVal:='%d'\n", returnVal); 107f6603c60Sopenharmony_ci ASSERT_TRUE(1 == returnVal) << "ErrInfo: ffsl returnVal:='" << returnVal << "'"; 108f6603c60Sopenharmony_ci} 109f6603c60Sopenharmony_ci 110f6603c60Sopenharmony_ci/** 111f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFSL_0500 112f6603c60Sopenharmony_ci* @tc.name test fssl api with digit 0 113f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 114f6603c60Sopenharmony_ci*/ 115f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFssl0500, Function | MediumTest | Level1) { 116f6603c60Sopenharmony_ci long int paraValue; 117f6603c60Sopenharmony_ci int returnVal; 118f6603c60Sopenharmony_ci 119f6603c60Sopenharmony_ci paraValue = 0; 120f6603c60Sopenharmony_ci returnVal = ffsl(paraValue); 121f6603c60Sopenharmony_ci LOGD(" ffsl returnVal:='%d'\n", returnVal); 122f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: ffsl returnVal:='" << returnVal << "'"; 123f6603c60Sopenharmony_ci} 124f6603c60Sopenharmony_ci 125f6603c60Sopenharmony_ci/** 126f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFSL_0600 127f6603c60Sopenharmony_ci* @tc.name test fssl api with xdigit 128f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 129f6603c60Sopenharmony_ci*/ 130f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFssl0600, Function | MediumTest | Level1) { 131f6603c60Sopenharmony_ci long int paraValue; 132f6603c60Sopenharmony_ci int returnVal; 133f6603c60Sopenharmony_ci 134f6603c60Sopenharmony_ci paraValue = 0x8000; 135f6603c60Sopenharmony_ci returnVal = ffsl(paraValue); 136f6603c60Sopenharmony_ci LOGD(" ffsl returnVal:='%d'\n", returnVal); 137f6603c60Sopenharmony_ci ASSERT_TRUE(16 == returnVal) << "ErrInfo: ffsl returnVal:='" << returnVal << "'"; 138f6603c60Sopenharmony_ci} 139f6603c60Sopenharmony_ci 140f6603c60Sopenharmony_ci/** 141f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFSLL_0700 142f6603c60Sopenharmony_ci* @tc.name test fssll api with digit 1 143f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 144f6603c60Sopenharmony_ci*/ 145f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFssll0700, Function | MediumTest | Level1) { 146f6603c60Sopenharmony_ci long long int paraValue; 147f6603c60Sopenharmony_ci int returnVal; 148f6603c60Sopenharmony_ci 149f6603c60Sopenharmony_ci paraValue = 1; 150f6603c60Sopenharmony_ci returnVal = ffsll(paraValue); 151f6603c60Sopenharmony_ci LOGD(" ffsll returnVal:='%d'\n", returnVal); 152f6603c60Sopenharmony_ci ASSERT_TRUE(1 == returnVal) << "ErrInfo: ffsll returnVal:='" << returnVal << "'"; 153f6603c60Sopenharmony_ci} 154f6603c60Sopenharmony_ci 155f6603c60Sopenharmony_ci/** 156f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFSLL_0800 157f6603c60Sopenharmony_ci* @tc.name test fssll api with digit 0 158f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 159f6603c60Sopenharmony_ci*/ 160f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFssll0800, Function | MediumTest | Level1) { 161f6603c60Sopenharmony_ci long long int paraValue; 162f6603c60Sopenharmony_ci int returnVal; 163f6603c60Sopenharmony_ci 164f6603c60Sopenharmony_ci paraValue = 0; 165f6603c60Sopenharmony_ci returnVal = ffsll(paraValue); 166f6603c60Sopenharmony_ci LOGD(" ffsll returnVal:='%d'\n", returnVal); 167f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: ffsll returnVal:='" << returnVal << "'"; 168f6603c60Sopenharmony_ci} 169f6603c60Sopenharmony_ci 170f6603c60Sopenharmony_ci/** 171f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_FFSLL_0900 172f6603c60Sopenharmony_ci* @tc.name test fssll api with xdigit 173f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 174f6603c60Sopenharmony_ci*/ 175f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testFssll0900, Function | MediumTest | Level1) { 176f6603c60Sopenharmony_ci long long int paraValue; 177f6603c60Sopenharmony_ci int returnVal; 178f6603c60Sopenharmony_ci 179f6603c60Sopenharmony_ci paraValue = 0x800000000000; 180f6603c60Sopenharmony_ci returnVal = ffsll(paraValue); 181f6603c60Sopenharmony_ci LOGD(" ffsll returnVal:='%d'\n", returnVal); 182f6603c60Sopenharmony_ci ASSERT_TRUE(48 == returnVal) << "ErrInfo: ffsll returnVal:='" << returnVal << "'"; 183f6603c60Sopenharmony_ci} 184f6603c60Sopenharmony_ci 185f6603c60Sopenharmony_ci/** 186f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCWIDTH_1000 187f6603c60Sopenharmony_ci* @tc.name test wcwidth api with null wide character 188f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 189f6603c60Sopenharmony_ci*/ 190f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcwidth1000, Function | MediumTest | Level1) { 191f6603c60Sopenharmony_ci wchar_t wideChar; 192f6603c60Sopenharmony_ci int returnVal; 193f6603c60Sopenharmony_ci 194f6603c60Sopenharmony_ci wideChar = '\0'; 195f6603c60Sopenharmony_ci returnVal = wcwidth(wideChar); 196f6603c60Sopenharmony_ci LOGD(" wcwidth returnVal:='%d'\n", returnVal); 197f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcwidth returnVal:='" << returnVal << "'"; 198f6603c60Sopenharmony_ci} 199f6603c60Sopenharmony_ci 200f6603c60Sopenharmony_ci/** 201f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCWIDTH_1100 202f6603c60Sopenharmony_ci* @tc.name test wcwidth api with upper alpha 203f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 204f6603c60Sopenharmony_ci*/ 205f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcwidth1100, Function | MediumTest | Level1) { 206f6603c60Sopenharmony_ci wchar_t wideChar; 207f6603c60Sopenharmony_ci int returnVal; 208f6603c60Sopenharmony_ci 209f6603c60Sopenharmony_ci wideChar = 'A'; 210f6603c60Sopenharmony_ci returnVal = wcwidth(wideChar); 211f6603c60Sopenharmony_ci LOGD(" wcwidth returnVal:='%d'\n", returnVal); 212f6603c60Sopenharmony_ci ASSERT_TRUE(1 == returnVal) << "ErrInfo: wcwidth returnVal:='" << returnVal << "'"; 213f6603c60Sopenharmony_ci} 214f6603c60Sopenharmony_ci 215f6603c60Sopenharmony_ci/** 216f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCTYPE_1200 217f6603c60Sopenharmony_ci* @tc.name test wctype api with alnum 218f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 219f6603c60Sopenharmony_ci*/ 220f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWctype1200, Function | MediumTest | Level1) { 221f6603c60Sopenharmony_ci const char *paraVal = "alnum"; 222f6603c60Sopenharmony_ci wctype_t returnVal; 223f6603c60Sopenharmony_ci 224f6603c60Sopenharmony_ci returnVal = wctype(paraVal); 225f6603c60Sopenharmony_ci LOGD(" wcwidth returnVal:='%d'\n", returnVal); 226f6603c60Sopenharmony_ci ASSERT_TRUE(returnVal != 0) << "ErrInfo: wcwidth returnVal:='" << returnVal << "'"; 227f6603c60Sopenharmony_ci} 228f6603c60Sopenharmony_ci 229f6603c60Sopenharmony_ci/** 230f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCTYPE_1300 231f6603c60Sopenharmony_ci* @tc.name test wctype api with alnumalpha 232f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 233f6603c60Sopenharmony_ci*/ 234f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWctype1300, Function | MediumTest | Level1) { 235f6603c60Sopenharmony_ci const char *paraVal = "alnumalpha"; 236f6603c60Sopenharmony_ci wctype_t returnVal; 237f6603c60Sopenharmony_ci 238f6603c60Sopenharmony_ci returnVal = wctype(paraVal); 239f6603c60Sopenharmony_ci LOGD(" wcwidth returnVal:='%d'\n", returnVal); 240f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcwidth returnVal:='" << returnVal << "'"; 241f6603c60Sopenharmony_ci} 242f6603c60Sopenharmony_ci 243f6603c60Sopenharmony_ci/** 244f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCTYPE_L_1400 245f6603c60Sopenharmony_ci* @tc.name test wctype_l api with alnum 246f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 247f6603c60Sopenharmony_ci*/ 248f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWctypeL1400, Function | MediumTest | Level1) { 249f6603c60Sopenharmony_ci const char *paraVal = "alnum"; 250f6603c60Sopenharmony_ci wctype_t returnVal; 251f6603c60Sopenharmony_ci 252f6603c60Sopenharmony_ci returnVal = wctype_l(paraVal, g_ausoaLocale); 253f6603c60Sopenharmony_ci LOGD(" wctype_l returnVal:='%d'\n", returnVal); 254f6603c60Sopenharmony_ci ASSERT_TRUE(returnVal != 0) << "ErrInfo: wctype_l returnVal:='" << returnVal << "'"; 255f6603c60Sopenharmony_ci} 256f6603c60Sopenharmony_ci 257f6603c60Sopenharmony_ci/** 258f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCTYPE_L_1500 259f6603c60Sopenharmony_ci* @tc.name test wctype_l api with alnumalpha 260f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 261f6603c60Sopenharmony_ci*/ 262f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWctypeL1500, Function | MediumTest | Level1) { 263f6603c60Sopenharmony_ci const char *paraVal = "alnumalpha"; 264f6603c60Sopenharmony_ci wctype_t returnVal; 265f6603c60Sopenharmony_ci 266f6603c60Sopenharmony_ci returnVal = wctype_l(paraVal, g_ausoaLocale); 267f6603c60Sopenharmony_ci LOGD(" wctype_l returnVal:='%d'\n", returnVal); 268f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wctype_l returnVal:='" << returnVal << "'"; 269f6603c60Sopenharmony_ci} 270f6603c60Sopenharmony_ci 271f6603c60Sopenharmony_ci/** 272f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_MBLEN_1600 273f6603c60Sopenharmony_ci* @tc.name test mblen api 274f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 275f6603c60Sopenharmony_ci*/ 276f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testMblen1600, Function | MediumTest | Level1) { 277f6603c60Sopenharmony_ci const char *paraVal = nullptr; 278f6603c60Sopenharmony_ci size_t sizeVal; 279f6603c60Sopenharmony_ci int returnVal; 280f6603c60Sopenharmony_ci 281f6603c60Sopenharmony_ci paraVal = "a"; 282f6603c60Sopenharmony_ci sizeVal = 1; 283f6603c60Sopenharmony_ci returnVal = mblen(paraVal, sizeVal); 284f6603c60Sopenharmony_ci LOGD(" mblen returnVal:='%d'\n", returnVal); 285f6603c60Sopenharmony_ci ASSERT_TRUE(1 == returnVal) << "ErrInfo: mblen returnVal:='" << returnVal << "'"; 286f6603c60Sopenharmony_ci} 287f6603c60Sopenharmony_ci 288f6603c60Sopenharmony_ci/** 289f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_MBLEN_1700 290f6603c60Sopenharmony_ci* @tc.name test mbrlen api 291f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 292f6603c60Sopenharmony_ci*/ 293f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testMbrlen1700, Function | MediumTest | Level1) { 294f6603c60Sopenharmony_ci const char *paraVal = nullptr; 295f6603c60Sopenharmony_ci size_t sizeVal; 296f6603c60Sopenharmony_ci mbstate_t *psVal = nullptr; 297f6603c60Sopenharmony_ci size_t returnVal; 298f6603c60Sopenharmony_ci 299f6603c60Sopenharmony_ci paraVal = "a"; 300f6603c60Sopenharmony_ci sizeVal = 1; 301f6603c60Sopenharmony_ci returnVal = mbrlen(paraVal, sizeVal, psVal); 302f6603c60Sopenharmony_ci LOGD(" mbrlen returnVal:='%d'\n", returnVal); 303f6603c60Sopenharmony_ci ASSERT_TRUE(1 == returnVal) << "ErrInfo: mbrlen returnVal:='" << returnVal << "'"; 304f6603c60Sopenharmony_ci} 305f6603c60Sopenharmony_ci 306f6603c60Sopenharmony_ci/** 307f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCPCPY_1800 308f6603c60Sopenharmony_ci* @tc.name test wcpcpy api 309f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 310f6603c60Sopenharmony_ci*/ 311f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcpcpy1800, Function | MediumTest | Level1) { 312f6603c60Sopenharmony_ci wchar_t paraDest[10]; 313f6603c60Sopenharmony_ci const wchar_t *paraSrc = L"abcde"; 314f6603c60Sopenharmony_ci wchar_t *returnVal = nullptr; 315f6603c60Sopenharmony_ci 316f6603c60Sopenharmony_ci returnVal = wcpcpy(paraDest, paraSrc); 317f6603c60Sopenharmony_ci LOGD(" wcpcpy returnVal:='%x'\n", returnVal); 318f6603c60Sopenharmony_ci ASSERT_TRUE(0 == wcscmp(paraDest, paraSrc) && L'\0' == *returnVal) 319f6603c60Sopenharmony_ci << "ErrInfo: wcpcpy returnVal:='" << returnVal << "'"; 320f6603c60Sopenharmony_ci} 321f6603c60Sopenharmony_ci 322f6603c60Sopenharmony_ci/** 323f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCPNCPY_1900 324f6603c60Sopenharmony_ci* @tc.name test wcpncpy api 325f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 326f6603c60Sopenharmony_ci*/ 327f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcpncpy1900, Function | MediumTest | Level1) { 328f6603c60Sopenharmony_ci wchar_t paraDest[10]; 329f6603c60Sopenharmony_ci const wchar_t *paraSrc = L"abcde"; 330f6603c60Sopenharmony_ci size_t lenVal; 331f6603c60Sopenharmony_ci wchar_t *returnVal = nullptr; 332f6603c60Sopenharmony_ci 333f6603c60Sopenharmony_ci lenVal = wcslen(paraSrc); 334f6603c60Sopenharmony_ci returnVal = wcpncpy(paraDest, paraSrc, lenVal + 1); 335f6603c60Sopenharmony_ci LOGD(" wcpncpy returnVal:='%x'\n", returnVal); 336f6603c60Sopenharmony_ci ASSERT_TRUE(0 == wcsncmp(paraDest, paraSrc, lenVal) && L'\0' == *returnVal) 337f6603c60Sopenharmony_ci << "ErrInfo: wcpncpy returnVal:='" << returnVal << "'"; 338f6603c60Sopenharmony_ci} 339f6603c60Sopenharmony_ci 340f6603c60Sopenharmony_ci/** 341f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCASECMP_2000 342f6603c60Sopenharmony_ci* @tc.name test wcscasecmp api with para1 is lower case of para2 343f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 344f6603c60Sopenharmony_ci*/ 345f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscasecmp2000, Function | MediumTest | Level1) { 346f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 347f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"ABCDE"; 348f6603c60Sopenharmony_ci int returnVal; 349f6603c60Sopenharmony_ci 350f6603c60Sopenharmony_ci returnVal = wcscasecmp(strVal1, strVal2); 351f6603c60Sopenharmony_ci LOGD(" wcscasecmp returnVal:='%d'\n", returnVal); 352f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcscasecmp returnVal:='" << returnVal << "'"; 353f6603c60Sopenharmony_ci} 354f6603c60Sopenharmony_ci 355f6603c60Sopenharmony_ci/** 356f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCASECMP_2100 357f6603c60Sopenharmony_ci* @tc.name test wcscasecmp api with same string 358f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 359f6603c60Sopenharmony_ci*/ 360f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscasecmp2100, Function | MediumTest | Level1) { 361f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 362f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"abcde"; 363f6603c60Sopenharmony_ci int returnVal; 364f6603c60Sopenharmony_ci 365f6603c60Sopenharmony_ci returnVal = wcscasecmp(strVal1, strVal2); 366f6603c60Sopenharmony_ci LOGD(" wcscasecmp returnVal:='%d'\n", returnVal); 367f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcscasecmp returnVal:='" << returnVal << "'"; 368f6603c60Sopenharmony_ci} 369f6603c60Sopenharmony_ci 370f6603c60Sopenharmony_ci/** 371f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCASECMP_L_2000 372f6603c60Sopenharmony_ci* @tc.name test wcscasecmp_l api with para1 is lower case of para2 373f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 374f6603c60Sopenharmony_ci*/ 375f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscasecmpL2200, Function | MediumTest | Level1) { 376f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 377f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"ABCDE"; 378f6603c60Sopenharmony_ci int returnVal; 379f6603c60Sopenharmony_ci 380f6603c60Sopenharmony_ci returnVal = wcscasecmp_l(strVal1, strVal2, g_ausoaLocale); 381f6603c60Sopenharmony_ci LOGD(" wcscasecmp_l returnVal:='%d'\n", returnVal); 382f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcscasecmp_l returnVal:='" << returnVal << "'"; 383f6603c60Sopenharmony_ci} 384f6603c60Sopenharmony_ci 385f6603c60Sopenharmony_ci/** 386f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCASECMP_L_2100 387f6603c60Sopenharmony_ci* @tc.name test wcscasecmp_l api with same string 388f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 389f6603c60Sopenharmony_ci*/ 390f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscasecmpL2300, Function | MediumTest | Level1) { 391f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 392f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"abcde"; 393f6603c60Sopenharmony_ci int returnVal; 394f6603c60Sopenharmony_ci 395f6603c60Sopenharmony_ci returnVal = wcscasecmp_l(strVal1, strVal2, g_ausoaLocale); 396f6603c60Sopenharmony_ci LOGD(" wcscasecmp_l returnVal:='%d'\n", returnVal); 397f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcscasecmp_l returnVal:='" << returnVal << "'"; 398f6603c60Sopenharmony_ci} 399f6603c60Sopenharmony_ci 400f6603c60Sopenharmony_ci/** 401f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSNCASECMP_2400 402f6603c60Sopenharmony_ci* @tc.name test wcsncasecmp api with para1 is lower case of para2 403f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 404f6603c60Sopenharmony_ci*/ 405f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsncasecmp2400, Function | MediumTest | Level1) { 406f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 407f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"ABCDE"; 408f6603c60Sopenharmony_ci size_t lenVal; 409f6603c60Sopenharmony_ci int returnVal; 410f6603c60Sopenharmony_ci 411f6603c60Sopenharmony_ci lenVal = 3; 412f6603c60Sopenharmony_ci returnVal = wcsncasecmp(strVal1, strVal2, lenVal); 413f6603c60Sopenharmony_ci LOGD(" wcsncasecmp returnVal:='%d'\n", returnVal); 414f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcsncasecmp returnVal:='" << returnVal << "'"; 415f6603c60Sopenharmony_ci} 416f6603c60Sopenharmony_ci 417f6603c60Sopenharmony_ci/** 418f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSNCASECMP_2500 419f6603c60Sopenharmony_ci* @tc.name test wcsncasecmp api with same string 420f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 421f6603c60Sopenharmony_ci*/ 422f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsncasecmp2500, Function | MediumTest | Level1) { 423f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 424f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"abcde"; 425f6603c60Sopenharmony_ci size_t lenVal; 426f6603c60Sopenharmony_ci int returnVal; 427f6603c60Sopenharmony_ci 428f6603c60Sopenharmony_ci lenVal = 5; 429f6603c60Sopenharmony_ci returnVal = wcsncasecmp(strVal1, strVal2, lenVal); 430f6603c60Sopenharmony_ci LOGD(" wcsncasecmp returnVal:='%d'\n", returnVal); 431f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcsncasecmp returnVal:='" << returnVal << "'"; 432f6603c60Sopenharmony_ci} 433f6603c60Sopenharmony_ci 434f6603c60Sopenharmony_ci/** 435f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSNCASECMP_L_2600 436f6603c60Sopenharmony_ci* @tc.name test wcsncasecmp_l api with para1 is lower case of para2 437f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 438f6603c60Sopenharmony_ci*/ 439f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsncasecmpL2600, Function | MediumTest | Level1) { 440f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 441f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"ABCDE"; 442f6603c60Sopenharmony_ci size_t lenVal; 443f6603c60Sopenharmony_ci int returnVal; 444f6603c60Sopenharmony_ci 445f6603c60Sopenharmony_ci lenVal = 3; 446f6603c60Sopenharmony_ci returnVal = wcsncasecmp_l(strVal1, strVal2, lenVal, g_ausoaLocale); 447f6603c60Sopenharmony_ci LOGD(" wcsncasecmp_l returnVal:='%d'\n", returnVal); 448f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcsncasecmp_l returnVal:='" << returnVal << "'"; 449f6603c60Sopenharmony_ci} 450f6603c60Sopenharmony_ci 451f6603c60Sopenharmony_ci/** 452f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSNCASECMP_L_2700 453f6603c60Sopenharmony_ci* @tc.name test wcsncasecmp_l api with same string 454f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 455f6603c60Sopenharmony_ci*/ 456f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsncasecmpL2700, Function | MediumTest | Level1) { 457f6603c60Sopenharmony_ci const wchar_t *strVal1 = L"abcde"; 458f6603c60Sopenharmony_ci const wchar_t *strVal2 = L"abcde"; 459f6603c60Sopenharmony_ci size_t lenVal; 460f6603c60Sopenharmony_ci int returnVal; 461f6603c60Sopenharmony_ci 462f6603c60Sopenharmony_ci lenVal = 5; 463f6603c60Sopenharmony_ci returnVal = wcsncasecmp_l(strVal1, strVal2, lenVal, g_ausoaLocale); 464f6603c60Sopenharmony_ci LOGD(" wcsncasecmp_l returnVal:='%d'\n", returnVal); 465f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcsncasecmp_l returnVal:='" << returnVal << "'"; 466f6603c60Sopenharmony_ci} 467f6603c60Sopenharmony_ci 468f6603c60Sopenharmony_ci/** 469f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSNLEN_2800 470f6603c60Sopenharmony_ci* @tc.name test wcsnlen api 471f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 472f6603c60Sopenharmony_ci*/ 473f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsnlen2800, Function | MediumTest | Level1) { 474f6603c60Sopenharmony_ci const wchar_t *paraVal = L"abcde"; 475f6603c60Sopenharmony_ci size_t maxLen; 476f6603c60Sopenharmony_ci size_t returnVal; 477f6603c60Sopenharmony_ci 478f6603c60Sopenharmony_ci maxLen = wcslen(paraVal); 479f6603c60Sopenharmony_ci returnVal = wcsnlen(paraVal, maxLen); 480f6603c60Sopenharmony_ci LOGD(" wcsnlen returnVal:='%d'\n", returnVal); 481f6603c60Sopenharmony_ci ASSERT_TRUE(5 == returnVal) << "ErrInfo: wcsnlen returnVal:='" << returnVal << "'"; 482f6603c60Sopenharmony_ci} 483f6603c60Sopenharmony_ci 484f6603c60Sopenharmony_ci/** 485f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSWIDTH_2900 486f6603c60Sopenharmony_ci* @tc.name test wcswidth api 487f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 488f6603c60Sopenharmony_ci*/ 489f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcswidth2900, Function | MediumTest | Level1) { 490f6603c60Sopenharmony_ci const wchar_t *paraVal = L"abcde"; 491f6603c60Sopenharmony_ci size_t lenVal; 492f6603c60Sopenharmony_ci int returnVal; 493f6603c60Sopenharmony_ci 494f6603c60Sopenharmony_ci lenVal = wcslen(paraVal); 495f6603c60Sopenharmony_ci returnVal = wcswidth(paraVal, lenVal); 496f6603c60Sopenharmony_ci LOGD(" wcswidth returnVal:='%d'\n", returnVal); 497f6603c60Sopenharmony_ci ASSERT_TRUE(5 == returnVal) << "ErrInfo: wcswidth returnVal:='" << returnVal << "'"; 498f6603c60Sopenharmony_ci} 499f6603c60Sopenharmony_ci 500f6603c60Sopenharmony_ci/** 501f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCAT_3000 502f6603c60Sopenharmony_ci* @tc.name test wcscat api 503f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 504f6603c60Sopenharmony_ci*/ 505f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscat3000, Function | MediumTest | Level1) { 506f6603c60Sopenharmony_ci wchar_t paraDest[10]; 507f6603c60Sopenharmony_ci wchar_t paraSrc[5]; 508f6603c60Sopenharmony_ci wchar_t *returnVal = nullptr; 509f6603c60Sopenharmony_ci 510f6603c60Sopenharmony_ci wcscpy(paraDest, L"abc"); 511f6603c60Sopenharmony_ci wcscpy(paraSrc, L"def"); 512f6603c60Sopenharmony_ci returnVal = wcscat(paraDest, paraSrc); 513f6603c60Sopenharmony_ci LOGD(" wcscat returnVal:='%s'\n", returnVal); 514f6603c60Sopenharmony_ci ASSERT_TRUE(0 == wcscmp(returnVal, L"abcdef")) << "ErrInfo: wcscat returnVal:='" << returnVal << "'"; 515f6603c60Sopenharmony_ci} 516f6603c60Sopenharmony_ci 517f6603c60Sopenharmony_ci/** 518f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSNCAT_3100 519f6603c60Sopenharmony_ci* @tc.name test wcsncat api 520f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 521f6603c60Sopenharmony_ci*/ 522f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsncat3100, Function | MediumTest | Level1) { 523f6603c60Sopenharmony_ci wchar_t paraDest[10]; 524f6603c60Sopenharmony_ci wchar_t paraSrc[5]; 525f6603c60Sopenharmony_ci wchar_t *returnVal = nullptr; 526f6603c60Sopenharmony_ci 527f6603c60Sopenharmony_ci wcsncpy(paraDest, L"abc", wcslen(L"abc") + 1); 528f6603c60Sopenharmony_ci wcsncpy(paraSrc, L"def", wcslen(L"def") + 1); 529f6603c60Sopenharmony_ci returnVal = wcsncat(paraDest, paraSrc, wcslen(L"def")); 530f6603c60Sopenharmony_ci LOGD(" wcscat returnVal:='%x'\n", returnVal); 531f6603c60Sopenharmony_ci ASSERT_TRUE(0 == wcscmp(returnVal, L"abcdef")) << "ErrInfo: wcscat returnVal:='" << returnVal << "'"; 532f6603c60Sopenharmony_ci} 533f6603c60Sopenharmony_ci 534f6603c60Sopenharmony_ci/** 535f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCHR_3200 536f6603c60Sopenharmony_ci* @tc.name test wcschr api with wc in wcs 537f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 538f6603c60Sopenharmony_ci*/ 539f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcschr3200, Function | MediumTest | Level1) { 540f6603c60Sopenharmony_ci const wchar_t *paraWcs; 541f6603c60Sopenharmony_ci wchar_t paraWc; 542f6603c60Sopenharmony_ci wchar_t *returnVal; 543f6603c60Sopenharmony_ci 544f6603c60Sopenharmony_ci paraWcs = L"abcdefa"; 545f6603c60Sopenharmony_ci paraWc = 'a'; 546f6603c60Sopenharmony_ci returnVal = wcschr((wchar_t *)paraWcs, paraWc); 547f6603c60Sopenharmony_ci LOGD(" wcschr returnVal:='%x'\n", returnVal); 548f6603c60Sopenharmony_ci ASSERT_TRUE(paraWcs == returnVal) << "ErrInfo: wcschr *returnVal:='" << *returnVal << "'"; 549f6603c60Sopenharmony_ci} 550f6603c60Sopenharmony_ci 551f6603c60Sopenharmony_ci/** 552f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCHR_3300 553f6603c60Sopenharmony_ci* @tc.name test wcschr api with wc not in wcs 554f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 555f6603c60Sopenharmony_ci*/ 556f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcschr3300, Function | MediumTest | Level1) { 557f6603c60Sopenharmony_ci const wchar_t *paraWcs; 558f6603c60Sopenharmony_ci wchar_t paraWc; 559f6603c60Sopenharmony_ci wchar_t *returnVal; 560f6603c60Sopenharmony_ci 561f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 562f6603c60Sopenharmony_ci paraWc = 'g'; 563f6603c60Sopenharmony_ci returnVal = wcschr((wchar_t *)paraWcs, paraWc); 564f6603c60Sopenharmony_ci LOGD(" wcschr returnVal:='%x'\n", returnVal); 565f6603c60Sopenharmony_ci ASSERT_TRUE(nullptr == returnVal) << "ErrInfo: wcschr returnVal:='" << returnVal << "'"; 566f6603c60Sopenharmony_ci} 567f6603c60Sopenharmony_ci 568f6603c60Sopenharmony_ci/** 569f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSRCHR_3400 570f6603c60Sopenharmony_ci* @tc.name test wcsrchr api with wc in wcs 571f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 572f6603c60Sopenharmony_ci*/ 573f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsrchr3400, Function | MediumTest | Level1) { 574f6603c60Sopenharmony_ci const wchar_t *paraWcs; 575f6603c60Sopenharmony_ci wchar_t paraWc; 576f6603c60Sopenharmony_ci wchar_t *returnVal; 577f6603c60Sopenharmony_ci 578f6603c60Sopenharmony_ci paraWcs = L"abcdefa"; 579f6603c60Sopenharmony_ci paraWc = 'a'; 580f6603c60Sopenharmony_ci returnVal = wcsrchr((wchar_t *)paraWcs, paraWc); 581f6603c60Sopenharmony_ci LOGD(" wcsrchr returnVal:='%x %x %x'\n", paraWcs, returnVal, (paraWcs + wcslen(L"abcdef"))); 582f6603c60Sopenharmony_ci ASSERT_TRUE((paraWcs + wcslen(L"abcdef")) == returnVal) << "ErrInfo: wcsrchr *returnVal:='" << *returnVal << "'"; 583f6603c60Sopenharmony_ci} 584f6603c60Sopenharmony_ci 585f6603c60Sopenharmony_ci/** 586f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCHR_3500 587f6603c60Sopenharmony_ci* @tc.name test wcsrchr api with wc not in wcs 588f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 589f6603c60Sopenharmony_ci*/ 590f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsrchr3500, Function | MediumTest | Level1) { 591f6603c60Sopenharmony_ci const wchar_t *paraWcs; 592f6603c60Sopenharmony_ci wchar_t paraWc; 593f6603c60Sopenharmony_ci wchar_t *returnVal; 594f6603c60Sopenharmony_ci 595f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 596f6603c60Sopenharmony_ci paraWc = 'g'; 597f6603c60Sopenharmony_ci returnVal = wcsrchr((wchar_t *)paraWcs, paraWc); 598f6603c60Sopenharmony_ci LOGD(" wcsrchr returnVal:='%x'\n", returnVal); 599f6603c60Sopenharmony_ci ASSERT_TRUE(nullptr == returnVal) << "ErrInfo: wcsrchr returnVal:='" << returnVal << "'"; 600f6603c60Sopenharmony_ci} 601f6603c60Sopenharmony_ci 602f6603c60Sopenharmony_ci/** 603f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSDUP_3600 604f6603c60Sopenharmony_ci* @tc.name test wcsdup api 605f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 606f6603c60Sopenharmony_ci*/ 607f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsdup3600, Function | MediumTest | Level1) { 608f6603c60Sopenharmony_ci const wchar_t *paraWcs; 609f6603c60Sopenharmony_ci wchar_t *returnVal; 610f6603c60Sopenharmony_ci 611f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 612f6603c60Sopenharmony_ci returnVal = wcsdup(paraWcs); 613f6603c60Sopenharmony_ci LOGD(" wcsdup returnVal:='%x'\n", returnVal); 614f6603c60Sopenharmony_ci ASSERT_TRUE(0 == wcscmp(returnVal, paraWcs)) << "ErrInfo: wcsdup returnVal:='" << returnVal << "'"; 615f6603c60Sopenharmony_ci free(returnVal); 616f6603c60Sopenharmony_ci} 617f6603c60Sopenharmony_ci 618f6603c60Sopenharmony_ci/** 619f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCOLL_3700 620f6603c60Sopenharmony_ci* @tc.name test wcscoll api with para1 is equal to para2 621f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 622f6603c60Sopenharmony_ci*/ 623f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscoll3700, Function | MediumTest | Level1) { 624f6603c60Sopenharmony_ci const wchar_t *paraWcs1; 625f6603c60Sopenharmony_ci const wchar_t *paraWcs2; 626f6603c60Sopenharmony_ci int returnVal; 627f6603c60Sopenharmony_ci 628f6603c60Sopenharmony_ci paraWcs1 = L"abcdef"; 629f6603c60Sopenharmony_ci paraWcs2 = L"abcdef"; 630f6603c60Sopenharmony_ci returnVal = wcscoll(paraWcs1, paraWcs2); 631f6603c60Sopenharmony_ci LOGD(" wcscoll returnVal:='%d'\n", returnVal); 632f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcscoll returnVal:='" << returnVal << "'"; 633f6603c60Sopenharmony_ci} 634f6603c60Sopenharmony_ci 635f6603c60Sopenharmony_ci/** 636f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCOLL_3800 637f6603c60Sopenharmony_ci* @tc.name test wcscoll api with para1 is greater than para2 638f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 639f6603c60Sopenharmony_ci*/ 640f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscoll3800, Function | MediumTest | Level1) { 641f6603c60Sopenharmony_ci const wchar_t *paraWcs1; 642f6603c60Sopenharmony_ci const wchar_t *paraWcs2; 643f6603c60Sopenharmony_ci int returnVal; 644f6603c60Sopenharmony_ci 645f6603c60Sopenharmony_ci paraWcs1 = L"abcdefg"; 646f6603c60Sopenharmony_ci paraWcs2 = L"abcdef"; 647f6603c60Sopenharmony_ci returnVal = wcscoll(paraWcs1, paraWcs2); 648f6603c60Sopenharmony_ci LOGD(" wcscoll returnVal:='%d'\n", returnVal); 649f6603c60Sopenharmony_ci ASSERT_TRUE(returnVal > 0) << "ErrInfo: wcscoll returnVal:='" << returnVal << "'"; 650f6603c60Sopenharmony_ci} 651f6603c60Sopenharmony_ci 652f6603c60Sopenharmony_ci/** 653f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCOLL_3900 654f6603c60Sopenharmony_ci* @tc.name test wcscoll api with para1 is less than para2 655f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 656f6603c60Sopenharmony_ci*/ 657f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscoll3900, Function | MediumTest | Level1) { 658f6603c60Sopenharmony_ci const wchar_t *paraWcs1; 659f6603c60Sopenharmony_ci const wchar_t *paraWcs2; 660f6603c60Sopenharmony_ci int returnVal; 661f6603c60Sopenharmony_ci 662f6603c60Sopenharmony_ci paraWcs1 = L"abcde"; 663f6603c60Sopenharmony_ci paraWcs2 = L"abcdef"; 664f6603c60Sopenharmony_ci returnVal = wcscoll(paraWcs1, paraWcs2); 665f6603c60Sopenharmony_ci LOGD(" wcscoll returnVal:='%d'\n", returnVal); 666f6603c60Sopenharmony_ci ASSERT_TRUE(returnVal < 0) << "ErrInfo: wcscoll returnVal:='" << returnVal << "'"; 667f6603c60Sopenharmony_ci} 668f6603c60Sopenharmony_ci 669f6603c60Sopenharmony_ci/** 670f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCOLL_L_4000 671f6603c60Sopenharmony_ci* @tc.name test wcscoll_l api with para1 is equal to para2 672f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 673f6603c60Sopenharmony_ci*/ 674f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscollL4000, Function | MediumTest | Level1) { 675f6603c60Sopenharmony_ci const wchar_t *paraWcs1; 676f6603c60Sopenharmony_ci const wchar_t *paraWcs2; 677f6603c60Sopenharmony_ci int returnVal; 678f6603c60Sopenharmony_ci 679f6603c60Sopenharmony_ci paraWcs1 = L"abcdef"; 680f6603c60Sopenharmony_ci paraWcs2 = L"abcdef"; 681f6603c60Sopenharmony_ci returnVal = wcscoll_l(paraWcs1, paraWcs2, g_ausoaLocale); 682f6603c60Sopenharmony_ci LOGD(" wcscoll_l returnVal:='%d'\n", returnVal); 683f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcscoll_l returnVal:='" << returnVal << "'"; 684f6603c60Sopenharmony_ci} 685f6603c60Sopenharmony_ci 686f6603c60Sopenharmony_ci/** 687f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCOLL_L_4100 688f6603c60Sopenharmony_ci* @tc.name test wcscoll_l api with para1 is greater than para2 689f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 690f6603c60Sopenharmony_ci*/ 691f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscollL4100, Function | MediumTest | Level1) { 692f6603c60Sopenharmony_ci const wchar_t *paraWcs1; 693f6603c60Sopenharmony_ci const wchar_t *paraWcs2; 694f6603c60Sopenharmony_ci int returnVal; 695f6603c60Sopenharmony_ci 696f6603c60Sopenharmony_ci paraWcs1 = L"abcdefg"; 697f6603c60Sopenharmony_ci paraWcs2 = L"abcdef"; 698f6603c60Sopenharmony_ci returnVal = wcscoll_l(paraWcs1, paraWcs2, g_ausoaLocale); 699f6603c60Sopenharmony_ci LOGD(" wcscoll_l returnVal:='%d'\n", returnVal); 700f6603c60Sopenharmony_ci ASSERT_TRUE(returnVal > 0) << "ErrInfo: wcscoll_l returnVal:='" << returnVal << "'"; 701f6603c60Sopenharmony_ci} 702f6603c60Sopenharmony_ci 703f6603c60Sopenharmony_ci/** 704f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCOLL_L_4200 705f6603c60Sopenharmony_ci* @tc.name test wcscoll_l api with para1 is less than para2 706f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 707f6603c60Sopenharmony_ci*/ 708f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscollL4200, Function | MediumTest | Level1) { 709f6603c60Sopenharmony_ci const wchar_t *paraWcs1; 710f6603c60Sopenharmony_ci const wchar_t *paraWcs2; 711f6603c60Sopenharmony_ci int returnVal; 712f6603c60Sopenharmony_ci 713f6603c60Sopenharmony_ci paraWcs1 = L"abcde"; 714f6603c60Sopenharmony_ci paraWcs2 = L"abcdef"; 715f6603c60Sopenharmony_ci returnVal = wcscoll_l(paraWcs1, paraWcs2, g_ausoaLocale); 716f6603c60Sopenharmony_ci LOGD(" wcscoll_l returnVal:='%d'\n", returnVal); 717f6603c60Sopenharmony_ci ASSERT_TRUE(returnVal < 0) << "ErrInfo: wcscoll_l returnVal:='" << returnVal << "'"; 718f6603c60Sopenharmony_ci} 719f6603c60Sopenharmony_ci 720f6603c60Sopenharmony_ci/** 721f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCSPN_4300 722f6603c60Sopenharmony_ci* @tc.name test wcscspn api with para2 is included in para1 723f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 724f6603c60Sopenharmony_ci*/ 725f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscspn4300, Function | MediumTest | Level1) { 726f6603c60Sopenharmony_ci const wchar_t *paraWcs; 727f6603c60Sopenharmony_ci const wchar_t *paraRjct; 728f6603c60Sopenharmony_ci size_t returnVal; 729f6603c60Sopenharmony_ci 730f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 731f6603c60Sopenharmony_ci paraRjct = L"def"; 732f6603c60Sopenharmony_ci returnVal = wcscspn(paraWcs, paraRjct); 733f6603c60Sopenharmony_ci LOGD(" wcscspn returnVal:='%d'\n", returnVal); 734f6603c60Sopenharmony_ci ASSERT_TRUE(3 == returnVal) << "ErrInfo: wcscspn returnVal:='" << returnVal << "'"; 735f6603c60Sopenharmony_ci} 736f6603c60Sopenharmony_ci 737f6603c60Sopenharmony_ci/** 738f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSCSPN_4400 739f6603c60Sopenharmony_ci* @tc.name test wcscspn api with para2 is not included in para1 740f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 741f6603c60Sopenharmony_ci*/ 742f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcscspn4400, Function | MediumTest | Level1) { 743f6603c60Sopenharmony_ci const wchar_t *paraWcs; 744f6603c60Sopenharmony_ci const wchar_t *paraRjct; 745f6603c60Sopenharmony_ci size_t returnVal; 746f6603c60Sopenharmony_ci 747f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 748f6603c60Sopenharmony_ci paraRjct = L"ghi"; 749f6603c60Sopenharmony_ci returnVal = wcscspn(paraWcs, paraRjct); 750f6603c60Sopenharmony_ci LOGD(" wcscspn returnVal:='%d'\n", returnVal); 751f6603c60Sopenharmony_ci ASSERT_TRUE(6 == returnVal) << "ErrInfo: wcscspn returnVal:='" << returnVal << "'"; 752f6603c60Sopenharmony_ci} 753f6603c60Sopenharmony_ci 754f6603c60Sopenharmony_ci/** 755f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSSPN_4500 756f6603c60Sopenharmony_ci* @tc.name test wcsspn api with para2 is included in para1 757f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 758f6603c60Sopenharmony_ci*/ 759f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsspn4500, Function | MediumTest | Level1) { 760f6603c60Sopenharmony_ci const wchar_t *paraWcs; 761f6603c60Sopenharmony_ci const wchar_t *paraAcpt; 762f6603c60Sopenharmony_ci size_t returnVal; 763f6603c60Sopenharmony_ci 764f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 765f6603c60Sopenharmony_ci paraAcpt = L"def"; 766f6603c60Sopenharmony_ci returnVal = wcsspn(paraWcs, paraAcpt); 767f6603c60Sopenharmony_ci LOGD(" wcsspn returnVal:='%d'\n", returnVal); 768f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcsspn returnVal:='" << returnVal << "'"; 769f6603c60Sopenharmony_ci} 770f6603c60Sopenharmony_ci 771f6603c60Sopenharmony_ci/** 772f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSSPN_4600 773f6603c60Sopenharmony_ci* @tc.name test wcscspn api with para2 is not included in para1 774f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 775f6603c60Sopenharmony_ci*/ 776f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcsspn4600, Function | MediumTest | Level1) { 777f6603c60Sopenharmony_ci const wchar_t *paraWcs; 778f6603c60Sopenharmony_ci const wchar_t *paraAcpt; 779f6603c60Sopenharmony_ci size_t returnVal; 780f6603c60Sopenharmony_ci 781f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 782f6603c60Sopenharmony_ci paraAcpt = L"ghi"; 783f6603c60Sopenharmony_ci returnVal = wcsspn(paraWcs, paraAcpt); 784f6603c60Sopenharmony_ci LOGD(" wcsspn returnVal:='%d'\n", returnVal); 785f6603c60Sopenharmony_ci ASSERT_TRUE(0 == returnVal) << "ErrInfo: wcsspn returnVal:='" << returnVal << "'"; 786f6603c60Sopenharmony_ci} 787f6603c60Sopenharmony_ci 788f6603c60Sopenharmony_ci/** 789f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSPBRK_4700 790f6603c60Sopenharmony_ci* @tc.name test wcspbrk api with para2 is included in para1 791f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 792f6603c60Sopenharmony_ci*/ 793f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcspbrk4700, Function | MediumTest | Level1) { 794f6603c60Sopenharmony_ci const wchar_t *paraWcs; 795f6603c60Sopenharmony_ci const wchar_t *paraAcpt; 796f6603c60Sopenharmony_ci wchar_t *returnVal; 797f6603c60Sopenharmony_ci 798f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 799f6603c60Sopenharmony_ci paraAcpt = L"def"; 800f6603c60Sopenharmony_ci returnVal = wcspbrk((wchar_t *)paraWcs, paraAcpt); 801f6603c60Sopenharmony_ci LOGD(" wcspbrk returnVal:='%x'\n", returnVal); 802f6603c60Sopenharmony_ci ASSERT_TRUE((paraWcs + wcslen(L"abc")) == returnVal) << "ErrInfo: wcspbrk returnVal:='" << returnVal << "'"; 803f6603c60Sopenharmony_ci} 804f6603c60Sopenharmony_ci 805f6603c60Sopenharmony_ci/** 806f6603c60Sopenharmony_ci* @tc.number SUB_KERNEL_UTIL_STRINGOPER_WCSPBRK_4800 807f6603c60Sopenharmony_ci* @tc.name test wcspbrk api with para2 is not included in para1 808f6603c60Sopenharmony_ci* @tc.desc [C- SOFTWARE -0200] 809f6603c60Sopenharmony_ci*/ 810f6603c60Sopenharmony_ciHWTEST_F(ActsUtilStringOperApiTest, testWcspbrk4800, Function | MediumTest | Level1) { 811f6603c60Sopenharmony_ci const wchar_t *paraWcs; 812f6603c60Sopenharmony_ci const wchar_t *paraAcpt; 813f6603c60Sopenharmony_ci wchar_t *returnVal; 814f6603c60Sopenharmony_ci 815f6603c60Sopenharmony_ci paraWcs = L"abcdef"; 816f6603c60Sopenharmony_ci paraAcpt = L"ghi"; 817f6603c60Sopenharmony_ci returnVal = wcspbrk((wchar_t *)paraWcs, paraAcpt); 818f6603c60Sopenharmony_ci LOGD(" wcspbrk returnVal:='%x'\n", returnVal); 819f6603c60Sopenharmony_ci ASSERT_TRUE(nullptr == returnVal) << "ErrInfo: wcspbrk returnVal:='" << returnVal << "'"; 820f6603c60Sopenharmony_ci} 821