aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.tui/compact-source.exp
blob: e9703b3c3d95845960a2672bd0986a80790df7d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Copyright 2023 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/>.

# Check that "set tui compact-source on" has the intended effect.

require allow_tui_tests

tuiterm_env

standard_testfile

# Let's generate the source file.  We want a short file, with less than 10
# lines, and the copyright notice by itself is already more that that.
set src_list \
    [list \
	 "int" \
	 "main (void)" \
	 "{" \
	 "  return 0;" \
	 "}"]
set re_line_four [string_to_regexp [lindex $src_list 3]]
set src_txt [join $src_list "\n"]
set srcfile [standard_output_file $srcfile]
set fd [open $srcfile w]
puts $fd $src_txt
close $fd

if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
    return -1
}

Term::clean_restart 24 80 $binfile

gdb_test_no_output "maint set tui-left-margin-verbose on"
gdb_test_no_output "set tui compact-source on"

if {![Term::enter_tui]} {
    unsupported "TUI not supported"
    return
}

set re_border "\\|"

set max_line_nr_in_source_file [llength $src_list]
# Ensure there are more lines in the window than in the source file.
set src_window_lines [expr $max_line_nr_in_source_file + 2]
# Account for border size.
set src_window_size [expr $src_window_lines + 2]
Term::command "wh src $src_window_size"

set re_left_margin "___4_"

Term::check_contents "compact source format" \
    "$re_border$re_left_margin$re_line_four *$re_border"

set re_left_margin "___0*[expr $max_line_nr_in_source_file + 1]_"
Term::check_contents_not "no surplus line number" \
    "$re_border$re_left_margin *$re_border"