# Copyright 1992-2021 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/>.

# This file was written by Michael Snyder (msnyder@cygnus.com)

# Test gdb set and show commands.  The goal here is to verify that parameters
# are set and shown correctly, not test whether setting the parameter has the
# desired effect.


standard_testfile .c

if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable {debug}] != "" } {
     untested "failed to compile"
     return -1
}

proc_with_prefix test_setshow_annotate {} {
    # Start with a fresh gdb
    clean_restart $::binfile

    if ![runto_main] then {
	return
    }

    #test default annotation_level is 0
    gdb_test "show annotate" "Annotation_level is 0..*"  "default annotation_level is zero"

    #test set annotate 2

    # Here we need to fiddle with prompts.
    save_vars { ::gdb_prompt } {
	set old_gdb_prompt $::gdb_prompt
	set ::gdb_prompt "\r\n\032\032pre-prompt\r\n$::gdb_prompt \r\n\032\032prompt\r\n"

	gdb_test_multiple "set annotate 2" "set annotate 2" {
	    -re "\r\n$::gdb_prompt$" {
		pass "set annotate 2"
	    }
	}

	gdb_test_multiple "show annotate" "show annotate 2" {
	    -re ".*\032\032post-prompt.*Annotation_level is 2..*\032\032pre-prompt.*$old_gdb_prompt .*\032\032prompt.*$" {
		pass "show annotate 2"
	    }
	}

	#test annotation_level 2
	gdb_test_multiple "info line 1" "annotation_level 2" {
	    -re ".*\032\032post-prompt.*Line 1 of .* is at address .* but contains no code.*:1:0:beg:0x.*\032\032pre-prompt.*$old_gdb_prompt .*\032\032prompt.*$" {
		pass "annotation_level 2"
	    }
	}
    }

    #test set annotate 1
    gdb_test "set annotate 1" ".*post-prompt.*"
    gdb_test "show annotate" "Annotation_level is 1..*"  "show annotate (1)"
    #test annotation_level 1
    gdb_test "info line 1" "Line 1 of .* is at address .* but contains no code.*:1:0:beg:0x.*"  "annotation_level 1"
    #test set annotate 0
    gdb_test_no_output "set annotate 0" "set annotate 0"
    gdb_test "show annotate" "Annotation_level is 0..*"  "show annotate (0)"
    #test annotation_level 0
    gdb_test "info line 1" "Line 1 of .* is at address .* but contains no code.*"  "annotation_level 0"
}

proc_with_prefix test_setshow_args {} {
    clean_restart $::binfile

    if ![runto_main] then {
	return
    }

    gdb_test "show args" "Argument list to give program being debugged when it is started is \"\"\." \
	"show args empty"
    gdb_test "p \$_gdb_setting_str(\"args\")" " = \"\""

    gdb_test_no_output "set args ~"
    gdb_test "show args" "Argument list to give program being debugged when it is started is \"~\"..*" \
	"show args ~"

    #test set args
    gdb_test_no_output "set args foo bar blup baz bubble" "set args"

    #test show args
    gdb_test "show args" "Argument list to give program being debugged when it is started is \"foo bar blup baz bubble\"..*" \
	"show args multiple words"
    gdb_test "p \$_gdb_setting(\"args\")" " = \"foo bar blup baz bubble\"" \
	"_gdb_setting args"

    # Don't test if we can't pass args or if we're using a stub.
    if { !$::use_gdb_stub && ![target_info exists noargs] } {
	#test passing args
	gdb_test "cont" "Continuing.*" "continuing"
	delete_breakpoints
	gdb_test "run" "Starting program:.*foo bar blup baz bubble.*" "passing args"
    }
}

