diff --git a/tests/check_check_master.c b/tests/check_check_master.c index e61361cb..5a409aff 100644 --- a/tests/check_check_master.c +++ b/tests/check_check_master.c @@ -248,7 +248,9 @@ static master_test_t master_tests[] = { { "Signal Tests", "test_segv", CK_ERROR, signal_11_8_str }, { "Signal Tests", "test_non_signal_8", CK_FAILURE, "Early exit with return value 0" }, { "Signal Tests", "test_fail_unless", CK_FAILURE, "Early exit with return value 1" }, +#if !defined(__CYGWIN__) { "Signal Tests", "test_fpe", CK_ERROR, signal_8_str }, +#endif /* !defined(__CYGWIN__) */ { "Signal Tests", "test_mark_point", CK_ERROR, signal_8_str }, #endif diff --git a/tests/check_check_sub.c b/tests/check_check_sub.c index b5aac1d2..2695e3be 100644 --- a/tests/check_check_sub.c +++ b/tests/check_check_sub.c @@ -2272,6 +2272,11 @@ START_TEST(test_segv) } END_TEST +/* This test currently does not work on Cygwin, as it results in a + * SIGSEGV instead of a SIGFPE. However, a simple program that installs + * a SIGFPE handler then raise(SIGFPE) works as expected. Further + * investigation is necessary. */ +#if !defined(__CYGWIN__) START_TEST(test_fpe) { record_test_name(tcase_name()); @@ -2279,6 +2284,7 @@ START_TEST(test_fpe) raise (SIGFPE); } END_TEST +#endif /* !defined(__CYGWIN__) */ /* * This test is to be used when the test is expected to throw signal 8, @@ -2959,7 +2965,9 @@ Suite *make_sub_suite(void) tcase_add_test_raise_signal (tc_signal, test_segv, 8); /* error */ tcase_add_test_raise_signal (tc_signal, test_non_signal_8, 8); /* fail */ tcase_add_test_raise_signal (tc_signal, test_fail_unless, 8); /* fail */ +#if !defined(__CYGWIN__) tcase_add_test (tc_signal, test_fpe); +#endif /* !defined(__CYGWIN__) */ tcase_add_test (tc_signal, test_mark_point); #endif /* HAVE_FORK */