Use raw strings on gdb.python/py-xmethods.exp (and fix Python 3.8's "SyntaxWarning...
authorSergio Durigan Junior <sergiodj@redhat.com>
Sun, 25 Aug 2019 16:10:35 +0000 (12:10 -0400)
committerSergio Durigan Junior <sergiodj@redhat.com>
Mon, 26 Aug 2019 13:18:37 +0000 (09:18 -0400)
The way unrecognized escape sequences are handled has changed in
Python 3.8: users now see a SyntaxWarning message, which will
eventually become a SyntaxError in future versions of Python:

  (gdb) source /blabla/gdb.python/py-xmethods/py-xmethods.py
  /blabla/gdb.python/py-xmethods/py-xmethods.py:204: SyntaxWarning: invalid escape seque
  nce \+
    'operator\+',
  /blabla/gdb.python/py-xmethods/py-xmethods.py:211: SyntaxWarning: invalid escape seque
  nce \+
    'operator\+\+',

One of our testcases, gdb.python/py-xmethods.exp, contains strings in
the form of "operator\+".  This is not recognized by Python, but is
still needed by the testsuite to work properly.  The solution is
simple: we just have to make sure these strings are marked as
raw (i.e, r"").  This is what this patch does.  I took the opportunity
to also convert other strings to raw, which, in two cases, allowed the
removal of an extra backslash.

I tested this using Python 3.7 and Python 3.8, and everything works
fine.

I think I could push this as obvious, but decided to send it to
gdb-patches just in case.

gdb/testsuite/ChangeLog:
2019-08-26  Sergio Durigan Junior  <sergiodj@redhat.com>

* gdb.python/py-xmethods.exp: Use raw strings when passing
arguments to SimpleXMethodMatcher.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-xmethods.py

index 639bea20e731b69d7974168bbcc2be3148cd8524..e8445f8e88b34a05741dc8bfbe28f9a5daed643b 100644 (file)
@@ -1,3 +1,8 @@
+2019-08-26  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+       * gdb.python/py-xmethods.exp: Use raw strings when passing
+       arguments to SimpleXMethodMatcher.
+
 2019-08-22  Tom de Vries  <tdevries@suse.de>
 
        * gdb.multi/multi-term-settings.exp (coretest): Make gdb_test messages
index 587842d7360e9d5e0b203ca87d85409c807fae48..cea48b80d8cc128061c182ef690a19af635531c0 100644 (file)
@@ -199,34 +199,34 @@ class G_methods_matcher(XMethodMatcher):
 
 
 global_dm_list = [
-    SimpleXMethodMatcher('A_plus_A',
-                         '^dop::A$',
-                         'operator\+',
+    SimpleXMethodMatcher(r'A_plus_A',
+                         r'^dop::A$',
+                         r'operator\+',
                          A_plus_A,
                          # This is a replacement, hence match the arg type
                          # exactly!
                          type_A.const().reference()),
-    SimpleXMethodMatcher('plus_plus_A',
-                         '^dop::A$',
-                         'operator\+\+',
+    SimpleXMethodMatcher(r'plus_plus_A',
+                         r'^dop::A$',
+                         r'operator\+\+',
                          plus_plus_A),
-    SimpleXMethodMatcher('A_geta',
-                         '^dop::A$',
-                         '^geta$',
+    SimpleXMethodMatcher(r'A_geta',
+                         r'^dop::A$',
+                         r'^geta$',
                          A_geta),
-    SimpleXMethodMatcher('A_getarrayind',
-                         '^dop::A$',
-                         '^getarrayind$',
+    SimpleXMethodMatcher(r'A_getarrayind',
+                         r'^dop::A$',
+                         r'^getarrayind$',
                          A_getarrayind,
                          type_int),
-    SimpleXMethodMatcher('A_indexoper',
-                         '^dop::A$',
-                         'operator\\[\\]',
+    SimpleXMethodMatcher(r'A_indexoper',
+                         r'^dop::A$',
+                         r'operator\[\]',
                          A_indexoper,
                          type_int),
-    SimpleXMethodMatcher('B_indexoper',
-                         '^dop::B$',
-                         'operator\\[\\]',
+    SimpleXMethodMatcher(r'B_indexoper',
+                         r'^dop::B$',
+                         r'operator\[\]',
                          B_indexoper,
                          type_int)
 ]