[PATCH] D101055: [dexter] Add keyword argument 'on_line' to DexLabel

Orlando Cazalet-Hyams via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 23 04:03:22 PDT 2021


This revision was automatically updated to reflect the committed changes.
Closed by commit rG487ab5345920: [dexter] Add keyword argument 'on_line' to DexLabel (authored by Orlando).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101055/new/

https://reviews.llvm.org/D101055

Files:
  debuginfo-tests/dexter/Commands.md
  debuginfo-tests/dexter/dex/command/commands/DexLabel.py
  debuginfo-tests/dexter/feature_tests/subtools/test/err_label_kwarg.cpp
  debuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp


Index: debuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp
===================================================================
--- /dev/null
+++ debuginfo-tests/dexter/feature_tests/subtools/test/label_another_line.cpp
@@ -0,0 +1,14 @@
+// Purpose:
+//    Check that the optional keyword argument 'on_line' makes a \DexLabel label
+//    that line instead of the line the command is found on.
+//
+// RUN: %dexter_regression_test -- %s | FileCheck %s
+// CHECK: label_another_line.cpp: (1.0000)
+
+int main() {
+  int result = 0;
+  return result;
+}
+
+// DexLabel('test', on_line=10)
+// DexExpectWatchValue('result', '0', on_line='test')
Index: debuginfo-tests/dexter/feature_tests/subtools/test/err_label_kwarg.cpp
===================================================================
--- /dev/null
+++ debuginfo-tests/dexter/feature_tests/subtools/test/err_label_kwarg.cpp
@@ -0,0 +1,8 @@
+// Purpose:
+//    Check that bad keyword args in \DexLabel are reported.
+//    Use --binary switch to trick dexter into skipping the build step.
+//
+// RUN: not %dexter_base test --binary %s --debugger 'lldb' -- %s | FileCheck %s
+// CHECK: parser error:{{.*}}err_label_kwarg.cpp(8): unexpected named args: bad_arg
+
+// DexLabel('test', bad_arg=0)
Index: debuginfo-tests/dexter/dex/command/commands/DexLabel.py
===================================================================
--- debuginfo-tests/dexter/dex/command/commands/DexLabel.py
+++ debuginfo-tests/dexter/dex/command/commands/DexLabel.py
@@ -12,16 +12,27 @@
 
 
 class DexLabel(CommandBase):
-    def __init__(self, label):
+    def __init__(self, label, **kwargs):
 
         if not isinstance(label, str):
             raise TypeError('invalid argument type')
 
+        try:
+            self.on_line = kwargs.pop('on_line')
+        except KeyError:
+            # We cannot use self.lineno because it hasn't been set yet.
+            pass
+        if kwargs:
+            raise TypeError(f'unexpected named args: {", ".join(kwargs)}')
+
         self._label = label
         super(DexLabel, self).__init__()
 
+    def get_line(self):
+        return getattr(self, 'on_line', self.lineno)
+
     def get_as_pair(self):
-        return (self._label, self.lineno)
+        return (self._label, self.get_line())
 
     @staticmethod
     def get_name():
Index: debuginfo-tests/dexter/Commands.md
===================================================================
--- debuginfo-tests/dexter/Commands.md
+++ debuginfo-tests/dexter/Commands.md
@@ -205,14 +205,17 @@
 
 ----
 ## DexLabel
-    DexLabel(name)
+    DexLabel(name [, **on_line])
 
     Args:
         name (str): A unique name for this line.
 
+    Keyword args:
+        on_line (int): Specify a line number to label.
+
 ### Description
-Name the line this command is found on. Line names can be referenced by other
-commands expecting line number arguments.
+Name the line this command is found on or 'on_line' if it is provided. Line
+names can be referenced by other commands expecting line number arguments.
 For example, `DexExpectWatchValues(..., on_line='my_line_name')`.
 
 ### Heuristic


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101055.339975.patch
Type: text/x-patch
Size: 3140 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210423/3b097a5a/attachment.bin>


More information about the llvm-commits mailing list