internal-error using '@' (repeat) operator on array of dynamic objects
[binutils-gdb.git] / gdb / testsuite / gdb.ada / str_ref_cmp.exp
index 671001c133d6e6b14cd4c3c562dc03f4e321c9f6..2c09582b96761e77fb82f29a7078ac525130fda7 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if $tracelevel then {
-    strace $tracelevel
-}
-
 load_lib "ada.exp"
 
-set testdir "str_ref_cmp"
-set testfile "${testdir}/foo"
-set srcfile ${srcdir}/${subdir}/${testfile}.adb
-set binfile ${objdir}/${subdir}/${testfile}
+standard_ada_testfile foo
 
-file mkdir ${objdir}/${subdir}/${testdir}
 if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
   return -1
 }
 
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+clean_restart ${testfile}
 
 set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb]
 runto "foo.adb:$bp_location"
 
+# BINOP_EQUAL incorrectly resolves with system debug info to Ada.Strings.Maps.
+set test "operator = works for strings"
+gdb_test_multiple {print "a" = "a"} $test {
+    -re " = false\r\n$gdb_prompt $" {
+       kfail ada/12607 $test
+       untested ${testdir}.exp
+       return 0
+    }
+    -re " = true\r\n$gdb_prompt $" {
+       pass $test
+    }
+}
+
 # Verify that we can compare a string slice with another string.
 
 gdb_test "print String_Var (1 .. 3) = \"Hel\"" \