Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
opt
cpr
opt
curl
tests
unit
unit1398.c
Go to the documentation of this file.
1
/***************************************************************************
2
* _ _ ____ _
3
* Project ___| | | | _ \| |
4
* / __| | | | |_) | |
5
* | (__| |_| | _ <| |___
6
* \___|\___/|_| \_\_____|
7
*
8
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
9
*
10
* This software is licensed as described in the file COPYING, which
11
* you should have received as part of this distribution. The terms
12
* are also available at https://curl.haxx.se/docs/copyright.html.
13
*
14
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
* copies of the Software, and permit persons to whom the Software is
16
* furnished to do so, under the terms of the COPYING file.
17
*
18
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
* KIND, either express or implied.
20
*
21
***************************************************************************/
22
#include "
curlcheck.h
"
23
24
#include "
curl/mprintf.h
"
25
26
static
CURLcode
unit_setup
(
void
) {
return
CURLE_OK
;}
27
static
void
unit_stop
(
void
) {}
28
29
UNITTEST_START
30
31
int
rc
;
32
char
buf
[3] = {
'b'
,
'u'
,
'g'
};
33
const
char
*
str
=
"bug"
;
34
int
width
= 3;
35
char
output
[24];
36
37
/*#define curl_msnprintf snprintf */
38
39
/* without a trailing zero */
40
rc
=
curl_msnprintf
(
output
, 4,
"%.*s"
,
width
,
buf
);
41
fail_unless
(
rc
== 3,
"return code should be 3"
);
42
fail_unless
(!strcmp(
output
,
"bug"
),
"wrong output"
);
43
44
/* with a trailing zero */
45
rc
=
curl_msnprintf
(
output
, 4,
"%.*s"
,
width
,
str
);
46
fail_unless
(
rc
== 3,
"return code should be 3"
);
47
fail_unless
(!strcmp(
output
,
"bug"
),
"wrong output"
);
48
49
width
= 2;
50
/* one byte less */
51
rc
=
curl_msnprintf
(
output
, 4,
"%.*s"
,
width
,
buf
);
52
fail_unless
(
rc
== 2,
"return code should be 2"
);
53
fail_unless
(!strcmp(
output
,
"bu"
),
"wrong output"
);
54
55
/* string with larger precision */
56
rc
=
curl_msnprintf
(
output
, 8,
"%.8s"
,
str
);
57
fail_unless
(
rc
== 3,
"return code should be 3"
);
58
fail_unless
(!strcmp(
output
,
"bug"
),
"wrong output"
);
59
60
/* longer string with precision */
61
rc
=
curl_msnprintf
(
output
, 8,
"%.3s"
,
"0123456789"
);
62
fail_unless
(
rc
== 3,
"return code should be 3"
);
63
fail_unless
(!strcmp(
output
,
"012"
),
"wrong output"
);
64
65
/* negative width */
66
rc
=
curl_msnprintf
(
output
, 8,
"%-8s"
,
str
);
67
fail_unless
(
rc
== 8,
"return code should be 8"
);
68
fail_unless
(!strcmp(
output
,
"bug "
),
"wrong output"
);
69
70
/* larger width that string length */
71
rc
=
curl_msnprintf
(
output
, 8,
"%8s"
,
str
);
72
fail_unless
(
rc
== 8,
"return code should be 8"
);
73
fail_unless
(!strcmp(
output
,
" bu"
),
"wrong output"
);
74
75
/* output a number in a limited output */
76
rc
=
curl_msnprintf
(
output
, 4,
"%d"
, 10240);
77
/* TODO: this should return 5 to be POSIX/snprintf compliant! */
78
fail_unless
(
rc
== 4,
"return code should be 4"
);
79
fail_unless
(!strcmp(
output
,
"102"
),
"wrong output"
);
80
81
/* padded strings */
82
rc
=
curl_msnprintf
(
output
, 16,
"%8s%8s"
,
str
,
str
);
83
fail_unless
(
rc
== 16,
"return code should be 16"
);
84
fail_unless
(!strcmp(
output
,
" bug bu"
),
"wrong output"
);
85
86
/* padded numbers */
87
rc
=
curl_msnprintf
(
output
, 16,
"%8d%8d"
, 1234, 5678);
88
fail_unless
(
rc
== 16,
"return code should be 16"
);
89
fail_unless
(!strcmp(
output
,
" 1234 567"
),
"wrong output"
);
90
91
UNITTEST_STOP
UNITTEST_START
#define UNITTEST_START
Definition:
curlcheck.h:86
CURLcode
CURLcode
Definition:
curl.h:454
rc
UNITTEST_START int rc
Definition:
unit1398.c:31
curlcheck.h
str
const char * str
Definition:
unit1398.c:33
unit_setup
static CURLcode unit_setup(void)
Definition:
unit1398.c:26
mprintf.h
curl_msnprintf
CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, const char *format,...)
Definition:
mprintf.c:1018
CURLE_OK
Definition:
curl.h:455
UNITTEST_STOP
#define UNITTEST_STOP
Definition:
curlcheck.h:95
width
int width
Definition:
unit1398.c:34
output
char output[24]
Definition:
unit1398.c:35
buf
char buf[3]
Definition:
unit1398.c:32
fail_unless
fail_unless(rc==3,"return code should be 3")
unit_stop
static void unit_stop(void)
Definition:
unit1398.c:27
rc_tagdetect_client
Author(s): Monika Florek-Jasinska
, Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:16