# Copyright 2020-2024 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 . # Testing for 'maint print xml-tdesc'. Check we can print out the # current target description and load it back in again. require allow_xml_test standard_testfile if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} { return -1 } if {![runto_main]} { return 0 } # Three files we're going to write out to. set xml_file_1 [host_standard_output_file outfile1.xml] set xml_file_2 [host_standard_output_file outfile2.xml] set xml_file_3 [host_standard_output_file outfile3.xml] # Write the current target description to a file. gdb_test_no_output "pipe maint print xml-tdesc | cat > $xml_file_1" \ "write current target description to file" # Read the target description back in to GDB, and the write it back # out to a file. gdb_test_no_output \ "pipe maint print xml-tdesc $xml_file_1 | cat > $xml_file_2" \ "read previous xml description, and write it out to a second file" # Check the two produced files are identical. gdb_test "shell diff -s $xml_file_1 $xml_file_2" \ "Files \[^\r\n\]* are identical" \ "first two produced xml files are identical" # Restart GDB. clean_restart # Change to use one of the target descriptions we wrote out earlier. gdb_test_no_output "set tdesc filename $xml_file_1" \ "set target description to use" # Load the executable. gdb_load ${binfile} # Run to `main' where we begin our tests. if {![runto_main]} { return -1 } # Run info registers just to check this appears to run fine with the # new target description. gdb_test -lbl "info all-registers" "" "Run info registers" # Write out the current target description. gdb_test_no_output "pipe maint print xml-tdesc | cat > $xml_file_3" \ "write third target description to file" # And check that it matches the original file we loaded. gdb_test "shell diff -s $xml_file_1 $xml_file_3" \ "Files \[^\r\n\]* are identical" \ "first and third produced xml files are identical"