proc_with_prefix test_setshow_check {} {
    clean_restart

    #test set check range on
    # Note: the below might produce a warning, so match anything.
    gdb_test "set check range on" ""

    gdb_test "p \$_gdb_setting(\"check range\")" " = \"on\"" \
	"_gdb_setting check range on"

    #test show check range on
    gdb_test "show check range" "Range checking is \"on\"\..*" "show check range (on)"

    #test set check range off with trailing space
    gdb_test_no_output "set check range off " "set check range off"

    #test show check range off
    gdb_test "show check range" "Range checking is \"off\"\..*" "show check range (off)"
    gdb_test "p \$_gdb_setting(\"check range\")" " = \"off\"" \
	"_gdb_setting check range off"

    #test set check range auto
    gdb_test_no_output "set check range auto" "set check range auto"

    #test show check range auto
    gdb_test "show check range" "Range checking is \"auto; currently .*" "show check range (auto)"
    gdb_test "p \$_gdb_setting(\"check range\")" " = \"auto\"" \
	"_gdb_setting check range auto"

    # Test set check type on
    gdb_test_no_output "set check type on"

    # Test show check type on
    gdb_test "show check type" "Strict type checking is on\..*" \
	"show check type (on)"
    gdb_test "p \$_gdb_setting_str(\"check type\")" " = \"on\"" \
	"_gdb_setting_str check type on"
    gdb_test "p \$_gdb_setting(\"check type\")" " = 1" \
	"_gdb_setting check type on 1"

    # Test set check type off with trailing space
    gdb_test_no_output "set check type off " "set check type off"
    gdb_test "p \$_gdb_setting_str(\"check type\")" " = \"off\"" \
	"_gdb_setting_str check type off"
    gdb_test "p \$_gdb_setting(\"check type\")" " = 0" \
	"_gdb_setting check type off 0"

    # Test show check type off
    gdb_test "show check type" "Strict type checking is off\..*" \
	"show check type (off)"
}

proc_with_prefix test_setshow_breakpoint_pending {} {
    #test set breakpoint pending

    #test set breakpoint pending on
    gdb_test_no_output "set breakpoint pending on"
    gdb_test "p \$_gdb_setting_str(\"breakpoint pending\")" " = \"on\"" \
	"_gdb_setting_str breakpoint pending on"
    gdb_test "p \$_gdb_setting(\"breakpoint pending\")" " = 1" \
	"_gdb_setting breakpoint pending 1"

    #test show breakpoint pending on
    gdb_test "show breakpoint pending" " is on\..*" "show breakpoint pending on"

    #test show breakpoint pending off
    gdb_test_no_output "set breakpoint pending off"
    gdb_test "show breakpoint pending" " is off\..*" "show breakpoint pending off"
    gdb_test "p \$_gdb_setting_str(\"breakpoint pending\")" " = \"off\"" \
	"_gdb_setting_str breakpoint pending off"
    gdb_test "p \$_gdb_setting(\"breakpoint pending\")" " = 0" \
	"_gdb_setting breakpoint pending 0"

    #test set breakpoint pending auto
    gdb_test_no_output "set breakpoint pending auto"

    #test show breakpoint pending auto
    gdb_test "show breakpoint pending" " is auto.*" "show breakpoint pending auto"
    gdb_test "p \$_gdb_setting_str(\"breakpoint pending\")" " = \"auto\"" \
	"_gdb_setting_str breakpoint pending auto"
    gdb_test "p \$_gdb_setting(\"breakpoint pending\")" " = -1" \
	"_gdb_setting breakpoint pending -1"
}

proc_with_prefix test_setshow_complaints {} {
    clean_restart

    #test set complaints 100
    gdb_test_no_output "set complaints 100" "set complaints 100"
    #test show complaints 100
    gdb_test "show complaints" "Max number of complaints about incorrect symbols is 100..*" "show complaints (100)"
    #test set complaints 0
    gdb_test_no_output "set complaints 0" "set complaints 0"
    #test show complaints 0
    gdb_test "show complaints" "Max number of complaints about incorrect symbols is 0..*" "show complaints (0)"
}

proc_with_prefix test_setshow_confirm {} {
    clean_restart

    #test set confirm off
    gdb_test_no_output "set confirm off" "set confirm off"
    #test show confirm off
    gdb_test "show confirm" "Whether to confirm potentially dangerous operations is off..*" "show confirm (off)"
    #test set confirm on
    gdb_test_no_output "set confirm on" "set confirm on"
    #test show confirm on
    gdb_test "show confirm" "Whether to confirm potentially dangerous operations is on..*" "show confirm (on)"
}

proc_with_prefix test_setshow_editing {} {
    clean_restart

    #test set editing off
    gdb_test_no_output "set editing off" "set editing off"

    #test show editing off
    gdb_test "show editing" "Editing of command lines as they are typed is off..*" "show editing (off)"

    #test set editing on
    #gdb_test_no_output "set editing on" "set editing on"

    #test show editing on
    #gdb_test "show editing" "Editing of command lines as they are typed is on..*" "show editing (on)"
}

