You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2006/08/10 23:28:40 UTC

svn commit: r430538 - /incubator/stdcxx/trunk/tests/localization/22.locale.num.put.cpp

Author: sebor
Date: Thu Aug 10 14:28:39 2006
New Revision: 430538

URL: http://svn.apache.org/viewvc?rev=430538&view=rev
Log:
2006-08-10  Martin Sebor  <se...@roguewave.com>

	* 22.locale.num.put.cpp: Added preprocessor guards to disable
	long long tests when the type is not supported.

Modified:
    incubator/stdcxx/trunk/tests/localization/22.locale.num.put.cpp

Modified: incubator/stdcxx/trunk/tests/localization/22.locale.num.put.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.num.put.cpp?rev=430538&r1=430537&r2=430538&view=diff
==============================================================================
--- incubator/stdcxx/trunk/tests/localization/22.locale.num.put.cpp (original)
+++ incubator/stdcxx/trunk/tests/localization/22.locale.num.put.cpp Thu Aug 10 14:28:39 2006
@@ -6,16 +6,23 @@
  *
  ***************************************************************************
  *
- * Copyright (c) 1994-2005 Quovadx,  Inc., acting through its  Rogue Wave
- * Software division. Licensed under the Apache License, Version 2.0 (the
- * "License");  you may  not use this file except  in compliance with the
- * License.    You    may   obtain   a   copy   of    the   License    at
- * http://www.apache.org/licenses/LICENSE-2.0.    Unless   required    by
- * applicable law  or agreed to  in writing,  software  distributed under
- * the License is distributed on an "AS IS" BASIS,  WITHOUT WARRANTIES OR
- * CONDITIONS OF  ANY KIND, either  express or implied.  See  the License
- * for the specific language governing permissions  and limitations under
- * the License.
+ * Licensed to the Apache Software  Foundation (ASF) under one or more
+ * contributor  license agreements.  See  the NOTICE  file distributed
+ * with  this  work  for  additional information  regarding  copyright
+ * ownership.   The ASF  licenses this  file to  you under  the Apache
+ * License, Version  2.0 (the  "License"); you may  not use  this file
+ * except in  compliance with the License.   You may obtain  a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the  License is distributed on an  "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY  KIND, either  express or
+ * implied.   See  the License  for  the  specific language  governing
+ * permissions and limitations under the License.
+ *
+ * Copyright 2001-2006 Rogue Wave Software.
  * 
  **************************************************************************/
 
@@ -38,12 +45,12 @@
 #include <climits>   // for integral limits macros
 #include <clocale>   // for LC_NUMERIC, setlocale()
 #include <cstdio>    // for sprintf()
-#include <cstdlib>   // for mbstowcs()
+#include <cstring>   // for strcmp(), strlen()
 
 #include <any.h>         // for TOSTR()
 #include <cmdopt.h>      // for rw_enabled
 #include <driver.h>      // for rw_test
-#include <localedef.h>   // for rw_locales
+#include <rw_locale.h>   // for rw_locales
 #include <valcmp.h>      // for rw_equal
 
 /**************************************************************************/
@@ -1326,12 +1333,12 @@
 template <class charT>
 void llong_test (charT, const char *cname)
 {
-#ifdef _RWSTD_LONG_LONG
-
     const char* const tname = "long long";
 
     rw_info (0, 0, 0, "std::num_put<%s>::put (..., %s)", cname, tname);
 
+#ifndef _RWSTD_NO_LONG_LONG
+
 #  define STDIO_FMAT   "%" _RWSTD_LLONG_PRINTF_PREFIX "d"
 
 #  ifndef _MSC_VER
@@ -1363,11 +1370,11 @@
     TEST (T,  -LL (87654321), dec, 0, 0, ' ', "", STDIO_FMAT);
     TEST (T, -LL (987654321), dec, 0, 0, ' ', "", STDIO_FMAT);
 
-#undef FLAGS
-#define FLAGS   hex | showbase | internal
+#  undef FLAGS
+#  define FLAGS   hex | showbase | internal
 
-#undef OPTS
-#define OPTS   FLAGS, 0, 20, ' ', "\1\2\3\4\1\2\3\4"
+#  undef OPTS
+#  define OPTS   FLAGS, 0, 20, ' ', "\1\2\3\4\1\2\3\4"
 
     // internal justfication, hex format, grouping
     TEST (T, LL (0),                  OPTS,     "                   0");
@@ -1388,6 +1395,12 @@
     TEST (T, LL (0x123456789abcdef),  OPTS,  "0x12,34,5,6789,abc,de,f");
     TEST (T, LL (0x123456789abcdef0), OPTS, "0x123,45,6,789a,bcd,ef,0");
 
+#else   // if defined (_RWSTD_NO_LONG_LONG)
+
+    rw_note (0, 0, __LINE__, "num_put<%s>::put (..., %s) not exercised, "
+             "macro _RWSTD_NO_LONG_LONG #defined",
+             cname, tname);
+
 #endif   // _RWSTD_LONG_LONG
 }
 
@@ -1397,13 +1410,22 @@
 template <class charT>
 void ullong_test (charT, const char *cname)
 {
-#ifdef _RWSTD_LONG_LONG
-
     const char* const tname = "unsigned long long";
 
     rw_info (0, 0, 0, "std::num_put<%s>::put (..., %s)", cname, tname);
 
-#endif   // _RWSTD_LONG_LONG
+#ifndef _RWSTD_NO_LONG_LONG
+
+    rw_warn (0, 0, __LINE__, "num_put<%s>::put (..., %s) not exercised",
+             cname, tname);
+
+#else   // if defined (_RWSTD_NO_LONG_LONG)
+
+    rw_note (0, 0, __LINE__, "num_put<%s>::put (..., %s) not exercised, "
+             "macro _RWSTD_NO_LONG_LONG #defined",
+             cname, tname);
+
+#endif   // _RWSTD_NO_LONG_LONG
 }
 
 
@@ -1703,12 +1725,14 @@
     TEST (T, PVoid ( LONG_MIN), 0, 0, 0, ' ', "", "%p");
     TEST (T, PVoid (ULONG_MAX), 0, 0, 0, ' ', "", "%p");
 
-#if _RWSTD_LLONG_SIZE <= _RWSTD_PTR_SIZE
+#ifdef _RWSTD_LLONG_MAX
+#  if _RWSTD_LLONG_SIZE <= _RWSTD_PTR_SIZE
 
-    TEST (T, PVoid (_RWSTD_LLONG_MAX),  0, 0, 0, ' ', "", "%p");
-    TEST (T, PVoid (_RWSTD_ULLONG_MAX), 0, 0, 0, ' ', "", "%p");
+      TEST (T, PVoid (_RWSTD_LLONG_MAX),  0, 0, 0, ' ', "", "%p");
+      TEST (T, PVoid (_RWSTD_ULLONG_MAX), 0, 0, 0, ' ', "", "%p");
 
-#endif   // LLONG_MAX
+#  endif   // LLONG_MAX
+#endif   // _RWSTD_LLONG_MAX
 
 }