# This testcase is part of GDB, the GNU debugger. # Copyright 2022-2025 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 . # Generate binaries imitating different ways source file paths can be passed to # compilers. Test printing macros from those binaries. # The do_test proc comes from macro-source-path.exp.tcl. source $srcdir/$subdir/macro-source-path.exp.tcl # When adding a test here, please consider adding an equivalent case to # `gdb.base/macro-source-path.exp`. # The following tests are based on the output of `clang-14 -gdwarf-4 # -fdebug-macro -g3 ` (using its built-in assembler). With -gdwarf-4, # clang produces a .debug_macinfo section, not a .debug_macro section. But # this test still creates a .debug_macro section, that's good enough for what # we want to test. ## test.c do_test filename 4 "test.c" 1 { } { {"test.c" 0} } ## ./test.c do_test dot-filename 4 "test.c" 1 { "." } { {"test.c" 1} } ## ../cwd/test.c do_test dot-dot-cwd 4 "../cwd/test.c" 1 { "../cwd" } { {"test.c" 1} } ## /tmp/cwd/test.c do_test absolute-cwd 4 "/tmp/cwd/test.c" 1 { } { {"test.c" 0} } ## ../other/test.c do_test dot-dot-other 4 "../other/test.c" 1 { "../other" } { {"test.c" 1} } ## /tmp/other/test.c do_test absolute-other 4 "/tmp/other/test.c" 1 { "/tmp" } { {"other/test.c" 1} }