Enable testing with _LIBCPP_DEBUG and fix bad assertions in string_view.
authorEric Fiselier <eric@efcs.ca>
Wed, 18 Feb 2015 17:00:31 +0000 (17:00 +0000)
committerEric Fiselier <eric@efcs.ca>
Wed, 18 Feb 2015 17:00:31 +0000 (17:00 +0000)
llvm-svn: 229698

libcxx/include/experimental/string_view
libcxx/test/libcxx/test/config.py
libcxx/www/lit_usage.html

index d423f39..b8d061f 100644 (file)
@@ -313,7 +313,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS
         _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
         void remove_prefix(size_type __n) _NOEXCEPT
         {
-            _LIBCPP_ASSERT(n <= size(), "remove_prefix() can't remove more than size()");
+            _LIBCPP_ASSERT(__n <= size(), "remove_prefix() can't remove more than size()");
             __data += __n;
             __size -= __n;
         }
@@ -321,7 +321,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS
         _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
         void remove_suffix(size_type __n) _NOEXCEPT
         {
-            _LIBCPP_ASSERT(n <= size(), "remove_suffix() can't remove more than size()");
+            _LIBCPP_ASSERT(__n <= size(), "remove_suffix() can't remove more than size()");
             __size -= __n;
         }
 
index 43e3bb8..5633d3d 100644 (file)
@@ -91,6 +91,7 @@ class Configuration(object):
         self.configure_env()
         self.configure_compile_flags()
         self.configure_link_flags()
+        self.configure_debug_mode()
         self.configure_warnings()
         self.configure_sanitizer()
         self.configure_substitutions()
@@ -468,6 +469,15 @@ class Configuration(object):
         else:
             self.lit_config.fatal("unrecognized system: %r" % target_platform)
 
+    def configure_debug_mode(self):
+        debug_level = self.get_lit_conf('debug_level', None)
+        if not debug_level:
+            return
+        if debug_level not in ['0', '1']:
+            self.lit_config.fatal('Invalid value for debug_level "%s".'
+                                  % debug_level)
+        self.cxx.compile_flags += ['-D_LIBCPP_DEBUG=%s' % debug_level]
+
     def configure_warnings(self):
         enable_warnings = self.get_lit_bool('enable_warnings', False)
         if enable_warnings:
index 645143f..77179f2 100644 (file)
@@ -175,6 +175,15 @@ Change the standard version used when building the tests.
 </p>
 
 <p>
+<h3 class="lit-option">debug_level=&lt;level&gt;</h3>
+<blockquote class="lit-option-desc">
+<b>Values: </b><code>0, 1</code></br>
+Enable the use of debug mode. Level 0 enables assertions and level 1 enables
+assertions and debugging of iterator misuse.
+</blockquote>
+</p>
+
+<p>
 <h3 class="lit-option">use_sanitizer=&lt;sanitizer name&gt;</h3>
 <blockquote class="lit-option-desc">
 <b>Values: </b><code>Memory, MemoryWithOrigins, Address, Undefined</code></br>