Author: sebor Date: Thu Apr 17 11:42:12 2008 New Revision: 649223 URL: http://svn.apache.org/viewvc?rev=649223&view=rev Log: 2008-04-17 Martin Sebor <[EMAIL PROTECTED]>
* tests/localization/22.locale.ctype.narrow.cpp: Corrected comments. (test_narrow_widen): Used rw_info() to write out the name of each tested locale. (test_libstd): New function/placeholder to exercise our standalone implementation of locale (independent of libc). (run_test<charT>): Called test_libstd(). (run_test): Used the set of locales specified on the command line instead of the hardcoded pattern. Added an _RWSTD_NO_WCHAR_T guard. (main): Used the rw_opt_setlocales handler. Modified: stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp Modified: stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp URL: http://svn.apache.org/viewvc/stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp?rev=649223&r1=649222&r2=649223&view=diff ============================================================================== --- stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp (original) +++ stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp Thu Apr 17 11:42:12 2008 @@ -1,6 +1,7 @@ /*************************************************************************** * - * 22.locale.ctype.cpp - Tests exercising the narrow() and widen() ctype facet + * 22.locale.ctype.narrow.cpp - tests exercising the narrow() and widen() + * member functions of the ctype facet * * $Id$ * @@ -22,14 +23,14 @@ * implied. See the License for the specific language governing * permissions and limitations under the License. * - * Copyright 2001-2006 Rogue Wave Software. + * Copyright 2001-2008 Rogue Wave Software, Inc. * **************************************************************************/ -// DESCRIPTION: test iterates over the locales installed on a machine, -// calling the C character classification functions and -// their C++ counterpart(s), comparing the results of -// the calls against one another. +// DESCRIPTION: The test iterates over a subset of locales installed +// on a machine, calling the C character classification functions and +// their C++ counterpart(s), comparing the results of the calls against +// one another. #include <rw/_defs.h> @@ -203,7 +204,7 @@ return ch; } -// cond1() verifies condition [1] in Test::test_narrow_widen() +// cond1() verifies condition [1] in test_narrow_widen() // below using libc functions bool cond1 (std::ctype_base::mask mask, char ch, const char *locname) { @@ -244,7 +245,7 @@ } -// cond3() overloads verify condition [3] in Test::test_narrow_widen() +// cond3() overloads verify condition [3] in test_narrow_widen() // below using libc functions bool cond3 (std::ctype_base::mask, char, const char*) { @@ -539,6 +540,10 @@ c_locname, curlocname); } + if (0 == i) + rw_info (0, 0, __LINE__, "std::ctype<%s> in locale(%#s)", + cname, locname); + const char c = char (i); const charT ch = charT (i); @@ -653,6 +658,7 @@ /**************************************************************************/ +// exercise the behavior of the libc-based C++ locale implementation template <class charT> void test_libc (charT, const char *cname) { @@ -661,6 +667,17 @@ /**************************************************************************/ +// exercise the behavior of our own C++ locale implementation +template <class charT> +void test_libstd (charT, const char *cname) +{ + rw_warn (0, 0, __LINE__, + "stdcxx implementation of std::ctype<%s> not exercised", + cname); +} + +/**************************************************************************/ + template <class charT> void run_test (charT, const char *cname) { @@ -670,7 +687,11 @@ _STD_USE_FACET (std::ctype_byname<charT>, std::locale ()); } + // exercise the behavior of the libc-based C++ locale implementation test_libc (charT (), cname); + + // exercise the behavior of our own C++ locale implementation + test_libstd (charT (), cname); } /**************************************************************************/ @@ -678,9 +699,20 @@ static int run_test (int, char**) { + // set the global locale_list pointer to point to the array + // of NUL-separated locale names set on the command line via + // the --locales=... option, if specified, or to 0 (in which + // case we'll generate our own list) + locale_list = rw_opt_locales; + run_test (char (), "char"); + +#ifndef _RWSTD_NO_WCHAR_T + run_test (wchar_t (), "wchar_t"); +#endif // _RWSTD_NO_WCHAR_T + return 0; } @@ -690,8 +722,9 @@ { return rw_test (argc, argv, __FILE__, "lib.category.ctype", - 0 /* no comment */, + "narrow and widen", run_test, - "", + "|-locales= ", + &rw_opt_setlocales, (void*)0 /* sentinel */); }