Author: sebor Date: Thu Dec 13 18:33:01 2007 New Revision: 604088 URL: http://svn.apache.org/viewvc?rev=604088&view=rev Log: 2007-12-13 Travis Vitek STDCXX-664 * tests/localization/22.locale.globals.mt.cpp (run_test): Avoid testing that use_facet<>() throws when using byname facets when _RWSTD_NO_DYNAMIC_CAST is defined. 2007-12-13 Martin Sebor * tests/localization/22.locale.globals.mt.cpp (use_facet_loop): Removed preprocessor guards for _RWSTD_NO_THREAD_SAFE_EXCEPTIONS. (run_test): Set opt_no_exceptions in response to the above macro for consistency with Travis' solution in the change above. Modified: incubator/stdcxx/trunk/tests/localization/22.locale.globals.mt.cpp Modified: incubator/stdcxx/trunk/tests/localization/22.locale.globals.mt.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.globals.mt.cpp?rev=604088&r1=604087&r2=604088&view=diff ============================================================================== --- incubator/stdcxx/trunk/tests/localization/22.locale.globals.mt.cpp (original) +++ incubator/stdcxx/trunk/tests/localization/22.locale.globals.mt.cpp Thu Dec 13 18:33:01 2007 @@ -295,8 +295,6 @@ } else if (0 == opt_no_exceptions) { -#if 1 // def _RWSTD_NO_THREAD_SAFE_EXCEPTIONS - bool threw; #define TEST_USE_FACET(Facet, opt) \ @@ -317,9 +315,6 @@ TEST_USE_FACET (NumpunctByname, numpunct); TEST_USE_FACET (TimeGetByname, time_get); TEST_USE_FACET (TimePutByname, time_put); - -#endif // _RWSTD_NO_THREAD_SAFE_EXCEPTIONS - } } @@ -373,8 +368,6 @@ } else if (0 == opt_no_exceptions) { -#ifndef _RWSTD_NO_THREAD_SAFE_EXCEPTIONS - bool threw; TEST_USE_FACET (WCollateByname, collate); @@ -386,9 +379,6 @@ TEST_USE_FACET (WNumpunctByname, numpunct); TEST_USE_FACET (WTimeGetByname, time_get); TEST_USE_FACET (WTimePutByname, time_put); - -#endif // _RWSTD_NO_THREAD_SAFE_EXCEPTIONS - } } @@ -534,10 +524,30 @@ rw_info (0, 0, 0, "template const T& std::use_facet (const locale&)"); +#ifdef _RWSTD_NO_DYNAMIC_CAST + + // if dynamic_cast isn't supported, then [has,use]_facet() + // can't reliably detect if a facet is installed or not. + rw_warn (0 != opt_no_exceptions, 0, __LINE__, + "dynamic_cast not supported " + "(macro _RWSTD_NO_DYNAMIC_CAST is #defined), " + "disabling exceptions tests"); + + opt_no_exceptions = 1; + +#endif // _RWSTD_NO_DYNAMIC_CAST + + #ifdef _RWSTD_NO_THREAD_SAFE_EXCEPTIONS + // avoid exercising exceptions (triggered by use_facet) if + // their implementation in the runtime isn't thread-safe rw_warn (0, 0, 0, - "exceptions not thread safe, skipping that part of test"); + "exceptions not thread safe (macro " + "_RWSTD_NO_THREAD_SAFE_EXCEPTIONS is #defined), " + "disabling exceptions tests"); + + opt_no_exceptions = 1; #endif // _RWSTD_NO_THREAD_SAFE_EXCEPTIONS