1570af302Sopenharmony_ci/* 2570af302Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3570af302Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4570af302Sopenharmony_ci * you may not use this file except in compliance with the License. 5570af302Sopenharmony_ci * You may obtain a copy of the License at 6570af302Sopenharmony_ci * 7570af302Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8570af302Sopenharmony_ci * 9570af302Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10570af302Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11570af302Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12570af302Sopenharmony_ci * See the License for the specific language governing permissions and 13570af302Sopenharmony_ci * limitations under the License. 14570af302Sopenharmony_ci */ 15570af302Sopenharmony_ci 16570af302Sopenharmony_ci#include <stdio.h> 17570af302Sopenharmony_ci#include <string.h> 18570af302Sopenharmony_ci#include <wchar.h> 19570af302Sopenharmony_ci#include "test.h" 20570af302Sopenharmony_ci 21570af302Sopenharmony_ci/** 22570af302Sopenharmony_ci * @tc.name : wcsncat_0100 23570af302Sopenharmony_ci * @tc.desc : Test the wcsncat method to pass the source wide string into the target wide string according to the 24570af302Sopenharmony_ci * number passed in 25570af302Sopenharmony_ci * @tc.level : Level 0 26570af302Sopenharmony_ci */ 27570af302Sopenharmony_civoid wcsncat_0100(void) 28570af302Sopenharmony_ci{ 29570af302Sopenharmony_ci wchar_t dst[32] = {0}; 30570af302Sopenharmony_ci wchar_t *result = wcsncat(dst, L"hello, world!", 5); 31570af302Sopenharmony_ci if (wcscmp(dst, result) != 0) { 32570af302Sopenharmony_ci t_error("%s wcsncat get result is %s are not %s\n", __func__, dst, result); 33570af302Sopenharmony_ci } 34570af302Sopenharmony_ci if (wcscmp(dst, L"hello") != 0) { 35570af302Sopenharmony_ci t_error("%s wcsncat get result is %s are not 'hello'\n", __func__, dst); 36570af302Sopenharmony_ci } 37570af302Sopenharmony_ci} 38570af302Sopenharmony_ci 39570af302Sopenharmony_ci/** 40570af302Sopenharmony_ci * @tc.name : wcsncat_0200 41570af302Sopenharmony_ci * @tc.desc : Test the result of the function wcsncat when the number of incoming copies is 0 42570af302Sopenharmony_ci * @tc.level : Level 1 43570af302Sopenharmony_ci */ 44570af302Sopenharmony_civoid wcsncat_0200(void) 45570af302Sopenharmony_ci{ 46570af302Sopenharmony_ci wchar_t dst[32] = {0}; 47570af302Sopenharmony_ci wchar_t *result = wcsncat(dst, L"hello, world!", 0); 48570af302Sopenharmony_ci if (wcscmp(dst, result) != 0) { 49570af302Sopenharmony_ci t_error("%s wcsncat get result is %s are not %s\n", __func__, dst, result); 50570af302Sopenharmony_ci } 51570af302Sopenharmony_ci if (wcscmp(dst, L"") != 0) { 52570af302Sopenharmony_ci t_error("%s wcsncat get result is %s are not 'hello'\n", __func__, dst); 53570af302Sopenharmony_ci } 54570af302Sopenharmony_ci} 55570af302Sopenharmony_ci 56570af302Sopenharmony_ci/** 57570af302Sopenharmony_ci * @tc.name : wcsncat_0300 58570af302Sopenharmony_ci * @tc.desc : Test the result of the wcsncat function when the number of incoming copies is greater than the 59570af302Sopenharmony_ci * source string 60570af302Sopenharmony_ci * @tc.level : Level 1 61570af302Sopenharmony_ci */ 62570af302Sopenharmony_civoid wcsncat_0300(void) 63570af302Sopenharmony_ci{ 64570af302Sopenharmony_ci wchar_t dst[32] = {0}; 65570af302Sopenharmony_ci wchar_t *result = wcsncat(dst, L"hello, world!", 16); 66570af302Sopenharmony_ci if (wcscmp(dst, result) != 0) { 67570af302Sopenharmony_ci t_error("%s wcsncat get result is %s are not %s\n", __func__, dst, result); 68570af302Sopenharmony_ci } 69570af302Sopenharmony_ci if (wcscmp(dst, L"hello, world!") != 0) { 70570af302Sopenharmony_ci t_error("%s wcsncat get result is %s are not 'hello, world!'\n", __func__, dst); 71570af302Sopenharmony_ci } 72570af302Sopenharmony_ci} 73570af302Sopenharmony_ci 74570af302Sopenharmony_ciint main(int argc, char *argv[]) 75570af302Sopenharmony_ci{ 76570af302Sopenharmony_ci wcsncat_0100(); 77570af302Sopenharmony_ci wcsncat_0200(); 78570af302Sopenharmony_ci wcsncat_0300(); 79570af302Sopenharmony_ci return t_status; 80570af302Sopenharmony_ci}