Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
97cc28ff
Commit
97cc28ff
authored
Nov 04, 2004
by
Aneurin Price
Committed by
Alexandre Julliard
Nov 04, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Move printf tests from scanf.c to printf.c (and fix one on the
way). - Add some more.
parent
990ea44e
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
153 additions
and
53 deletions
+153
-53
.cvsignore
dlls/msvcrt/tests/.cvsignore
+1
-0
Makefile.in
dlls/msvcrt/tests/Makefile.in
+1
-0
printf.c
dlls/msvcrt/tests/printf.c
+151
-0
scanf.c
dlls/msvcrt/tests/scanf.c
+0
-53
No files found.
dlls/msvcrt/tests/.cvsignore
View file @
97cc28ff
...
...
@@ -4,6 +4,7 @@ environ.ok
file.ok
headers.ok
heap.ok
printf.ok
scanf.ok
string.ok
testlist.c
...
...
dlls/msvcrt/tests/Makefile.in
View file @
97cc28ff
...
...
@@ -12,6 +12,7 @@ CTESTS = \
file.c
\
headers.c
\
heap.c
\
printf.c
\
scanf.c
\
string.c
\
time.c
...
...
dlls/msvcrt/tests/printf.c
0 → 100644
View file @
97cc28ff
/*
* Conformance tests for *printf functions.
*
* Copyright 2002 Uwe Bonnes
* Copyright 2004 Aneurin Price
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#include "wine/test.h"
static
void
test_sprintf
(
void
)
{
char
buffer
[
100
];
const
char
*
I64d
=
"%I64d"
;
const
char
*
O4c
=
"%04c"
;
const
char
*
O4s
=
"%04s"
;
const
char
*
hash012p
=
"%#012p"
;
double
pnumber
=
789456123
;
/** WCHAR widestring[]={'w','i','d','e','s','t','r','i','n','g',0};**/
sprintf
(
buffer
,
"%+#23.15e"
,
pnumber
);
todo_wine
{
ok
(
strstr
(
buffer
,
"e+008"
)
!=
0
,
"Sprintf different
\"
%s
\"\n
"
,
buffer
);
}
sprintf
(
buffer
,
I64d
,((
ULONGLONG
)
0xffffffff
)
*
0xffffffff
);
todo_wine
{
ok
(
strlen
(
buffer
)
==
11
,
"Problem with long long
\"
%s
\"\n
"
,
buffer
);
}
sprintf
(
buffer
,
"%lld"
,((
ULONGLONG
)
0xffffffff
)
*
0xffffffff
);
todo_wine
{
ok
(
strlen
(
buffer
)
==
1
,
"Problem with
\"
ll
\"
interpretation
\"
%s
\"\n
"
,
buffer
);
}
/** This one actually crashes WINE at the moment, when using builtin msvcrt.dll.
sprintf(buffer,"%S",widestring);
todo_wine
{
ok(strlen(buffer) == 10,"Problem with \"%%S\" interpretation \"%s\"\n",buffer);
}
**/
sprintf
(
buffer
,
O4c
,
'1'
);
todo_wine
{
ok
(
!
strcmp
(
buffer
,
"0001"
),
"Character not zero-prefixed
\"
%s
\"\n
"
,
buffer
);
}
sprintf
(
buffer
,
"%p"
,(
void
*
)
57
);
todo_wine
{
ok
(
!
strcmp
(
buffer
,
"00000039"
),
"Pointer formatted incorrectly
\"
%s
\"\n
"
,
buffer
);
}
sprintf
(
buffer
,
hash012p
,(
void
*
)
57
);
todo_wine
{
ok
(
!
strcmp
(
buffer
,
" 0X00000039"
),
"Pointer formatted incorrectly
\"
%s
\"\n
"
,
buffer
);
}
sprintf
(
buffer
,
O4s
,
"foo"
);
/**Warning again**/
todo_wine
{
ok
(
!
strcmp
(
buffer
,
"0foo"
),
"String not zero-prefixed
\"
%s
\"\n
"
,
buffer
);
}
}
static
void
test_swprintf
(
void
)
{
wchar_t
buffer
[
100
];
const
wchar_t
I64d
[]
=
{
'%'
,
'I'
,
'6'
,
'4'
,
'd'
,
0
};
double
pnumber
=
789456123
;
const
wchar_t
TwentyThreePoint15e
[]
=
{
'%'
,
'+'
,
'#'
,
'2'
,
'3'
,
'.'
,
'1'
,
'5'
,
'e'
,
0
};
const
wchar_t
e008
[]
=
{
'e'
,
'+'
,
'0'
,
'0'
,
'8'
,
0
};
const
char
string
[]
=
{
's'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
const
wchar_t
S
[]
=
{
'%'
,
'S'
,
0
};
swprintf
(
buffer
,
TwentyThreePoint15e
,
pnumber
);
todo_wine
{
ok
(
wcsstr
(
buffer
,
e008
)
!=
0
,
"Sprintf different
\n
"
);
}
swprintf
(
buffer
,
I64d
,((
ULONGLONG
)
0xffffffff
)
*
0xffffffff
);
todo_wine
{
ok
(
wcslen
(
buffer
)
==
11
,
"Problem with long long
\n
"
);
}
swprintf
(
buffer
,
S
,
string
);
ok
(
wcslen
(
buffer
)
==
6
,
"Problem with
\"
%%S
\"
interpretation
\n
"
);
}
static
void
test_fwprintf
(
void
)
{
const
char
*
string
=
"not a wide string"
;
todo_wine
{
ok
(
fwprintf
(
fopen
(
"/dev/null"
,
"r+"
),(
wchar_t
*
)
string
)
==
-
1
,
"Non-wide string should not be printed by fwprintf
\n
"
);
}
}
static
void
test_snprintf
(
void
)
{
struct
snprintf_test
{
const
char
*
format
;
int
expected
;
struct
{
int
retval
;
int
render
;
}
todo
;
};
/* Pre-2.1 libc behaviour, not C99 compliant. */
const
struct
snprintf_test
tests
[]
=
{{
"short"
,
5
,
{
0
,
0
}},
{
"justfit"
,
7
,
{
0
,
0
}},
{
"justfits"
,
8
,
{
0
,
1
}},
{
"muchlonger"
,
-
1
,
{
1
,
1
}}};
char
buffer
[
8
];
const
int
bufsiz
=
sizeof
buffer
;
unsigned
int
i
;
for
(
i
=
0
;
i
<
sizeof
tests
/
sizeof
tests
[
0
];
i
++
)
{
const
char
*
fmt
=
tests
[
i
].
format
;
const
int
expect
=
tests
[
i
].
expected
;
const
int
n
=
_snprintf
(
buffer
,
bufsiz
,
fmt
);
const
int
valid
=
n
<
0
?
bufsiz
:
(
n
==
bufsiz
?
n
:
n
+
1
);
todo
(
tests
[
i
].
todo
.
retval
?
"wine"
:
"none"
)
ok
(
n
==
expect
,
"
\"
%s
\"
: expected %d, returned %d
\n
"
,
fmt
,
expect
,
n
);
todo
(
tests
[
i
].
todo
.
render
?
"wine"
:
"none"
)
ok
(
!
memcmp
(
fmt
,
buffer
,
valid
),
"
\"
%s
\"
: rendered
\"
%.*s
\"\n
"
,
fmt
,
valid
,
buffer
);
};
}
START_TEST
(
printf
)
{
test_sprintf
();
test_swprintf
();
test_fwprintf
();
test_snprintf
();
}
dlls/msvcrt/tests/scanf.c
View file @
97cc28ff
...
...
@@ -97,60 +97,7 @@ static void test_sscanf( void )
ok
(
result
==
123
,
"Wrong number read
\n
"
);
}
static
void
test_sprintf
(
void
)
{
char
buffer
[
100
];
const
char
*
I64d
=
"%I64d"
;
double
pnumber
=
789456123
;
sprintf
(
buffer
,
"%+#23.15e"
,
pnumber
);
todo_wine
{
ok
(
strstr
(
buffer
,
"e+008"
)
!=
0
,
"Sprintf different
\"
%s
\"\n
"
,
buffer
);
}
sprintf
(
buffer
,
I64d
,((
ULONGLONG
)
0xffffffff
)
*
0xffffffff
);
todo_wine
{
ok
(
strlen
(
buffer
)
==
19
,
"Problem with long long
\"
%s
\"\n
"
,
buffer
);
}
}
static
void
test_snprintf
(
void
)
{
struct
snprintf_test
{
const
char
*
format
;
int
expected
;
struct
{
int
retval
;
int
render
;
}
todo
;
};
/* Pre-2.1 libc behaviour, not C99 compliant. */
const
struct
snprintf_test
tests
[]
=
{{
"short"
,
5
,
{
0
,
0
}},
{
"justfit"
,
7
,
{
0
,
0
}},
{
"justfits"
,
8
,
{
0
,
1
}},
{
"muchlonger"
,
-
1
,
{
1
,
1
}}};
char
buffer
[
8
];
const
int
bufsiz
=
sizeof
buffer
;
unsigned
int
i
;
for
(
i
=
0
;
i
<
sizeof
tests
/
sizeof
tests
[
0
];
i
++
)
{
const
char
*
fmt
=
tests
[
i
].
format
;
const
int
expect
=
tests
[
i
].
expected
;
const
int
n
=
_snprintf
(
buffer
,
bufsiz
,
fmt
);
const
int
valid
=
n
<
0
?
bufsiz
:
(
n
==
bufsiz
?
n
:
n
+
1
);
todo
(
tests
[
i
].
todo
.
retval
?
"wine"
:
"none"
)
ok
(
n
==
expect
,
"
\"
%s
\"
: expected %d, returned %d
\n
"
,
fmt
,
expect
,
n
);
todo
(
tests
[
i
].
todo
.
render
?
"wine"
:
"none"
)
ok
(
!
memcmp
(
fmt
,
buffer
,
valid
),
"
\"
%s
\"
: rendered
\"
%.*s
\"\n
"
,
fmt
,
valid
,
buffer
);
};
}
START_TEST
(
scanf
)
{
test_sscanf
();
test_sprintf
();
test_snprintf
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment