xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.base/list-missing-source.exp (revision 6db267571823ee3b0a1d61478df085a087f2e990)
1# Copyright 2019-2020 Free Software Foundation, Inc.
2
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16# This test checks how GDB handles missing source files around the
17# 'list' and 'info source' commands.
18
19standard_testfile
20
21# Create a source file in the output directory.
22set srcfile [standard_output_file main.c]
23set fd [open "$srcfile" w]
24puts $fd {
25int
26main ()
27{
28  return 0;
29}
30}
31close $fd
32set srcfile [remote_download host $srcfile]
33
34# Compile the source file.
35set options "debug"
36if  { [gdb_compile "${srcfile}" "${binfile}" \
37	   executable $options] != "" } {
38    untested "failed to compile"
39    return -1
40}
41
42# Now delete the source file.
43remote_file host delete $srcfile
44
45# Now start GDB, run to main and try to list the source.
46clean_restart ${binfile}
47
48if ![runto_main] then {
49    fail "can't run to main"
50    return 0
51}
52
53gdb_test "list" "1\[ \t\]+in\[ \t\]+$srcfile"
54
55gdb_test "info source" \
56    [multi_line \
57	 "info source" \
58	 "Current source file is $srcfile\(" \
59	 "Compilation directory is \[^\n\r\]+)?" \
60	 "Source language is c." \
61	 "Producer is \[^\n\r\]+" \
62	 "Compiled with DWARF $decimal debugging format." \
63	 "Does not include preprocessor macro info." ]
64
65