Module: wine Branch: master Commit: d989e92c3e2ffd666b14a0aa779b88b66fcf7602 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d989e92c3e2ffd666b14a0aa77...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Mar 5 11:05:57 2013 +0100
msvcrt: Added __pxcptinfoptrs tests.
---
dlls/msvcrt/tests/signal.c | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/dlls/msvcrt/tests/signal.c b/dlls/msvcrt/tests/signal.c index d33498b..ad6ea6e 100644 --- a/dlls/msvcrt/tests/signal.c +++ b/dlls/msvcrt/tests/signal.c @@ -26,6 +26,13 @@ static int test_value = 0;
static void __cdecl sighandler(int signum) { + void **ret = __pxcptinfoptrs(); + + ok(ret != NULL, "ret = NULL\n"); + if(signum == SIGABRT) + ok(*ret == (void*)0xdeadbeef, "*ret = %p\n", *ret); + else if(signum == SIGSEGV) + ok(*ret == NULL, "*ret = %p\n", *ret); ++test_value; }
@@ -42,7 +49,32 @@ static void test_signal(void) ok(test_value == 1, "SIGBREAK handler not invoked\n"); }
+static void test___pxcptinfoptrs(void) +{ + void **ret = __pxcptinfoptrs(); + int res; + + ok(ret != NULL, "ret == NULL\n"); + ok(*ret == NULL, "*ret != NULL\n"); + + test_value = 0; + + *ret = (void*)0xdeadbeef; + signal(SIGSEGV, sighandler); + res = raise(SIGSEGV); + ok(res == 0, "failed to raise SIGSEGV\n"); + ok(*ret == (void*)0xdeadbeef, "*ret = %p\n", *ret); + + signal(SIGABRT, sighandler); + res = raise(SIGABRT); + ok(res == 0, "failed to raise SIGBREAK\n"); + ok(*ret == (void*)0xdeadbeef, "*ret = %p\n", *ret); + + ok(test_value == 2, "test_value = %d\n", test_value); +} + START_TEST(signal) { test_signal(); + test___pxcptinfoptrs(); }