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 <stdio.h> 17f6603c60Sopenharmony_ci 18f6603c60Sopenharmony_ci#include "IoTest.h" 19f6603c60Sopenharmony_ci 20f6603c60Sopenharmony_ciusing namespace testing::ext; 21f6603c60Sopenharmony_ci 22f6603c60Sopenharmony_ci /** 23f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0100 24f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of float 25f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 26f6603c60Sopenharmony_ci */ 27f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfFloat, Function | MediumTest | Level1) 28f6603c60Sopenharmony_ci{ 29f6603c60Sopenharmony_ci float f; 30f6603c60Sopenharmony_ci int ret = sscanf("1.196532544", "%f", &f); 31f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 32f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.1965325); 33f6603c60Sopenharmony_ci 34f6603c60Sopenharmony_ci long double f1; 35f6603c60Sopenharmony_ci ret = sscanf("1.196532544", "%Lf", &f1); 36f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 37f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 1.1965325); 38f6603c60Sopenharmony_ci 39f6603c60Sopenharmony_ci ret = sscanf("1.66666", "%6f", &f); 40f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 41f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.6666); 42f6603c60Sopenharmony_ci 43f6603c60Sopenharmony_ci ret = sscanf("1.66666", "%8f", &f); 44f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 45f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.66666); 46f6603c60Sopenharmony_ci} 47f6603c60Sopenharmony_ci 48f6603c60Sopenharmony_ci /** 49f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0200 50f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of float with format E 51f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 52f6603c60Sopenharmony_ci */ 53f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfFloatE, Function | MediumTest | Level1) 54f6603c60Sopenharmony_ci{ 55f6603c60Sopenharmony_ci float f; 56f6603c60Sopenharmony_ci long double f1; 57f6603c60Sopenharmony_ci int ret = sscanf("1.100000e+00", "%e", &f); 58f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 59f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.100000); 60f6603c60Sopenharmony_ci 61f6603c60Sopenharmony_ci ret = sscanf("1.100000e+00", "%Le", &f1); 62f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 63f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 1.100000); 64f6603c60Sopenharmony_ci 65f6603c60Sopenharmony_ci ret = sscanf("1.100000e+00", "%5e", &f); 66f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 67f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.100000); 68f6603c60Sopenharmony_ci 69f6603c60Sopenharmony_ci ret = sscanf("1.100000E+00", "%E", &f); 70f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 71f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.100000); 72f6603c60Sopenharmony_ci 73f6603c60Sopenharmony_ci ret = sscanf("1.100000E+00", "%LE", &f1); 74f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 75f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 1.100000); 76f6603c60Sopenharmony_ci 77f6603c60Sopenharmony_ci ret = sscanf("1.100000E+00", "%5E", &f); 78f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 79f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.100000); 80f6603c60Sopenharmony_ci} 81f6603c60Sopenharmony_ci 82f6603c60Sopenharmony_ci /** 83f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0300 84f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of float with format G 85f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 86f6603c60Sopenharmony_ci */ 87f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfFloatG, Function | MediumTest | Level1) 88f6603c60Sopenharmony_ci{ 89f6603c60Sopenharmony_ci float f; 90f6603c60Sopenharmony_ci long double f1; 91f6603c60Sopenharmony_ci int ret = sscanf("1.23e-07", "%g", &f); 92f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 93f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 0.000000123); 94f6603c60Sopenharmony_ci 95f6603c60Sopenharmony_ci ret = sscanf("1.23e-07", "%Lg", &f1); 96f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 97f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 0.000000123); 98f6603c60Sopenharmony_ci 99f6603c60Sopenharmony_ci ret = sscanf("1.23E-07", "%G", &f); 100f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 101f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.2300001e-07); 102f6603c60Sopenharmony_ci 103f6603c60Sopenharmony_ci ret = sscanf("1.23E-07", "%LG", &f1); 104f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 105f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 1.2300001e-07); 106f6603c60Sopenharmony_ci} 107f6603c60Sopenharmony_ci 108f6603c60Sopenharmony_ci /** 109f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0400 110f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of float with format A 111f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 112f6603c60Sopenharmony_ci */ 113f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfFloatA, Function | MediumTest | Level1) 114f6603c60Sopenharmony_ci{ 115f6603c60Sopenharmony_ci float f; 116f6603c60Sopenharmony_ci long double f1; 117f6603c60Sopenharmony_ci int ret = sscanf("0x1.199999999999ap+0", "%a", &f); 118f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 119f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.1); 120f6603c60Sopenharmony_ci 121f6603c60Sopenharmony_ci ret = sscanf("0x1.199999999999ap+0", "%La", &f1); 122f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 123f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 1.1); 124f6603c60Sopenharmony_ci 125f6603c60Sopenharmony_ci ret = sscanf("0x1.199999999999ap+0", "%5a", &f); 126f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 127f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.0625); 128f6603c60Sopenharmony_ci 129f6603c60Sopenharmony_ci ret = sscanf("0X1.199999999999AP+0", "%A", &f); 130f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 131f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.1); 132f6603c60Sopenharmony_ci 133f6603c60Sopenharmony_ci ret = sscanf("0X1.199999999999AP+0", "%LA", &f1); 134f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 135f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f1, 1.1); 136f6603c60Sopenharmony_ci 137f6603c60Sopenharmony_ci ret = sscanf("0X1.199999999999AP+0", "%5A", &f); 138f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 139f6603c60Sopenharmony_ci EXPECT_FLOAT_EQ(f, 1.0625); 140f6603c60Sopenharmony_ci} 141f6603c60Sopenharmony_ci 142f6603c60Sopenharmony_ci /** 143f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0500 144f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of char 145f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 146f6603c60Sopenharmony_ci */ 147f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfChar, Function | MediumTest | Level1) 148f6603c60Sopenharmony_ci{ 149f6603c60Sopenharmony_ci char c, c1; 150f6603c60Sopenharmony_ci int ret = sscanf("a", "%c", &c); 151f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 152f6603c60Sopenharmony_ci EXPECT_EQ(c, 'a'); 153f6603c60Sopenharmony_ci 154f6603c60Sopenharmony_ci char c2[10] = {0}; 155f6603c60Sopenharmony_ci ret = sscanf("helloworld", "%5c", c2); 156f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 157f6603c60Sopenharmony_ci EXPECT_EQ(c2[0], 'h'); 158f6603c60Sopenharmony_ci EXPECT_EQ(c2[1], 'e'); 159f6603c60Sopenharmony_ci EXPECT_EQ(c2[2], 'l'); 160f6603c60Sopenharmony_ci EXPECT_EQ(c2[3], 'l'); 161f6603c60Sopenharmony_ci EXPECT_EQ(c2[4], 'o'); 162f6603c60Sopenharmony_ci 163f6603c60Sopenharmony_ci ret = sscanf("(a) and |b|", "(%c) and |%c%*c|", &c, &c1); 164f6603c60Sopenharmony_ci EXPECT_EQ(ret, 2) << "> sscanf fail, errno = " << errno; 165f6603c60Sopenharmony_ci EXPECT_EQ(c, 'a'); 166f6603c60Sopenharmony_ci EXPECT_EQ(c1, 'b'); 167f6603c60Sopenharmony_ci} 168f6603c60Sopenharmony_ci 169f6603c60Sopenharmony_ci /** 170f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0600 171f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of string 172f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 173f6603c60Sopenharmony_ci */ 174f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfString, Function | MediumTest | Level1) 175f6603c60Sopenharmony_ci{ 176f6603c60Sopenharmony_ci char str[50] = {0}; 177f6603c60Sopenharmony_ci int ret = sscanf("hello", "%s", str); 178f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 179f6603c60Sopenharmony_ci EXPECT_STREQ(str, "hello"); 180f6603c60Sopenharmony_ci 181f6603c60Sopenharmony_ci ret = sscanf("hello", "%3s", str); 182f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 183f6603c60Sopenharmony_ci EXPECT_STREQ(str, "hel"); 184f6603c60Sopenharmony_ci 185f6603c60Sopenharmony_ci ret = sscanf("hellowo", "%6s", str); 186f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 187f6603c60Sopenharmony_ci EXPECT_STREQ(str, "hellow"); 188f6603c60Sopenharmony_ci 189f6603c60Sopenharmony_ci ret = sscanf("hello world", "%*s%s", str); 190f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 191f6603c60Sopenharmony_ci EXPECT_STREQ(str, "world"); 192f6603c60Sopenharmony_ci} 193f6603c60Sopenharmony_ci 194f6603c60Sopenharmony_ci /** 195f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0700 196f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of int 197f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 198f6603c60Sopenharmony_ci */ 199f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntD, Function | MediumTest | Level1) 200f6603c60Sopenharmony_ci{ 201f6603c60Sopenharmony_ci int i; 202f6603c60Sopenharmony_ci int ret = sscanf("-2147483648", "%d", &i); 203f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 204f6603c60Sopenharmony_ci EXPECT_EQ(i, -2147483648); 205f6603c60Sopenharmony_ci 206f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%d", &i); 207f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 208f6603c60Sopenharmony_ci EXPECT_EQ(i, 2147483647); 209f6603c60Sopenharmony_ci 210f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%15d", &i); 211f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 212f6603c60Sopenharmony_ci EXPECT_EQ(i, 2147483647); 213f6603c60Sopenharmony_ci 214f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%8d", &i); 215f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 216f6603c60Sopenharmony_ci EXPECT_EQ(i, 21474836); 217f6603c60Sopenharmony_ci 218f6603c60Sopenharmony_ci unsigned intU; 219f6603c60Sopenharmony_ci ret = sscanf("0", "%u", &intU); 220f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 221f6603c60Sopenharmony_ci EXPECT_EQ(intU, 0U); 222f6603c60Sopenharmony_ci 223f6603c60Sopenharmony_ci ret = sscanf("4294967295", "%u", &intU); 224f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 225f6603c60Sopenharmony_ci EXPECT_EQ(intU, 4294967295U); 226f6603c60Sopenharmony_ci 227f6603c60Sopenharmony_ci ret = sscanf("4294967295", "%15u", &intU); 228f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 229f6603c60Sopenharmony_ci EXPECT_EQ(intU, 4294967295U); 230f6603c60Sopenharmony_ci 231f6603c60Sopenharmony_ci ret = sscanf("4294967295", "%5u", &intU); 232f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 233f6603c60Sopenharmony_ci EXPECT_EQ(intU, 42949U); 234f6603c60Sopenharmony_ci} 235f6603c60Sopenharmony_ci 236f6603c60Sopenharmony_ci /** 237f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0800 238f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of signed char 239f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 240f6603c60Sopenharmony_ci */ 241f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntHhd, Function | MediumTest | Level1) 242f6603c60Sopenharmony_ci{ 243f6603c60Sopenharmony_ci signed char intHhd; 244f6603c60Sopenharmony_ci int ret = sscanf("-128", "%hhd", &intHhd); 245f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 246f6603c60Sopenharmony_ci EXPECT_EQ(intHhd, -128); 247f6603c60Sopenharmony_ci 248f6603c60Sopenharmony_ci ret = sscanf("127", "%hhd", &intHhd); 249f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 250f6603c60Sopenharmony_ci EXPECT_EQ(intHhd, 127); 251f6603c60Sopenharmony_ci 252f6603c60Sopenharmony_ci ret = sscanf("127", "%5hhd", &intHhd); 253f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 254f6603c60Sopenharmony_ci EXPECT_EQ(intHhd, 127); 255f6603c60Sopenharmony_ci 256f6603c60Sopenharmony_ci ret = sscanf("127", "%2hhd", &intHhd); 257f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 258f6603c60Sopenharmony_ci EXPECT_EQ(intHhd, 12); 259f6603c60Sopenharmony_ci 260f6603c60Sopenharmony_ci unsigned char intHhu; 261f6603c60Sopenharmony_ci ret = sscanf("0", "%hhu", &intHhu); 262f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 263f6603c60Sopenharmony_ci EXPECT_EQ(intHhu, 0); 264f6603c60Sopenharmony_ci 265f6603c60Sopenharmony_ci ret = sscanf("255", "%hhu", &intHhu); 266f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 267f6603c60Sopenharmony_ci EXPECT_EQ(intHhu, 255); 268f6603c60Sopenharmony_ci 269f6603c60Sopenharmony_ci ret = sscanf("255", "%5hhu", &intHhu); 270f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 271f6603c60Sopenharmony_ci EXPECT_EQ(intHhu, 255); 272f6603c60Sopenharmony_ci 273f6603c60Sopenharmony_ci ret = sscanf("255", "%2hhu", &intHhu); 274f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 275f6603c60Sopenharmony_ci EXPECT_EQ(intHhu, 25); 276f6603c60Sopenharmony_ci} 277f6603c60Sopenharmony_ci 278f6603c60Sopenharmony_ci /** 279f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_0900 280f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of short int 281f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 282f6603c60Sopenharmony_ci */ 283f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntHd, Function | MediumTest | Level1) 284f6603c60Sopenharmony_ci{ 285f6603c60Sopenharmony_ci short intHd; 286f6603c60Sopenharmony_ci int ret = sscanf("32767", "%hd", &intHd); 287f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 288f6603c60Sopenharmony_ci EXPECT_EQ(intHd, 32767); 289f6603c60Sopenharmony_ci 290f6603c60Sopenharmony_ci ret = sscanf("-32768", "%hd", &intHd); 291f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 292f6603c60Sopenharmony_ci EXPECT_EQ(intHd, -32768); 293f6603c60Sopenharmony_ci 294f6603c60Sopenharmony_ci ret = sscanf("-32768", "%10hd", &intHd); 295f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 296f6603c60Sopenharmony_ci EXPECT_EQ(intHd, -32768); 297f6603c60Sopenharmony_ci 298f6603c60Sopenharmony_ci ret = sscanf("-32768", "%5hd", &intHd); 299f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 300f6603c60Sopenharmony_ci EXPECT_EQ(intHd, -3276); 301f6603c60Sopenharmony_ci 302f6603c60Sopenharmony_ci unsigned short intHu; 303f6603c60Sopenharmony_ci ret = sscanf("0", "%hu", &intHu); 304f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 305f6603c60Sopenharmony_ci EXPECT_EQ(intHu, 0); 306f6603c60Sopenharmony_ci 307f6603c60Sopenharmony_ci ret = sscanf("65535", "%hu", &intHu); 308f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 309f6603c60Sopenharmony_ci EXPECT_EQ(intHu, 65535); 310f6603c60Sopenharmony_ci 311f6603c60Sopenharmony_ci ret = sscanf("65535", "%8hu", &intHu); 312f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 313f6603c60Sopenharmony_ci EXPECT_EQ(intHu, 65535); 314f6603c60Sopenharmony_ci 315f6603c60Sopenharmony_ci ret = sscanf("65535", "%3hu", &intHu); 316f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 317f6603c60Sopenharmony_ci EXPECT_EQ(intHu, 655); 318f6603c60Sopenharmony_ci} 319f6603c60Sopenharmony_ci 320f6603c60Sopenharmony_ci /** 321f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1000 322f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of long int 323f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 324f6603c60Sopenharmony_ci */ 325f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntLd, Function | MediumTest | Level1) 326f6603c60Sopenharmony_ci{ 327f6603c60Sopenharmony_ci long intL; 328f6603c60Sopenharmony_ci int ret = sscanf("-2147483648", "%ld", &intL); 329f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 330f6603c60Sopenharmony_ci EXPECT_EQ(intL, -2147483648); 331f6603c60Sopenharmony_ci 332f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%ld", &intL); 333f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 334f6603c60Sopenharmony_ci EXPECT_EQ(intL, 2147483647); 335f6603c60Sopenharmony_ci 336f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%15ld", &intL); 337f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 338f6603c60Sopenharmony_ci EXPECT_EQ(intL, 2147483647); 339f6603c60Sopenharmony_ci 340f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%5ld", &intL); 341f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 342f6603c60Sopenharmony_ci EXPECT_EQ(intL, 21474); 343f6603c60Sopenharmony_ci 344f6603c60Sopenharmony_ci unsigned long intUl; 345f6603c60Sopenharmony_ci ret = sscanf("0", "%lu", &intUl); 346f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 347f6603c60Sopenharmony_ci EXPECT_EQ(intUl, 0UL); 348f6603c60Sopenharmony_ci 349f6603c60Sopenharmony_ci ret = sscanf("4294967295 ", "%lu", &intUl); 350f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 351f6603c60Sopenharmony_ci EXPECT_EQ(intUl, 4294967295 ); 352f6603c60Sopenharmony_ci 353f6603c60Sopenharmony_ci ret = sscanf("4294967295 ", "%15lu", &intUl); 354f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 355f6603c60Sopenharmony_ci EXPECT_EQ(intUl, 4294967295 ); 356f6603c60Sopenharmony_ci 357f6603c60Sopenharmony_ci ret = sscanf("4294967295 ", "%5lu", &intUl); 358f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 359f6603c60Sopenharmony_ci EXPECT_EQ(intUl, 42949UL); 360f6603c60Sopenharmony_ci} 361f6603c60Sopenharmony_ci 362f6603c60Sopenharmony_ci /** 363f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1100 364f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of long long int 365f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 366f6603c60Sopenharmony_ci */ 367f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntLld, Function | MediumTest | Level1) 368f6603c60Sopenharmony_ci{ 369f6603c60Sopenharmony_ci long long intLl; 370f6603c60Sopenharmony_ci int ret = sscanf("-9223372036854775807", "%lld", &intLl); 371f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 372f6603c60Sopenharmony_ci EXPECT_EQ(intLl, -9223372036854775807); 373f6603c60Sopenharmony_ci 374f6603c60Sopenharmony_ci ret = sscanf("9223372036854775807", "%lld", &intLl); 375f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 376f6603c60Sopenharmony_ci EXPECT_EQ(intLl, 9223372036854775807); 377f6603c60Sopenharmony_ci 378f6603c60Sopenharmony_ci ret = sscanf("9223372036854775807", "%25lld", &intLl); 379f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 380f6603c60Sopenharmony_ci EXPECT_EQ(intLl, 9223372036854775807); 381f6603c60Sopenharmony_ci 382f6603c60Sopenharmony_ci ret = sscanf("9223372036854775807", "%5lld", &intLl); 383f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 384f6603c60Sopenharmony_ci EXPECT_EQ(intLl, 92233); 385f6603c60Sopenharmony_ci 386f6603c60Sopenharmony_ci unsigned long long intUll; 387f6603c60Sopenharmony_ci ret = sscanf("0", "%llu", &intUll); 388f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 389f6603c60Sopenharmony_ci EXPECT_EQ(intUll, 0ULL); 390f6603c60Sopenharmony_ci 391f6603c60Sopenharmony_ci ret = sscanf("18446744073709551615", "%llu", &intUll); 392f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 393f6603c60Sopenharmony_ci EXPECT_EQ(intUll, 18446744073709551615ULL); 394f6603c60Sopenharmony_ci 395f6603c60Sopenharmony_ci ret = sscanf("18446744073709551615", "%25llu", &intUll); 396f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 397f6603c60Sopenharmony_ci EXPECT_EQ(intUll, 18446744073709551615ULL); 398f6603c60Sopenharmony_ci 399f6603c60Sopenharmony_ci ret = sscanf("18446744073709551615", "%5llu", &intUll); 400f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 401f6603c60Sopenharmony_ci EXPECT_EQ(intUll, 18446ULL); 402f6603c60Sopenharmony_ci} 403f6603c60Sopenharmony_ci 404f6603c60Sopenharmony_ci /** 405f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1200 406f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of intmax_t and uintmax_t 407f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 408f6603c60Sopenharmony_ci */ 409f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntMax, Function | MediumTest | Level1) 410f6603c60Sopenharmony_ci{ 411f6603c60Sopenharmony_ci intmax_t intMax; 412f6603c60Sopenharmony_ci int ret = sscanf("-9223372036854775807", "%jd", &intMax); 413f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 414f6603c60Sopenharmony_ci EXPECT_EQ(intMax, -9223372036854775807); 415f6603c60Sopenharmony_ci 416f6603c60Sopenharmony_ci ret = sscanf("9223372036854775807", "%jd", &intMax); 417f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 418f6603c60Sopenharmony_ci EXPECT_EQ(intMax, 9223372036854775807); 419f6603c60Sopenharmony_ci 420f6603c60Sopenharmony_ci ret = sscanf("9223372036854775807", "%25jd", &intMax); 421f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 422f6603c60Sopenharmony_ci EXPECT_EQ(intMax, 9223372036854775807); 423f6603c60Sopenharmony_ci 424f6603c60Sopenharmony_ci ret = sscanf("9223372036854775807", "%5jd", &intMax); 425f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 426f6603c60Sopenharmony_ci EXPECT_EQ(intMax, 92233); 427f6603c60Sopenharmony_ci 428f6603c60Sopenharmony_ci uintmax_t intUmax; 429f6603c60Sopenharmony_ci ret = sscanf("0", "%jd", &intUmax); 430f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 431f6603c60Sopenharmony_ci EXPECT_EQ(intUmax, 0U); 432f6603c60Sopenharmony_ci 433f6603c60Sopenharmony_ci ret = sscanf("18446744073709551615", "%jd", &intUmax); 434f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 435f6603c60Sopenharmony_ci EXPECT_EQ(intUmax, 18446744073709551615ULL); 436f6603c60Sopenharmony_ci 437f6603c60Sopenharmony_ci ret = sscanf("18446744073709551615", "%25jd", &intUmax); 438f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 439f6603c60Sopenharmony_ci EXPECT_EQ(intUmax, 18446744073709551615ULL); 440f6603c60Sopenharmony_ci 441f6603c60Sopenharmony_ci ret = sscanf("18446744073709551615", "%5jd", &intUmax); 442f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 443f6603c60Sopenharmony_ci EXPECT_EQ(intUmax, 18446U); 444f6603c60Sopenharmony_ci} 445f6603c60Sopenharmony_ci 446f6603c60Sopenharmony_ci/** 447f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1300 448f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of size_t 449f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 450f6603c60Sopenharmony_ci */ 451f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfSizeT, Function | MediumTest | Level1) 452f6603c60Sopenharmony_ci{ 453f6603c60Sopenharmony_ci size_t intS; 454f6603c60Sopenharmony_ci int ret = sscanf("0", "%zd", &intS); 455f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 456f6603c60Sopenharmony_ci EXPECT_EQ(intS, 0U); 457f6603c60Sopenharmony_ci 458f6603c60Sopenharmony_ci ret = sscanf("4294967295", "%zd", &intS); 459f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 460f6603c60Sopenharmony_ci EXPECT_EQ(intS, 4294967295U); 461f6603c60Sopenharmony_ci 462f6603c60Sopenharmony_ci ret = sscanf("4294967295", "%15zd", &intS); 463f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 464f6603c60Sopenharmony_ci EXPECT_EQ(intS, 4294967295U); 465f6603c60Sopenharmony_ci 466f6603c60Sopenharmony_ci ret = sscanf("4294967295", "%5zd", &intS); 467f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 468f6603c60Sopenharmony_ci EXPECT_EQ(intS, 42949U); 469f6603c60Sopenharmony_ci} 470f6603c60Sopenharmony_ci 471f6603c60Sopenharmony_ci/** 472f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1400 473f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of ptrdiff_t 474f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 475f6603c60Sopenharmony_ci */ 476f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfPtrdiffT, Function | MediumTest | Level1) 477f6603c60Sopenharmony_ci{ 478f6603c60Sopenharmony_ci ptrdiff_t intP; 479f6603c60Sopenharmony_ci int ret = sscanf("-2147483648", "%td", &intP); 480f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 481f6603c60Sopenharmony_ci EXPECT_EQ(intP, -2147483648); 482f6603c60Sopenharmony_ci 483f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%td", &intP); 484f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 485f6603c60Sopenharmony_ci EXPECT_EQ(intP, 2147483647); 486f6603c60Sopenharmony_ci 487f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%15td", &intP); 488f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 489f6603c60Sopenharmony_ci EXPECT_EQ(intP, 2147483647); 490f6603c60Sopenharmony_ci 491f6603c60Sopenharmony_ci ret = sscanf("2147483647", "%5td", &intP); 492f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 493f6603c60Sopenharmony_ci EXPECT_EQ(intP, 21474); 494f6603c60Sopenharmony_ci} 495f6603c60Sopenharmony_ci 496f6603c60Sopenharmony_ci/** 497f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1500 498f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of pointer 499f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 500f6603c60Sopenharmony_ci */ 501f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfPointer, Function | MediumTest | Level1) 502f6603c60Sopenharmony_ci{ 503f6603c60Sopenharmony_ci int i; 504f6603c60Sopenharmony_ci int ret = sscanf("0x61", "%p", &i); 505f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 506f6603c60Sopenharmony_ci EXPECT_EQ(i, 97); 507f6603c60Sopenharmony_ci 508f6603c60Sopenharmony_ci ret = sscanf("0xffffff", "%15p", &i); 509f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 510f6603c60Sopenharmony_ci EXPECT_EQ(i, 16777215); 511f6603c60Sopenharmony_ci 512f6603c60Sopenharmony_ci ret = sscanf("0xffffff", "%6p", &i); 513f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 514f6603c60Sopenharmony_ci EXPECT_EQ(i, 65535); 515f6603c60Sopenharmony_ci} 516f6603c60Sopenharmony_ci 517f6603c60Sopenharmony_ci /** 518f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1600 519f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of hex and oct 520f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 521f6603c60Sopenharmony_ci */ 522f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfIntHexOct, Function | MediumTest | Level1) 523f6603c60Sopenharmony_ci{ 524f6603c60Sopenharmony_ci int i; 525f6603c60Sopenharmony_ci int ret = sscanf("a", "%x", &i); 526f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 527f6603c60Sopenharmony_ci EXPECT_EQ(i, 10); 528f6603c60Sopenharmony_ci 529f6603c60Sopenharmony_ci ret = sscanf("abaaaaa", "%6x", &i); 530f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 531f6603c60Sopenharmony_ci EXPECT_EQ(i, 11250346); 532f6603c60Sopenharmony_ci 533f6603c60Sopenharmony_ci ret = sscanf("aba", "%6x", &i); 534f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 535f6603c60Sopenharmony_ci EXPECT_EQ(i, 2746); 536f6603c60Sopenharmony_ci 537f6603c60Sopenharmony_ci ret = sscanf("A", "%X", &i); 538f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 539f6603c60Sopenharmony_ci EXPECT_EQ(i, 10); 540f6603c60Sopenharmony_ci 541f6603c60Sopenharmony_ci ret = sscanf("ABAAAAA", "%6X", &i); 542f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 543f6603c60Sopenharmony_ci EXPECT_EQ(i, 11250346); 544f6603c60Sopenharmony_ci 545f6603c60Sopenharmony_ci ret = sscanf("ABA", "%6X", &i); 546f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 547f6603c60Sopenharmony_ci EXPECT_EQ(i, 2746); 548f6603c60Sopenharmony_ci 549f6603c60Sopenharmony_ci ret = sscanf("12", "%o", &i); 550f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 551f6603c60Sopenharmony_ci EXPECT_EQ(i, 10); 552f6603c60Sopenharmony_ci 553f6603c60Sopenharmony_ci ret = sscanf("123", "%4o", &i); 554f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 555f6603c60Sopenharmony_ci EXPECT_EQ(i, 83); 556f6603c60Sopenharmony_ci 557f6603c60Sopenharmony_ci ret = sscanf("12345", "%4o", &i); 558f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 559f6603c60Sopenharmony_ci EXPECT_EQ(i, 668); 560f6603c60Sopenharmony_ci} 561f6603c60Sopenharmony_ci 562f6603c60Sopenharmony_ci/** 563f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1700 564f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of regexp 565f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 566f6603c60Sopenharmony_ci */ 567f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfRegexp, Function | MediumTest | Level1) 568f6603c60Sopenharmony_ci{ 569f6603c60Sopenharmony_ci char str[50] = {0}; 570f6603c60Sopenharmony_ci int ret = sscanf("hello!world", "%[^!]", str); 571f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 572f6603c60Sopenharmony_ci EXPECT_STREQ(str, "hello"); 573f6603c60Sopenharmony_ci 574f6603c60Sopenharmony_ci ret = sscanf("1234956abolcd", "%[1-6a-d]", str); 575f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 576f6603c60Sopenharmony_ci EXPECT_STREQ(str, "1234"); 577f6603c60Sopenharmony_ci 578f6603c60Sopenharmony_ci ret = sscanf("123456abolcd", "%[1-6a-d]", str); 579f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 580f6603c60Sopenharmony_ci EXPECT_STREQ(str, "123456ab"); 581f6603c60Sopenharmony_ci 582f6603c60Sopenharmony_ci ret = sscanf("123ABCD", "%[^A-Z]", str); 583f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 584f6603c60Sopenharmony_ci EXPECT_STREQ(str, "123"); 585f6603c60Sopenharmony_ci 586f6603c60Sopenharmony_ci ret = sscanf("ABC-DEF@123", "%*[^-]-%[^@]", str); 587f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 588f6603c60Sopenharmony_ci EXPECT_STREQ(str, "DEF"); 589f6603c60Sopenharmony_ci} 590f6603c60Sopenharmony_ci 591f6603c60Sopenharmony_ci /** 592f6603c60Sopenharmony_ci * @tc.number SUB_KERNEL_IO_SSCANF_1800 593f6603c60Sopenharmony_ci * @tc.name sscanf basic function test of return value 594f6603c60Sopenharmony_ci * @tc.desc [C- SOFTWARE -0200] 595f6603c60Sopenharmony_ci */ 596f6603c60Sopenharmony_ciHWTEST_F(IoTest, testSscanfReturnValue, Function | MediumTest | Level1) 597f6603c60Sopenharmony_ci{ 598f6603c60Sopenharmony_ci char str[50] = {0}; 599f6603c60Sopenharmony_ci int ret = sscanf("helloworld", "%*s%s", str); 600f6603c60Sopenharmony_ci EXPECT_EQ(ret, -1) << "> sscanf fail, errno = " << errno; 601f6603c60Sopenharmony_ci 602f6603c60Sopenharmony_ci ret = sscanf("hello", "ab%5s123%*3s|>>>|", str); 603f6603c60Sopenharmony_ci EXPECT_EQ(ret, 0) << "> sscanf fail, errno = " << errno; 604f6603c60Sopenharmony_ci 605f6603c60Sopenharmony_ci ret = sscanf("", "%*s%s", str); 606f6603c60Sopenharmony_ci EXPECT_EQ(ret, -1) << "> sscanf fail, errno = " << errno; 607f6603c60Sopenharmony_ci 608f6603c60Sopenharmony_ci ret = sscanf("ab/c", "%s/%c/%d/%f", str); 609f6603c60Sopenharmony_ci EXPECT_EQ(ret, 1) << "> sscanf fail, errno = " << errno; 610f6603c60Sopenharmony_ci EXPECT_STREQ(str, "ab/c"); 611f6603c60Sopenharmony_ci 612f6603c60Sopenharmony_ci char c; 613f6603c60Sopenharmony_ci ret = sscanf("ab c", "%s %c %d/%f", str, &c); 614f6603c60Sopenharmony_ci EXPECT_EQ(ret, 2) << "> sscanf fail, errno = " << errno; 615f6603c60Sopenharmony_ci EXPECT_STREQ(str, "ab"); 616f6603c60Sopenharmony_ci EXPECT_EQ(c, 'c'); 617f6603c60Sopenharmony_ci 618f6603c60Sopenharmony_ci int ip[4] = {0}; 619f6603c60Sopenharmony_ci ret = sscanf("11.11.11/11", "%d.%d.%d.%d", &ip[0], &ip[1], &ip[2], &ip[3]); 620f6603c60Sopenharmony_ci EXPECT_EQ(ret, 3) << "> sscanf fail, errno = " << errno; 621f6603c60Sopenharmony_ci EXPECT_EQ(ip[0], 11); 622f6603c60Sopenharmony_ci EXPECT_EQ(ip[1], 11); 623f6603c60Sopenharmony_ci EXPECT_EQ(ip[2], 11); 624f6603c60Sopenharmony_ci EXPECT_EQ(ip[3], 0); 625f6603c60Sopenharmony_ci} 626