proc_with_prefix test_setshow_environment {} {
    clean_restart

    #test set environment FOOBARBAZ
    gdb_test_no_output "set environment FOOBARBAZ = grbxgrbxgrbx" \
	"set environment FOOBARBAZ"

    #test show environment FOOBARBAZ
    gdb_test "show environment FOOBARBAZ" "FOOBARBAZ = grbxgrbxgrbx.*"
}

proc_with_prefix test_setshow_height {} {
    clean_restart

    #test set height 100
    gdb_test_no_output "set height 100" "set height 100"

    #test show height 100
    gdb_test "show height" "Number of lines gdb thinks are in a page is 100..*"
    gdb_test "p \$_gdb_setting_str(\"height\")" " = \"100\"" \
	"_gdb_setting_str height 100"
    gdb_test "p \$_gdb_setting(\"height\")" " = 100" \
	"_gdb_setting height 100"

    # Back to infinite height to avoid pagers.  While at it, check that
    # literal "unlimited" works just as well as 0.
    gdb_test_no_output "set height unlimited"
    gdb_test "p \$_gdb_setting_str(\"height\")" " = \"unlimited\"" \
	"_gdb_setting_str height unlimited"
    gdb_test "p \$_gdb_setting(\"height\")" " = 0" \
	"_gdb_setting height unlimited"
}

proc_with_prefix test_setshow_history {} {
    clean_restart

    #test set history expansion on
    gdb_test_no_output "set history expansion on" "set history expansion on"

    #test show history expansion on
    gdb_test "show history expansion on" "History expansion on command input is on.*" "show history expansion"

    #get home directory path
    set HOME ""
    set test "show environment HOME"
    gdb_test_multiple $test $test {
	-re "\nHOME = (\[^\r\n\]*)\[\r\n\]+$::gdb_prompt $" {
	    set HOME $expect_out(1,string)
	    pass $test
	}
    }

    #test set history filename ~/foobar.baz
    gdb_test_no_output "set history filename ~/foobar.baz" \
	"set history filename ~/foobar.baz"

    #test show history filename ~/foobar.baz
    gdb_test "show history filename" \
	"The filename in which to record the command history is \"[string_to_regexp $HOME]/foobar.baz\"..*" \
	"show history filename (~/foobar.baz)"
    gdb_test "p \$_gdb_setting(\"history filename\")" \
	" = \"[string_to_regexp $HOME]/foobar.baz\"..*" \
	"_gdb_setting history filename"
    gdb_test "p \$_gdb_setting_str(\"history filename\")" \
	" = \"[string_to_regexp $HOME]/foobar.baz\"..*" \
	"_gdb_setting_str history filename"

    #get current working directory
    set PWD ""
    set test "show working directory"
    gdb_test_multiple "pwd" $test {
	-re "\nWorking directory (\[^\r\n\]*)\\.\[\r\n\]+$::gdb_prompt $" {
	    set PWD $expect_out(1,string)
	    pass $test
	}
    }

    #test set history filename foobar.baz
    gdb_test_no_output "set history filename foobar.baz" \
	"set history filename foobar.baz"

    #test show history filename foobar.baz
    gdb_test "show history filename" \
	"The filename in which to record the command history is \"[string_to_regexp $PWD]/foobar.baz\"..*" \
	"show history filename (current_directory/foobar.baz)"

    #test set history save on
    gdb_test_no_output "set history save on" "set history save on"

    #test show history save on
    gdb_test "show history save" "Saving of the history record on exit is on..*"  "show history save (on)"

    #history saving should stay disabled
    gdb_test_no_output "set history save off" "set history save off"

    #test set history size 100
    gdb_test_no_output "set history size 100" "set history size 100"

    #test show history size 100
    gdb_test "show history size" "The size of the command history is 100..*" "show history size (100)"
}

proc_with_prefix test_setshow_language {} {
    clean_restart

    #test set language asm
    gdb_test_no_output "set language asm"

    #test show language asm
    gdb_test "show language" "The current source language is \"asm\"..*" "show language (asm)"

    #test set language rust, with a trailing space
    gdb_test_no_output "set language rust " "set language rust"

    #test show language rust
    gdb_test "show language" "The current source language is \"rust\"..*" "show language (rust)"

    #test completion for set language.
    gdb_test "complete set language min" "set language minimal" \
      "complete set language minimal"

    #test set language auto
    gdb_test_no_output "set language auto" "set language auto"

    #test show language
    gdb_test "show language" "The current source language is \"auto.*\"..*" "show language (auto)"
}

