blob: 738e9e191e6139722719b0d8a5bf3236d182e7f8 [file]
# Copyright 2026 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/>.
# Test that symtabs are sorted by the displayed file name in "info
# types".
load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
standard_testfile main.c -debug.S
# Set up the DWARF for the test.
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
global srcdir subdir srcfile
cu {} {
DW_TAG_compile_unit {
DW_AT_language @DW_LANG_C
DW_AT_name /tmp/aaaa.c
} {
DW_TAG_base_type {
DW_AT_byte_size 1 DW_FORM_sdata
DW_AT_encoding @DW_ATE_unsigned
DW_AT_name byte1
}
}
}
cu {} {
DW_TAG_compile_unit {
DW_AT_language @DW_LANG_C
DW_AT_name bbbb.c
DW_AT_comp_dir /tmp
} {
DW_TAG_base_type {
DW_AT_byte_size 1 DW_FORM_sdata
DW_AT_encoding @DW_ATE_unsigned
DW_AT_name byte2
}
}
}
cu {} {
DW_TAG_compile_unit {
DW_AT_language @DW_LANG_C
DW_AT_name /tmp/cccc.c
} {
DW_TAG_base_type {
DW_AT_byte_size 1 DW_FORM_sdata
DW_AT_encoding @DW_ATE_unsigned
DW_AT_name byte3
}
}
}
}
if { [prepare_for_testing "failed to prepare" ${testfile} \
[list $srcfile $asm_file] {nodebug}] } {
return
}
gdb_test_no_output "set filename-display relative"
# Here, bbbb.c is at the end because it sorts after "/tmp/cccc.c".
gdb_test "info types byte" \
[multi_line \
"All types matching regular expression \"byte\":" \
"" \
"File /tmp/aaaa.c:" \
" byte1" \
"" \
"File /tmp/cccc.c:" \
" byte3" \
"" \
"File bbbb.c:" \
" byte2"] \
"info types relative filenames"
gdb_test_no_output "set filename-display basename"
# Here the order is by basename.
gdb_test "info types byte" \
[multi_line \
"All types matching regular expression \"byte\":" \
"" \
"File aaaa.c:" \
" byte1" \
"" \
"File bbbb.c:" \
" byte2" \
"" \
"File cccc.c:" \
" byte3"] \
"info types basenames"
gdb_test_no_output "set filename-display absolute"
# Here the order is by the full name.
gdb_test "info types byte" \
[multi_line \
"All types matching regular expression \"byte\":" \
"" \
"File /tmp/aaaa.c:" \
" byte1" \
"" \
"File /tmp/bbbb.c:" \
" byte2" \
"" \
"File /tmp/cccc.c:" \
" byte3"] \
"info types absolute"