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
1a6898b8
Commit
1a6898b8
authored
Oct 29, 2002
by
Patrik Stridvall
Committed by
Alexandre Julliard
Oct 29, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added support for excluding optional fields.
parent
1e22e3b3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
110 additions
and
39 deletions
+110
-39
tests.dat
tools/winapi/tests.dat
+11
-11
winapi_test
tools/winapi/winapi_test
+99
-28
No files found.
tools/winapi/tests.dat
View file @
1a6898b8
...
...
@@ -37,8 +37,8 @@ COLORADJUSTMENT
# DEVMODEA
# DEVMODEW
DIBSECTION
DISPLAY_DEVICEA
DISPLAY_DEVICEW
DISPLAY_DEVICEA
: !DeviceID !DeviceKey
DISPLAY_DEVICEW
: !DeviceID !DeviceKey
DOCINFOA
DOCINFOW
EMR
...
...
@@ -47,8 +47,8 @@ EMRANGLEARC
EMRARC
EMRBITBLT
EMRCREATEBRUSHINDIRECT
EMRCREATECOLORSPACE
EMRCREATECOLORSPACEW
#
EMRCREATECOLORSPACE
#
EMRCREATECOLORSPACEW
EMRCREATEDIBPATTERNBRUSHPT
EMRCREATEMONOBRUSH
# EMRCREATEPALETTE
...
...
@@ -91,18 +91,18 @@ EMRSETARCDIRECTION
EMRSETBKCOLOR
EMRSETBRUSHORGEX
EMRSETCOLORADJUSTMENT
EMRSETDIBITSTODE
IV
CE
EMRSETDIBITSTODE
VI
CE
EMRSETMAPPERFLAGS
EMRSETMITERLIMIT
# EMRSETPALETTEENTRIES
EMRSETPIXELV
EMRSETTEXTJUSTIFICATION
#
EMRSETTEXTJUSTIFICATION
EMRSETVIEWPORTEXTEX
EMRSETWORLDTRANSFORM
EMRSTRETCHBLT
EMRSTRETCHDIBITS
EMRTEXT
ENHMETAHEADER
ENHMETAHEADER
: !szlMicrometers
ENHMETARECORD
ENUMLOGFONTA
ENUMLOGFONTEXA
...
...
@@ -197,8 +197,8 @@ LOAD_DLL_DEBUG_INFO
MEMORYSTATUS
OFSTRUCT
OSVERSIONINFOA
OSVERSIONINFOEXA
OSVERSIONINFOEXW
OSVERSIONINFOEXA
: !wSuiteMask !wProductType !wReserved
OSVERSIONINFOEXW
: !wSuiteMask !wProductType !wReserved
OSVERSIONINFOW
OUTPUT_DEBUG_STRING_INFO
OVERLAPPED
...
...
@@ -270,7 +270,7 @@ IMAGE_NT_HEADERS
IMAGE_OPTIONAL_HEADER
IMAGE_OS2_HEADER
# IMAGE_RELOCATION
IMAGE_RESOURCE_DATA_ENTRY
IMAGE_RESOURCE_DATA_ENTRY
: !ResourceHandle
IMAGE_RESOURCE_DIRECTORY
IMAGE_RESOURCE_DIRECTORY_ENTRY
IMAGE_RESOURCE_DIRECTORY_STRING
...
...
@@ -408,7 +408,7 @@ STYLESTRUCT
TOGGLEKEYS
TPMPARAMS
TRACKMOUSEEVENT
WINDOWINFO
WINDOWINFO
: !dwWindowStatus
# WINDOWPLACEMENT
WINDOWPOS
WNDCLASSA
...
...
tools/winapi/winapi_test
View file @
1a6898b8
...
...
@@ -386,9 +386,11 @@ sub output_header {
}
}
print
OUT
" */\n"
;
print
OUT
"\n"
;
print
OUT
"#define WINVER 0x0501\n"
;
print
OUT
"#define _WIN32_WINNT 0x0501\n"
;
print
OUT
"\n"
;
print
OUT
"#define WINE_NOWINSOCK\n"
;
print
OUT
"\n"
;
foreach
my
$test
(
@tests
)
{
...
...
@@ -402,6 +404,15 @@ sub output_header {
print
OUT
"\n"
;
print
OUT
"/***********************************************************************\n"
;
print
OUT
" * Compability macros\n"
;
print
OUT
" */\n"
;
print
OUT
"\n"
;
print
OUT
"#define DWORD_PTR UINT_PTR\n"
;
print
OUT
"#define LONG_PTR INT_PTR\n"
;
print
OUT
"#define ULONG_PTR UINT_PTR\n"
;
print
OUT
"\n"
;
print
OUT
"/***********************************************************************\n"
;
print
OUT
" * Windows API extension\n"
;
print
OUT
" */\n"
;
print
OUT
"\n"
;
...
...
@@ -470,6 +481,65 @@ sub output_footer {
}
########################################################################
# output_test_pack_type
sub
output_test_pack_type
{
local
*
OUT
=
shift
;
my
$types
=
shift
;
my
$type_name
=
shift
;
my
$type
=
shift
;
my
$type_align
=
$type
->
align
;
my
$type_pack
=
$type
->
pack
;
my
$type_size
=
$type
->
size
;
print
OUT
" /* $type_name (pack $type_pack) */\n"
;
if
(
defined
(
$type_align
)
&&
defined
(
$type_size
))
{
print
OUT
" TEST_TYPE($type_name, $type_size, $type_align);\n"
;
}
}
sub
output_test_pack_fields
{
local
*
OUT
=
shift
;
my
$types
=
shift
;
my
$type_name
=
shift
;
my
$type
=
shift
;
my
$offset
=
shift
;
my
$optional_field
=
shift
;
foreach
my
$field
(
$type
->
fields
())
{
my
$field_type_name
=
$field
->
type_name
;
my
$field_name
=
$field
->
name
;
my
$field_size
=
$field
->
size
;
my
$field_offset
=
$field
->
offset
;
my
$field_align
=
$field
->
align
;
next
if
$field_name
eq
""
||
(
defined
(
$field_size
)
&&
$field_size
<
0
);
if
(
$$optional_field
{
$field_name
})
{
# Nothing
}
elsif
(
defined
(
$field_size
)
&&
defined
(
$field_offset
))
{
$field_offset
+=
$offset
;
if
(
$field_name
eq
"DUMMYSTRUCTNAME"
)
{
print
OUT
"#ifdef NONAMELESSSTRUCT\n"
;
print
OUT
" TEST_FIELD($type_name, $field_type_name, $field_name, "
;
print
OUT
"$field_offset, $field_size, $field_align);\n"
;
print
OUT
"#else\n"
;
output_test_pack_fields
(
\*
OUT
,
$types
,
$type_name
,
$$types
{
$field_type_name
},
$field_offset
,
$optional_field
);
print
OUT
"#endif\n"
;
}
else
{
print
OUT
" TEST_FIELD($type_name, $field_type_name, $field_name, "
;
print
OUT
"$field_offset, $field_size, $field_align);\n"
;
}
}
else
{
$output
->
write
(
"$type_name: $field_type_name: $field_name: test not generated (offset not defined)\n"
);
}
}
}
########################################################################
# output_test_pack
sub
output_test_pack
{
...
...
@@ -483,51 +553,50 @@ sub output_test_pack {
my
%
type_name_not_used
;
foreach
my
$type_name
(
@type_names
)
{
foreach
my
$_type_name
(
@type_names
)
{
my
$type_name
=
$_type_name
;
$type_name
=~
s/:.*?$//
;
$type_name_not_used
{
$type_name
}
=
1
;
}
foreach
my
$header
(
@headers
)
{
my
$types
=
$file2types
{
"include/$header"
};
foreach
my
$type_name
(
@type_names
)
{
foreach
my
$_type_name
(
@type_names
)
{
my
$type_name
=
$_type_name
;
my
%
optional_field
=
();
if
(
$type_name
=~
s/:\s*(.*?)$//
)
{
my
@fields
=
split
/\s+/
,
$1
;
foreach
my
$field
(
@fields
)
{
if
(
$field
=~
s/^!//
)
{
$optional_field
{
$field
}
++
;
}
}
}
my
$type
=
$$types
{
$type_name
};
if
(
!
defined
(
$type
))
{
next
;
}
$type_name_not_used
{
$type_name
}
=
0
;
my
$type_align
=
$type
->
align
;
my
$type_pack
=
$type
->
pack
;
my
$type_size
=
$type
->
size
;
print
OUT
" /* $type_name (pack $type_pack) */\n"
;
if
(
defined
(
$type_align
)
&&
defined
(
$type_size
))
{
print
OUT
" TEST_TYPE($type_name, $type_size, $type_align);\n"
;
}
foreach
my
$field
(
$type
->
fields
())
{
my
$field_type_name
=
$field
->
type_name
;
my
$field_name
=
$field
->
name
;
my
$field_size
=
$field
->
size
;
my
$field_offset
=
$field
->
offset
;
my
$field_align
=
$field
->
align
;
next
if
$field_name
eq
""
||
(
defined
(
$field_size
)
&&
$field_size
<
0
);
if
(
defined
(
$field_size
)
&&
defined
(
$field_offset
))
{
print
OUT
" TEST_FIELD($type_name, $field_type_name, $field_name, $field_offset, $field_size, $field_align);\n"
;
}
else
{
$output
->
write
(
"$type_name: $field_type_name: $field_name: test not generated (offset not defined)\n"
);
}
if
(
!
scalar
(
keys
(
%
optional_field
)))
{
output_test_pack_type
(
\*
OUT
,
$types
,
$type_name
,
$type
);
}
else
{
print
OUT
" /* $type_name */\n"
;
}
output_test_pack_fields
(
\*
OUT
,
$types
,
$type_name
,
$type
,
0
,
\%
optional_field
);
print
OUT
"\n"
;
}
}
foreach
my
$type_name
(
@type_names
)
{
foreach
my
$_type_name
(
@type_names
)
{
my
$type_name
=
$_type_name
;
$type_name
=~
s/:.*?$//
;
if
(
$type_name_not_used
{
$type_name
})
{
$output
->
write
(
"$test_dir: $test: $type_name: type not found (ignored)\n"
);
#
$output->write("$test_dir: $test: $type_name: type not found (ignored)\n");
}
}
}
...
...
@@ -559,6 +628,8 @@ sub output_file {
}
output_footer
(
\*
OUT
,
$test_dir
,
\
@tests
);
return
1
;
}
########################################################################
...
...
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