About the SEH tests.
The tests are nice, but there are 2 things that makes me think the tests
are cheating.
1.) All used variables are static. That means the optimizer is mostly
out of the game. Is this planned to be a requirement (static or volatile
variables)?
2.) The tests use return_positive() and return_zero() functions. Another
way to stop the optimizer from doing his work, because function calls
act as sequence points and the result isn't known at compile time. But
this is far from practical. If you replace them with compiler constants,
the optimizer will try to remove these assignmnents if possible.
So I did some testing. After removing the static, I got 1 error:
psehtest.c:2490: Test failed: test_continue_search_3 failed
After replacing the return_x, ... functions with macros I got 3 errors:
psehtest.c:2486: Test failed: test_continue_search_6 failed
psehtest.c:2486: Test failed: test_execute_handler_12 failed
psehtest.c:2486: Test failed: test_continue_execution_12 failed
Same with full and normal optimisation.
Timo
Aleksey Bragin schrieb:
Just wanted to tell this is a great work, and with
such test suite we
will always notice if something breaks.
WBR,
Aleksey Bragin.
On Dec 30, 2008, at 7:04 AM, hyperion(a)svn.reactos.org wrote:
Author: hyperion
Date: Mon Dec 29 22:04:51 2008
New Revision: 38461
URL:
http://svn.reactos.org/svn/reactos?rev=38461&view=rev
Log:
modified tests/pseh2/psehtest.c
finally_13 test re-enabled, as it doesn't crash anymore
finally_14 test fixed. Now we know how exceptions thrown in a
__finally are supposed to be handled
PSEH test suite now has 91 tests and passes all of them with
both GCC and Visual C++
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev