You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by fa...@apache.org on 2008/03/15 13:10:13 UTC

svn commit: r637399 - in /stdcxx/trunk/tests: self/0.printf.cpp src/fmt_bits.cpp

Author: faridz
Date: Sat Mar 15 05:10:12 2008
New Revision: 637399

URL: http://svn.apache.org/viewvc?rev=637399&view=rev
Log:
2008-03-15 Farid Zaripov <fa...@epam.com>

	* tests/src/fmt_bits.cpp (_rw_fmtflags): Replace "iostate" to "fmtflags"
	in default output. Conditionally output of the "std::ios::" prefix for
	consistency.
	(_rw_fmt_event): Replace "copyfmt_event" to "event" in default output.
	Conditionally output of the "std::ios::" prefix for consistency.
	* tests/self/0.printf.cpp (test_ios_bitmasks): Exercised the %{If} and
	%{Ie} extensions to format ios::fmtflags and ios::event values.
	(test_locale_category): New function to exercise %{Lc} extension to format
	locale category values.
	(main): Called test_locale_category().

Modified:
    stdcxx/trunk/tests/self/0.printf.cpp
    stdcxx/trunk/tests/src/fmt_bits.cpp

Modified: stdcxx/trunk/tests/self/0.printf.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/tests/self/0.printf.cpp?rev=637399&r1=637398&r2=637399&view=diff
==============================================================================
--- stdcxx/trunk/tests/self/0.printf.cpp (original)
+++ stdcxx/trunk/tests/self/0.printf.cpp Sat Mar 15 05:10:12 2008
@@ -37,6 +37,7 @@
 #include <bitset>       // for bitset
 #include <ios>          // for ios::iostate, ios::openmode, ios::seekdir
 #include <string>       // for string
+#include <locale>       // for locale::all, ...
 
 #include <assert.h>     // for assert()
 #include <ctype.h>      // for isdigit()
@@ -48,6 +49,7 @@
 #include <string.h>     // for strcpy()
 #include <stdarg.h>     // for va_arg, ...
 #include <time.h>       // for struct tm
+#include <locale.h>     // for LC_ALL, ...
 
 
 // disable tests for function name in "%{lF}"
@@ -864,6 +866,240 @@
     TEST ("[%{#Iw}]", std::ios::beg, 0, 0, "[std::ios::beg]");
     TEST ("[%{#Iw}]", std::ios::cur, 0, 0, "[std::ios::cur]");
     TEST ("[%{#Iw}]", std::ios::end, 0, 0, "[std::ios::end]");
+
+    //////////////////////////////////////////////////////////////////
+    printf ("%s\n", "extension: \"%{If}\": std::ios_base::fmtflags");
+
+#define BASE(n)   ((n)  << _RWSTD_IOS_BASEOFF)
+
+    TEST ("[%{If}]",  0,                     0, 0, "[fmtflags(0)]");
+    TEST ("[%{If}]",  std::ios::adjustfield, 0, 0, "[adjustfield]");
+    TEST ("[%{If}]",  std::ios::basefield,   0, 0, "[basefield]");
+    TEST ("[%{If}]",  std::ios::boolalpha,   0, 0, "[boolalpha]");
+    TEST ("[%{If}]",  std::ios::dec,         0, 0, "[dec]");
+    TEST ("[%{If}]",  std::ios::fixed,       0, 0, "[fixed]");
+    TEST ("[%{If}]",  std::ios::hex,         0, 0, "[hex]");
+    TEST ("[%{If}]",  std::ios::internal,    0, 0, "[internal]");
+    TEST ("[%{If}]",  std::ios::left,        0, 0, "[left]");
+    TEST ("[%{If}]",  std::ios::oct,         0, 0, "[oct]");
+    TEST ("[%{If}]",  std::ios::right,       0, 0, "[right]");
+    TEST ("[%{If}]",  std::ios::scientific,  0, 0, "[scientific]");
+    TEST ("[%{If}]",  std::ios::showbase,    0, 0, "[showbase]");
+    TEST ("[%{If}]",  std::ios::showpoint,   0, 0, "[showpoint]");
+    TEST ("[%{If}]",  std::ios::showpos,     0, 0, "[showpos]");
+    TEST ("[%{If}]",  std::ios::skipws,      0, 0, "[skipws]");
+    TEST ("[%{If}]",  std::ios::unitbuf,     0, 0, "[unitbuf]");
+    TEST ("[%{If}]",  std::ios::uppercase,   0, 0, "[uppercase]");
+#ifndef _RWSTD_NO_EXT_BIN_IO
+    TEST ("[%{If}]",  std::ios::bin,         0, 0, "[bin]");
+#endif   // _RWSTD_NO_EXT_BIN_IO
+#ifndef _RWSTD_NO_EXT_REENTRANT_IO
+    TEST ("[%{If}]",  std::ios::nolock,      0, 0, "[nolock]");
+    TEST ("[%{If}]",  std::ios::nolockbuf,   0, 0, "[nolockbuf]");
+#endif   // _RWSTD_NO_EXT_REENTRANT_IO
+
+    TEST ("[%{If}]",  BASE (1),              0, 0, "[fmtflags(0) | base(1)]");
+    TEST ("[%{If}]",  BASE (2),              0, 0, "[fmtflags(0) | base(2)]");
+    TEST ("[%{If}]",  BASE (3),              0, 0, "[fmtflags(0) | base(3)]");
+    TEST ("[%{If}]",  BASE (4),              0, 0, "[fmtflags(0) | base(4)]");
+    TEST ("[%{If}]",  BASE (5),              0, 0, "[fmtflags(0) | base(5)]");
+    TEST ("[%{If}]",  BASE (6),              0, 0, "[fmtflags(0) | base(6)]");
+    TEST ("[%{If}]",  BASE (7),              0, 0, "[fmtflags(0) | base(7)]");
+    TEST ("[%{If}]",  BASE (8),              0, 0, "[fmtflags(0)]");
+    TEST ("[%{If}]",  BASE (9),              0, 0, "[fmtflags(0) | base(9)]");
+    TEST ("[%{If}]",  BASE (10),             0, 0, "[fmtflags(0)]");
+    TEST ("[%{If}]",  BASE (11),             0, 0, "[fmtflags(0) | base(11)]");
+    TEST ("[%{If}]",  BASE (12),             0, 0, "[fmtflags(0) | base(12)]");
+    TEST ("[%{If}]",  BASE (13),             0, 0, "[fmtflags(0) | base(13)]");
+    TEST ("[%{If}]",  BASE (14),             0, 0, "[fmtflags(0) | base(14)]");
+    TEST ("[%{If}]",  BASE (15),             0, 0, "[fmtflags(0) | base(15)]");
+    TEST ("[%{If}]",  BASE (16),             0, 0, "[fmtflags(0)]");
+    TEST ("[%{If}]",  BASE (17),             0, 0, "[fmtflags(0) | base(17)]");
+    TEST ("[%{If}]",  BASE (18),             0, 0, "[fmtflags(0) | base(18)]");
+    TEST ("[%{If}]",  BASE (19),             0, 0, "[fmtflags(0) | base(19)]");
+    TEST ("[%{If}]",  BASE (20),             0, 0, "[fmtflags(0) | base(20)]");
+    TEST ("[%{If}]",  BASE (21),             0, 0, "[fmtflags(0) | base(21)]");
+    TEST ("[%{If}]",  BASE (22),             0, 0, "[fmtflags(0) | base(22)]");
+    TEST ("[%{If}]",  BASE (23),             0, 0, "[fmtflags(0) | base(23)]");
+    TEST ("[%{If}]",  BASE (24),             0, 0, "[fmtflags(0) | base(24)]");
+    TEST ("[%{If}]",  BASE (25),             0, 0, "[fmtflags(0) | base(25)]");
+    TEST ("[%{If}]",  BASE (26),             0, 0, "[fmtflags(0) | base(26)]");
+    TEST ("[%{If}]",  BASE (27),             0, 0, "[fmtflags(0) | base(27)]");
+    TEST ("[%{If}]",  BASE (28),             0, 0, "[fmtflags(0) | base(28)]");
+    TEST ("[%{If}]",  BASE (29),             0, 0, "[fmtflags(0) | base(29)]");
+    TEST ("[%{If}]",  BASE (30),             0, 0, "[fmtflags(0) | base(30)]");
+    TEST ("[%{If}]",  BASE (31),             0, 0, "[fmtflags(0) | base(31)]");
+    TEST ("[%{If}]",  BASE (32),             0, 0, "[fmtflags(0) | base(32)]");
+    TEST ("[%{If}]",  BASE (33),             0, 0, "[fmtflags(0) | base(33)]");
+    TEST ("[%{If}]",  BASE (34),             0, 0, "[fmtflags(0) | base(34)]");
+    TEST ("[%{If}]",  BASE (35),             0, 0, "[fmtflags(0) | base(35)]");
+    TEST ("[%{If}]",  BASE (36),             0, 0, "[fmtflags(0) | base(36)]");
+
+    TEST ("[%{#If}]",  0,                     0, 0, "[std::ios::fmtflags(0)]");
+    TEST ("[%{#If}]",  std::ios::adjustfield, 0, 0, "[std::ios::adjustfield]");
+    TEST ("[%{#If}]",  std::ios::basefield,   0, 0, "[std::ios::basefield]");
+    TEST ("[%{#If}]",  std::ios::boolalpha,   0, 0, "[std::ios::boolalpha]");
+    TEST ("[%{#If}]",  std::ios::dec,         0, 0, "[std::ios::dec]");
+    TEST ("[%{#If}]",  std::ios::fixed,       0, 0, "[std::ios::fixed]");
+    TEST ("[%{#If}]",  std::ios::hex,         0, 0, "[std::ios::hex]");
+    TEST ("[%{#If}]",  std::ios::internal,    0, 0, "[std::ios::internal]");
+    TEST ("[%{#If}]",  std::ios::left,        0, 0, "[std::ios::left]");
+    TEST ("[%{#If}]",  std::ios::oct,         0, 0, "[std::ios::oct]");
+    TEST ("[%{#If}]",  std::ios::right,       0, 0, "[std::ios::right]");
+    TEST ("[%{#If}]",  std::ios::scientific,  0, 0, "[std::ios::scientific]");
+    TEST ("[%{#If}]",  std::ios::showbase,    0, 0, "[std::ios::showbase]");
+    TEST ("[%{#If}]",  std::ios::showpoint,   0, 0, "[std::ios::showpoint]");
+    TEST ("[%{#If}]",  std::ios::showpos,     0, 0, "[std::ios::showpos]");
+    TEST ("[%{#If}]",  std::ios::skipws,      0, 0, "[std::ios::skipws]");
+    TEST ("[%{#If}]",  std::ios::unitbuf,     0, 0, "[std::ios::unitbuf]");
+    TEST ("[%{#If}]",  std::ios::uppercase,   0, 0, "[std::ios::uppercase]");
+#ifndef _RWSTD_NO_EXT_BIN_IO
+    TEST ("[%{#If}]",  std::ios::bin,         0, 0, "[std::ios::bin]");
+#endif   // _RWSTD_NO_EXT_BIN_IO
+#ifndef _RWSTD_NO_EXT_REENTRANT_IO
+    TEST ("[%{#If}]",  std::ios::nolock,      0, 0, "[std::ios::nolock]");
+    TEST ("[%{#If}]",  std::ios::nolockbuf,   0, 0, "[std::ios::nolockbuf]");
+#endif   // _RWSTD_NO_EXT_REENTRANT_IO
+
+    TEST ("[%{#If}]",  BASE (1),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(1)]");
+    TEST ("[%{#If}]",  BASE (2),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(2)]");
+    TEST ("[%{#If}]",  BASE (3),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(3)]");
+    TEST ("[%{#If}]",  BASE (4),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(4)]");
+    TEST ("[%{#If}]",  BASE (5),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(5)]");
+    TEST ("[%{#If}]",  BASE (6),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(6)]");
+    TEST ("[%{#If}]",  BASE (7),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(7)]");
+    TEST ("[%{#If}]",  BASE (8),              0, 0,
+          "[std::ios::fmtflags(0)]");
+    TEST ("[%{#If}]",  BASE (9),              0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(9)]");
+    TEST ("[%{#If}]",  BASE (10),             0, 0,
+          "[std::ios::fmtflags(0)]");
+    TEST ("[%{#If}]",  BASE (11),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(11)]");
+    TEST ("[%{#If}]",  BASE (12),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(12)]");
+    TEST ("[%{#If}]",  BASE (13),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(13)]");
+    TEST ("[%{#If}]",  BASE (14),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(14)]");
+    TEST ("[%{#If}]",  BASE (15),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(15)]");
+    TEST ("[%{#If}]",  BASE (16),             0, 0,
+          "[std::ios::fmtflags(0)]");
+    TEST ("[%{#If}]",  BASE (17),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(17)]");
+    TEST ("[%{#If}]",  BASE (18),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(18)]");
+    TEST ("[%{#If}]",  BASE (19),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(19)]");
+    TEST ("[%{#If}]",  BASE (20),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(20)]");
+    TEST ("[%{#If}]",  BASE (21),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(21)]");
+    TEST ("[%{#If}]",  BASE (22),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(22)]");
+    TEST ("[%{#If}]",  BASE (23),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(23)]");
+    TEST ("[%{#If}]",  BASE (24),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(24)]");
+    TEST ("[%{#If}]",  BASE (25),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(25)]");
+    TEST ("[%{#If}]",  BASE (26),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(26)]");
+    TEST ("[%{#If}]",  BASE (27),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(27)]");
+    TEST ("[%{#If}]",  BASE (28),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(28)]");
+    TEST ("[%{#If}]",  BASE (29),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(29)]");
+    TEST ("[%{#If}]",  BASE (30),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(30)]");
+    TEST ("[%{#If}]",  BASE (31),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(31)]");
+    TEST ("[%{#If}]",  BASE (32),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(32)]");
+    TEST ("[%{#If}]",  BASE (33),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(33)]");
+    TEST ("[%{#If}]",  BASE (34),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(34)]");
+    TEST ("[%{#If}]",  BASE (35),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(35)]");
+    TEST ("[%{#If}]",  BASE (36),             0, 0,
+          "[std::ios::fmtflags(0) | std::ios::base(36)]");
+
+    //////////////////////////////////////////////////////////////////
+    printf ("%s\n", "extension: \"%{Ie}\": std::ios_base::event");
+
+    TEST ("[%{Ie}]", std::ios::erase_event,   0, 0, "[erase_event]");
+    TEST ("[%{Ie}]", std::ios::imbue_event,   0, 0, "[imbue_event]");
+    TEST ("[%{Ie}]", std::ios::copyfmt_event, 0, 0, "[copyfmt_event]");
+    TEST ("[%{Ie}]", 3,                       0, 0, "[event(3)]");
+    TEST ("[%{Ie}]", 10,                      0, 0, "[event(10)]");
+
+    TEST ("[%{#Ie}]", std::ios::erase_event,   0, 0,
+          "[std::ios::erase_event]");
+    TEST ("[%{#Ie}]", std::ios::imbue_event,   0, 0,
+          "[std::ios::imbue_event]");
+    TEST ("[%{#Ie}]", std::ios::copyfmt_event, 0, 0,
+          "[std::ios::copyfmt_event]");
+    TEST ("[%{#Ie}]", 3,                       0, 0,
+          "[std::ios::event(3)]");
+    TEST ("[%{#Ie}]", 10,                      0, 0,
+          "[std::ios::event(10)]");
+}
+
+/***********************************************************************/
+
+static void
+test_locale_category ()
+{
+    //////////////////////////////////////////////////////////////////
+    printf ("%s\n", "extension: \"%{Lc}\": locale category");
+
+    TEST ("[%{Lc}]", LC_ALL,      0, 0, "[LC_ALL]");
+    TEST ("[%{Lc}]", LC_COLLATE,  0, 0, "[LC_COLLATE]");
+    TEST ("[%{Lc}]", LC_CTYPE,    0, 0, "[LC_CTYPE]");
+    TEST ("[%{Lc}]", LC_MONETARY, 0, 0, "[LC_MONETARY]");
+    TEST ("[%{Lc}]", LC_NUMERIC,  0, 0, "[LC_NUMERIC]");
+    TEST ("[%{Lc}]", LC_TIME,     0, 0, "[LC_TIME]");
+#ifdef LC_MESSAGES
+    TEST ("[%{Lc}]", LC_MESSAGES, 0, 0, "[LC_MESSAGES]");
+#endif   // LC_MESSAGES
+
+    TEST ("[%{Lc}]", std::locale::all,      0, 0, "[all]");
+    TEST ("[%{Lc}]", std::locale::none,     0, 0, "[none]");
+    TEST ("[%{Lc}]", std::locale::collate,  0, 0, "[collate]");
+    TEST ("[%{Lc}]", std::locale::ctype,    0, 0, "[ctype]");
+    TEST ("[%{Lc}]", std::locale::monetary, 0, 0, "[monetary]");
+    TEST ("[%{Lc}]", std::locale::numeric,  0, 0, "[numeric]");
+    TEST ("[%{Lc}]", std::locale::messages, 0, 0, "[messages]");
+    TEST ("[%{Lc}]", std::locale::time,     0, 0, "[time]");
+
+    TEST ("[%{#Lc}]", LC_ALL,      0, 0, "[LC_ALL]");
+    TEST ("[%{#Lc}]", LC_COLLATE,  0, 0, "[LC_COLLATE]");
+    TEST ("[%{#Lc}]", LC_CTYPE,    0, 0, "[LC_CTYPE]");
+    TEST ("[%{#Lc}]", LC_MONETARY, 0, 0, "[LC_MONETARY]");
+    TEST ("[%{#Lc}]", LC_NUMERIC,  0, 0, "[LC_NUMERIC]");
+    TEST ("[%{#Lc}]", LC_TIME,     0, 0, "[LC_TIME]");
+#ifdef LC_MESSAGES
+    TEST ("[%{#Lc}]", LC_MESSAGES, 0, 0, "[LC_MESSAGES]");
+#endif   // LC_MESSAGES
+
+    TEST ("[%{#Lc}]", std::locale::all,      0, 0, "[std::locale::all]");
+    TEST ("[%{#Lc}]", std::locale::none,     0, 0, "[std::locale::none]");
+    TEST ("[%{#Lc}]", std::locale::collate,  0, 0, "[std::locale::collate]");
+    TEST ("[%{#Lc}]", std::locale::ctype,    0, 0, "[std::locale::ctype]");
+    TEST ("[%{#Lc}]", std::locale::monetary, 0, 0, "[std::locale::monetary]");
+    TEST ("[%{#Lc}]", std::locale::numeric,  0, 0, "[std::locale::numeric]");
+    TEST ("[%{#Lc}]", std::locale::messages, 0, 0, "[std::locale::messages]");
+    TEST ("[%{#Lc}]", std::locale::time,     0, 0, "[std::locale::time]");
 }
 
 /***********************************************************************/
