diff --git a/gdb/testsuite/gdb.testsuite/string_to_regexp.exp b/gdb/testsuite/gdb.testsuite/string_to_regexp.exp
new file mode 100644
index 0000000..2dfd2db
--- /dev/null
+++ b/gdb/testsuite/gdb.testsuite/string_to_regexp.exp
@@ -0,0 +1,66 @@
+# Copyright 2021 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Testsuite self-tests for string_to_regexp/string_list_to_regexp.
+# The former is not explicitly tested, assuming string_list_to_regexp uses
+# string_to_regexp.
+
+set test_nr 0
+
+proc test_regexp { args } {
+    global test_nr
+    incr test_nr
+
+    set fargs {}
+    set farg 1
+    foreach arg $args {
+	if { $farg } {
+	    if { $arg == "--" } {
+		set farg 0
+		continue
+	    }
+	    lappend fargs $arg
+	} else {
+	    set re $arg
+	    break
+	}
+    }
+    set res [string_list_to_regexp {*}$fargs]
+
+    set test "#$test_nr: got expected re"
+    if { $res eq $re } {
+	pass $test
+    } else {
+	verbose -log "Expecting '$re'"
+	verbose -log "Got '$res'"
+	fail $test
+    }
+
+    set test "#$test_nr: re matches string"
+    set str [join $fargs ""]
+    if { [regexp $re $str] } {
+	pass $test
+    } else {
+	verbose -log "Matching '$str'"
+	verbose -log "Failed against '$re'"
+	fail $test
+    }
+}
+
+test_regexp abc -- abc
+test_regexp abc def -- abcdef
+test_regexp {\\} -- {\\\\}
+test_regexp "\n" -- "\n"
+test_regexp {\n} -- {\\n}
+test_regexp {\\} n -- {\\\\n}
diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp
index cec1571..42452d9 100644
--- a/gdb/testsuite/lib/gdb-utils.exp
+++ b/gdb/testsuite/lib/gdb-utils.exp
@@ -38,6 +38,18 @@
     return $result
 }
 
+# Given a list of strings, adds backslashes as needed to each string to
+# create a regexp that will match the string, and join the result.
+
+proc string_list_to_regexp { args } {
+    set result ""
+    foreach arg $args {
+	set arg [string_to_regexp $arg]
+       append result $arg
+    }
+    return $result
+}
+
 # Wrap STR in an ANSI terminal escape sequences -- one to set the
 # style to STYLE, and one to reset the style to the default.  The
 # return value is suitable for use as a regular expression.
