Enable testing with _LIBCPP_DEBUG and fix bad assertions in string_view.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@229698 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier 2015-02-18 17:00:31 +00:00
parent 89465dce7c
commit 3f370b0a55
3 changed files with 21 additions and 2 deletions

View File

@ -313,7 +313,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
void remove_prefix(size_type __n) _NOEXCEPT 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; __data += __n;
__size -= __n; __size -= __n;
} }
@ -321,7 +321,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
void remove_suffix(size_type __n) _NOEXCEPT 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; __size -= __n;
} }

View File

@ -91,6 +91,7 @@ class Configuration(object):
self.configure_env() self.configure_env()
self.configure_compile_flags() self.configure_compile_flags()
self.configure_link_flags() self.configure_link_flags()
self.configure_debug_mode()
self.configure_warnings() self.configure_warnings()
self.configure_sanitizer() self.configure_sanitizer()
self.configure_substitutions() self.configure_substitutions()
@ -468,6 +469,15 @@ class Configuration(object):
else: else:
self.lit_config.fatal("unrecognized system: %r" % target_platform) 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): def configure_warnings(self):
enable_warnings = self.get_lit_bool('enable_warnings', False) enable_warnings = self.get_lit_bool('enable_warnings', False)
if enable_warnings: if enable_warnings:

View File

@ -174,6 +174,15 @@ Change the standard version used when building the tests.
</blockquote> </blockquote>
</p> </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> <p>
<h3 class="lit-option">use_sanitizer=&lt;sanitizer name&gt;</h3> <h3 class="lit-option">use_sanitizer=&lt;sanitizer name&gt;</h3>
<blockquote class="lit-option-desc"> <blockquote class="lit-option-desc">