[lldb] Enable TestFrameFormatNameWithArgs in case of cross compilation
authorAyush Sahay <quic_asahay@quicinc.com>
Wed, 1 Feb 2023 14:40:22 +0000 (20:10 +0530)
committerAyush Sahay <quic_asahay@quicinc.com>
Wed, 1 Feb 2023 17:35:28 +0000 (23:05 +0530)
TestFrameFormatNameWithArgs.test is enabled only in case of native
compilation but is applicable in case of cross compilation too. So,
provision support for enabling it in case of both, native and cross
compilation.

Reviewed By: Michael137

Differential Revision: https://reviews.llvm.org/D140839

lldb/test/Shell/Settings/TestFrameFormatNameWithArgs.test
lldb/test/Shell/helper/build.py

index dc4deda..eeb46cf 100644 (file)
@@ -1,5 +1,5 @@
 # UNSUPPORTED: system-windows
-# RUN: %clangxx_host -g -O0 %S/Inputs/names.cpp -std=c++17 -o %t.out
+# RUN: %build %S/Inputs/names.cpp --std c++17 -o %t.out
 # RUN: %lldb -b -s %s %t.out | FileCheck %s
 settings set -f frame-format "frame ${function.name-with-args}\n"
 break set -n foo
index 96684b7..55d871f 100755 (executable)
@@ -110,6 +110,12 @@ parser.add_argument('inputs',
                     nargs='+',
                     help='Source file(s) to compile / object file(s) to link')
 
+parser.add_argument('--std',
+                    metavar='std',
+                    dest='std',
+                    required=False,
+                    help='Specify the C/C++ standard.')
+
 
 args = parser.parse_args(args=sys.argv[1:])
 
@@ -231,6 +237,7 @@ class Builder(object):
         self.verbose = args.verbose
         self.obj_ext = obj_ext
         self.lib_paths = args.libs_dir
+        self.std = args.std
 
     def _exe_file_name(self):
         assert self.mode != 'compile'
@@ -581,6 +588,9 @@ class MsvcBuilder(Builder):
             args.append('--')
         args.append(source)
 
+        if self.std:
+            args.append('/std:' + self.std)
+
         return ('compiling', [source], obj,
                 self.compile_env,
                 args)
@@ -652,6 +662,9 @@ class GccBuilder(Builder):
         if sys.platform == 'darwin':
             args.extend(['-isysroot', self.apple_sdk])
 
+        if self.std:
+            args.append('-std={0}'.format(self.std))
+
         return ('compiling', [source], obj, None, args)
 
     def _get_link_command(self):
@@ -789,6 +802,7 @@ if args.verbose:
     print('  Verbose: ' + str(args.verbose))
     print('  Dryrun: ' + str(args.dry))
     print('  Inputs: ' + format_text(args.inputs, 0, 10))
+    print('  C/C++ Standard: ' + str(args.std))
     print('Script Environment:')
     print_environment(os.environ)