@@ -3068,6 +3304,8 @@
     test_basic_string ();
 
     test_ios_bitmasks ();
+
+    test_locale_category ();
 
     test_ctype_mask ();
 

Modified: stdcxx/trunk/tests/src/fmt_bits.cpp
URL: http://svn.apache.org/viewvc/stdcxx/trunk/tests/src/fmt_bits.cpp?rev=637399&r1=637398&r2=637399&view=diff
==============================================================================
--- stdcxx/trunk/tests/src/fmt_bits.cpp (original)
+++ stdcxx/trunk/tests/src/fmt_bits.cpp Sat Mar 15 05:10:12 2008
@@ -179,7 +179,7 @@
 
 #endif   // _RWSTD_NO_EXT_REENTRANT_IO
 
-        { "std::ios::iostate(0)", "iostate(0)", std::ios::iostate () }
+        { "std::ios::fmtflags(0)", "fmtflags(0)", std::ios::fmtflags () }
 
     };
 
@@ -204,7 +204,9 @@
 
 #endif   // _RWSTD_NO_EXT_BIN_IO
 
-        len = rw_asnprintf (buf.pbuf, buf.pbufsize, "%{+} | std::ios::base(%d)", base);
+        len = rw_asnprintf (buf.pbuf, buf.pbufsize,
+                            "%{+} | %{?}std::ios::%{;}base(%d)",
+                            spec.fl_pound, base);
     }
 
     return len;
@@ -293,7 +295,7 @@
 /********************************************************************/
 
 /* extern */ int
-_rw_fmtevent (const FmtSpec&, Buffer &buf, int event)
+_rw_fmtevent (const FmtSpec& spec, Buffer &buf, int event)
 {
     const char* const str =
           std::ios::copyfmt_event == event ? "copyfmt_event"
@@ -302,8 +304,8 @@
         : 0;
 
     return rw_asnprintf (buf.pbuf, buf.pbufsize,
-                         "%{+}%{?}%s%{:}copyfmt_event(%d)%{;}",
-                         0 != str, str, event);
+                         "%{+}%{?}std::ios::%{;}%{?}%s%{:}event(%d)%{;}",
+                         spec.fl_pound, 0 != str, str, event);
 }
 
 /********************************************************************/