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 <limits.h> 17570af302Sopenharmony_ci#include <locale.h> 18570af302Sopenharmony_ci#include <stdlib.h> 19570af302Sopenharmony_ci#include "functionalext.h" 20570af302Sopenharmony_ci 21570af302Sopenharmony_ci/** 22570af302Sopenharmony_ci * @tc.name : localeconv_0100 23570af302Sopenharmony_ci * @tc.desc : Asserts whether the localeconv function returns a value that is expected by default 24570af302Sopenharmony_ci * @tc.level : Level 0 25570af302Sopenharmony_ci */ 26570af302Sopenharmony_civoid localeconv_0100(void) 27570af302Sopenharmony_ci{ 28570af302Sopenharmony_ci struct lconv *pconv = localeconv(); 29570af302Sopenharmony_ci if (pconv == NULL) { 30570af302Sopenharmony_ci EXPECT_PTRNE("localeconv_0100", pconv, NULL); 31570af302Sopenharmony_ci return; 32570af302Sopenharmony_ci } 33570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", ".", pconv->decimal_point); 34570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->thousands_sep); 35570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->grouping); 36570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->int_curr_symbol); 37570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->currency_symbol); 38570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->mon_decimal_point); 39570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->mon_thousands_sep); 40570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->mon_grouping); 41570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->positive_sign); 42570af302Sopenharmony_ci EXPECT_STREQ("localeconv_0100", "", pconv->negative_sign); 43570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_frac_digits); 44570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->frac_digits); 45570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->p_cs_precedes); 46570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->p_sep_by_space); 47570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->n_cs_precedes); 48570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->n_sep_by_space); 49570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->p_sign_posn); 50570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->n_sign_posn); 51570af302Sopenharmony_ci#ifdef __USE_ISOC99 52570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_p_cs_precedes); 53570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_p_sep_by_space); 54570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_n_cs_precedes); 55570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_n_sep_by_space); 56570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_p_sign_posn); 57570af302Sopenharmony_ci EXPECT_EQ("localeconv_0100", CHAR_MAX, pconv->int_n_sign_posn); 58570af302Sopenharmony_ci#endif 59570af302Sopenharmony_ci} 60570af302Sopenharmony_ci 61570af302Sopenharmony_ciint main(void) 62570af302Sopenharmony_ci{ 63570af302Sopenharmony_ci localeconv_0100(); 64570af302Sopenharmony_ci return t_status; 65570af302Sopenharmony_ci}