proc_with_prefix test_setshow_listsize {} {
    clean_restart

    #test set listsize 100
    gdb_test_no_output "set listsize 100" "set listsize 100"

    #test show listsize 100
    gdb_test "show listsize" "Number of source lines gdb will list by default is 100..*" "show listsize (100)"
}

proc_with_prefix test_setshow_prompt {} {
    clean_restart

    if [board_info target exists gdb_prompt] {
	return
    }

    #test set prompt (FooBarBaz)
    set newprompt "\\(FooBarBaz\\)"

    gdb_test_multiple "set prompt (FooBarBaz) " "set prompt FooBarBaz" {
	-re "\[\r\n\]$newprompt $" {
	    pass "set prompt FooBarBaz"
	}
    }

    #test show prompt (FooBarBaz)
    gdb_test_multiple "show prompt" "show prompt FooBarBaz" {
	-re "Gdb's prompt is \"$newprompt \"..* $" {
	    pass "show prompt FooBarBaz"
	}
    }

    #test set prompt (gdb)
    gdb_test_multiple "set prompt (gdb) " "set prompt gdb" {
	-re "\[\r\n\]$::gdb_prompt $" {
	    pass "set prompt gdb"
	}
    }
}

proc_with_prefix test_setshow_radix {} {
    clean_restart

    #test set radix 11
    gdb_test "set radix 11" "Unsupported output radix ``decimal 11''; output radix unchanged..*"

    #test set radix 16
    gdb_test "set radix 16" "Input and output radices now set to decimal 16, hex 10, octal 20..*"

    #test show radix 16
    gdb_test "show radix" "Input and output radices set to decimal 16, hex 10, octal 20..*"  "show radix (16)"

    #test set radix 10
    gdb_test "set radix" "Input and output radices now set to decimal 10, hex a, octal 12..*"  "set radix 10"

    #test show radix 10
    gdb_test "show radix" "Input and output radices set to decimal 10, hex a, octal 12..*" "show radix (10)"
}

proc_with_prefix test_setshow_width {} {
    clean_restart

    #test set width 90
    gdb_test_no_output "set width 90" "set width 90"

    #test show width 90
    gdb_test "show width" "Number of characters gdb thinks are in a line is 90..*" "show width (90)"
}

proc_with_prefix test_setshow_write {} {
    clean_restart

    #test set write on
    # This is only supported on targets which use exec.o.
    gdb_test_no_output "set write on" "set write on"

    #test show write on
    # This is only supported on targets which use exec.o.
    gdb_test "show write" "Writing into executable and core files is on..*" "show write (on)"
}

proc_with_prefix test_show_user {} {
    clean_restart

    #test show user
    gdb_test_no_output "show user" "show user"
}

proc_with_prefix test_setshow_verbose {} {
    clean_restart

    #test set verbose on
    gdb_test_no_output "set verbose on" "set verbose on"

    #test show verbose on
    gdb_test "show verbose" "Verbose printing of informational messages is on..*" "show verbose (on)"

    #test set verbose off
    gdb_test_no_output "set verbose off" "set verbose off"

    #test show verbose off
    gdb_test "show verbose" "Verbosity is off..*" "show verbose (off)"
}

proc_with_prefix test_argument_preceded_by_space {} {
    clean_restart

    #test argument must be preceded by space
    foreach x {"history file" "solib-search-path" "data-directory"} {
	foreach y {"/home/" "~/home" "=home"} {
	    gdb_test "set $x$y" "Argument must be preceded by space." \
		"$x is not set to $y"
	}
    }
}

test_setshow_annotate
test_setshow_args
test_setshow_check
test_setshow_breakpoint_pending
test_setshow_complaints
test_setshow_confirm
test_setshow_editing
test_setshow_environment
test_setshow_height
test_setshow_history
test_setshow_language
test_setshow_listsize
test_setshow_prompt
test_setshow_radix
test_setshow_width
test_setshow_write
test_show_user
test_setshow_verbose
test_argument_preceded_by_space
