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
4efff322
Commit
4efff322
authored
Apr 15, 2008
by
Rob Shearman
Committed by
Alexandre Julliard
Apr 16, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rpcrt4: Test and fix I_RpcExceptionFilter.
parent
51158a2f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
2 deletions
+49
-2
rpcrt4_main.c
dlls/rpcrt4/rpcrt4_main.c
+8
-2
rpc.c
dlls/rpcrt4/tests/rpc.c
+41
-0
No files found.
dlls/rpcrt4/rpcrt4_main.c
View file @
4efff322
...
...
@@ -944,8 +944,14 @@ int WINAPI I_RpcExceptionFilter(ULONG ExceptionCode)
TRACE
(
"0x%x
\n
"
,
ExceptionCode
);
switch
(
ExceptionCode
)
{
case
EXCEPTION_ACCESS_VIOLATION
:
case
EXCEPTION_ILLEGAL_INSTRUCTION
:
case
STATUS_DATATYPE_MISALIGNMENT
:
case
STATUS_BREAKPOINT
:
case
STATUS_ACCESS_VIOLATION
:
case
STATUS_ILLEGAL_INSTRUCTION
:
case
STATUS_PRIVILEGED_INSTRUCTION
:
case
STATUS_INSTRUCTION_MISALIGNMENT
:
case
STATUS_STACK_OVERFLOW
:
case
STATUS_POSSIBLE_DEADLOCK
:
return
EXCEPTION_CONTINUE_SEARCH
;
default:
return
EXCEPTION_EXECUTE_HANDLER
;
...
...
dlls/rpcrt4/tests/rpc.c
View file @
4efff322
...
...
@@ -610,6 +610,46 @@ static void test_RpcStringBindingParseA(void)
ok
(
options
==
NULL
,
"options was %p instead of NULL
\n
"
,
options
);
}
static
void
test_I_RpcExceptionFilter
(
void
)
{
ULONG
exception
;
int
retval
;
int
(
WINAPI
*
pI_RpcExceptionFilter
)(
ULONG
)
=
(
void
*
)
GetProcAddress
(
GetModuleHandle
(
"rpcrt4.dll"
),
"I_RpcExceptionFilter"
);
if
(
!
pI_RpcExceptionFilter
)
{
skip
(
"I_RpcExceptionFilter not exported
\n
"
);
return
;
}
for
(
exception
=
0
;
exception
<
STATUS_REG_NAT_CONSUMPTION
;
exception
++
)
{
/* skip over uninteresting bits of the number space */
if
(
exception
==
2000
)
exception
=
0x40000000
;
if
(
exception
==
0x40000005
)
exception
=
0x80000000
;
if
(
exception
==
0x80000005
)
exception
=
0xc0000000
;
retval
=
pI_RpcExceptionFilter
(
exception
);
switch
(
exception
)
{
case
STATUS_DATATYPE_MISALIGNMENT
:
case
STATUS_BREAKPOINT
:
case
STATUS_ACCESS_VIOLATION
:
case
STATUS_ILLEGAL_INSTRUCTION
:
case
STATUS_PRIVILEGED_INSTRUCTION
:
case
0xc00000aa
/* STATUS_INSTRUCTION_MISALIGNMENT */
:
case
STATUS_STACK_OVERFLOW
:
case
0xc0000194
/* STATUS_POSSIBLE_DEADLOCK */
:
ok
(
retval
==
EXCEPTION_CONTINUE_SEARCH
,
"I_RpcExceptionFilter(0x%x) should have returned %d instead of %d
\n
"
,
exception
,
EXCEPTION_CONTINUE_SEARCH
,
retval
);
break
;
default:
ok
(
retval
==
EXCEPTION_EXECUTE_HANDLER
,
"I_RpcExceptionFilter(0x%x) should have returned %d instead of %d
\n
"
,
exception
,
EXCEPTION_EXECUTE_HANDLER
,
retval
);
}
}
}
START_TEST
(
rpc
)
{
trace
(
" ** Uuid Conversion and Comparison Tests **
\n
"
);
...
...
@@ -620,4 +660,5 @@ START_TEST( rpc )
test_towers
();
test_I_RpcMapWin32Status
();
test_RpcStringBindingParseA
();
test_I_RpcExceptionFilter
();
}
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