[libc++] Move the debug_level feature to the DSL
authorLouis Dionne <ldionne.2@gmail.com>
Wed, 21 Apr 2021 21:56:58 +0000 (17:56 -0400)
committerLouis Dionne <ldionne.2@gmail.com>
Wed, 21 Apr 2021 21:57:16 +0000 (17:57 -0400)
libcxx/utils/libcxx/test/config.py
libcxx/utils/libcxx/test/params.py

index 3c0cb09..54e67ec 100644 (file)
@@ -130,7 +130,6 @@ class Configuration(object):
         self.configure_compile_flags()
         self.configure_link_flags()
         self.configure_env()
-        self.configure_debug_mode()
         self.configure_sanitizer()
         self.configure_coverage()
         self.configure_modules()
@@ -473,15 +472,6 @@ class Configuration(object):
             self.cxx.link_flags += ['-lc++external_threads']
         self.target_info.add_cxx_link_flags(self.cxx.link_flags)
 
-    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_sanitizer(self):
         san = self.get_lit_conf('use_sanitizer', '').strip()
         if san:
index c6b4797..9d1d83a 100644 (file)
@@ -99,6 +99,13 @@ DEFAULT_PARAMETERS = [
               AddCompileFlag('-D_LIBCPP_DISABLE_AVAILABILITY')
             ]),
 
+  Parameter(name='debug_level', choices=['', '0', '1'], type=str, default='',
+            help="The debugging level to enable in the test suite.",
+            actions=lambda debugLevel: [] if debugLevel is '' else [
+              AddFeature('debug_level={}'.format(debugLevel)),
+              AddCompileFlag('-D_LIBCPP_DEBUG={}'.format(debugLevel))
+            ]),
+
   # Parameters to enable or disable parts of the test suite
   Parameter(name='enable_experimental', choices=[True, False], type=bool, default=False,
             help="Whether to enable tests for experimental C++ libraries (typically Library Fundamentals TSes).",