[PSEH2_TEST]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 2 Nov 2013 16:48:45 +0000 (16:48 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 2 Nov 2013 16:48:45 +0000 (16:48 +0000)
Add a test that fails with PSEH3

svn path=/trunk/; revision=60836

rostests/tests/pseh2/psehtest.c

index 3af2639..eb46701 100644 (file)
@@ -2616,6 +2616,28 @@ int call_test(int (* func)(void))
        return ret;
 }
 
        return ret;
 }
 
+DEFINE_TEST(test_PSEH3_bug)
+{
+    volatile int count = 0;
+    int dummy = 0;
+
+    _SEH2_TRY
+    {
+        if (count++ == 0)
+        {
+            *(volatile int*)0x12345678 = 0x12345678;
+        }
+    }
+    _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+    {
+        dummy = 0;
+    }
+    _SEH2_END;
+
+    (void)dummy;
+    return (count == 1);
+}
+
 #define USE_TEST_NAME_(NAME_) # NAME_
 #define USE_TEST_NAME(NAME_) USE_TEST_NAME_(NAME_)
 #define USE_TEST(NAME_) { USE_TEST_NAME(NAME_), NAME_ }
 #define USE_TEST_NAME_(NAME_) # NAME_
 #define USE_TEST_NAME(NAME_) USE_TEST_NAME_(NAME_)
 #define USE_TEST(NAME_) { USE_TEST_NAME(NAME_), NAME_ }
@@ -2745,6 +2767,7 @@ void testsuite_syntax(void)
                USE_TEST(test_unvolatile_2),
                USE_TEST(test_finally_goto),
                USE_TEST(test_nested_exception),
                USE_TEST(test_unvolatile_2),
                USE_TEST(test_finally_goto),
                USE_TEST(test_nested_exception),
+               USE_TEST(test_PSEH3_bug),
        };
 
        size_t i;
        };
 
        size_t i;