# Copyright (C) 2025-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/>.

# This file is part of the GDB testsuite.  It tests gdb.Style.

load_lib gdb-python.exp

require allow_python_tests

# Start GDB, allow styling.
with_ansi_styling_terminal {
    clean_restart
}

# Check the error for unknown style names.
foreach unknown_style { "unknown-style" "disassembler unknown-style" } {
    gdb_test "python filename_style = gdb.Style('$unknown_style')" \
	[multi_line \
	     "Python Exception <class 'RuntimeError'>: style '$unknown_style' cannot be found\\." \
	     "Error occurred in Python: style '$unknown_style' cannot be found\\."] \
	"attempt to create named style for '$unknown_style'"
}

# Check we can create a style using an abbreviated style name.
gdb_test_no_output "python abbrev_style = gdb.Style('high')" \
    "create style using abbreviated name 'high'"
gdb_test "python print(abbrev_style)" \
    "^<gdb.Style name='highlight', fg=red, bg=none, intensity=normal>" \
    "print the 'highlight' style"

gdb_test_no_output "python abbrev_style = gdb.Style('disas mnem')" \
    "create style using abbreviated name 'disas mnem'"
gdb_test "python print(abbrev_style)" \
    "^<gdb.Style name='disassembler mnemonic', fg=green, bg=none, intensity=normal>" \
    "print the 'disassembler mnemonic' style"

# Creating a style using an ambiguous abbreviated name will give an error.
gdb_test "python abbrev_style = gdb.Style('f')" \
    [multi_line \
	 "Python Exception <class 'RuntimeError'>: style 'f' cannot be found\\." \
	 "Error occurred in Python: style 'f' cannot be found\\."] \
    "create style using abbreviated name 'f'"

# Check a couple of different styles can be read.  The 'tui-border' is
# interesting as there is no 'intensity' for this one, the gdb.Style
# object will show this as gdb.INTENSITY_NORMAL.  The disassembler
# styles are interesting because they are two word style names, and
# the comment style has a foreground and intensity set.
foreach style_check { { "filename" green none NORMAL } \
			  { "title" none none BOLD } \
			  { "tui-border" cyan none NORMAL } \
			  { "disassembler address" blue none NORMAL } \
			  { "disassembler comment" white none DIM } } {
    set style_name [lindex $style_check 0]
    set fg [lindex $style_check 1]
    set bg [lindex $style_check 2]
    set intensity [lindex $style_check 3]

    with_test_prefix "check style $style_name" {
	gdb_test_no_output "python style_obj = gdb.Style('$style_name')" \
	    "create named style for $style_name"

	gdb_test "python print(style_obj.foreground)" "^$fg" \
	    "print foreground color"
	gdb_test "python print(style_obj.background)" "^$bg" \
	    "print background color"
	gdb_test "python print(style_obj.intensity == gdb.INTENSITY_$intensity)" \
	    "^True" "print intensity"

	gdb_test "python print(style_obj)" \
	    "^<gdb.Style name='$style_name', fg=$fg, bg=$bg, intensity=[string tolower $intensity]>" \
	    "print string representation"
    }
}

# Check that the intensity of a named style with no intensity
# (tui-border) cannot be changed.
gdb_test_no_output "python tui_border_style = gdb.Style('tui-border')" \
    "create named style for 'tui-border'"
gdb_test "python tui_border_style.intensity = gdb.INTENSITY_BOLD" \
    [multi_line \
	 "Python Exception <class 'ValueError'>: the intensity of style 'tui-border' is not writable\\." \
	 "Error occurred in Python: the intensity of style 'tui-border' is not writable\\."]

# Change the attributes of a named style, check the settings update as
# expected.
gdb_test_no_output "python filename_style = gdb.Style('filename')" \
    "create named style for 'filename'"
gdb_test_no_output "python filename_style.foreground = gdb.Color('blue')" \
    "assign blue to filename foreground color"
gdb_test_no_output "python filename_style.background = gdb.Color('red')" \
    "assign red to filename background color"
gdb_test_no_output "python filename_style.intensity = gdb.INTENSITY_BOLD"

# Use 'with style enabled off' so that there are no escape sequences
# in the output.
gdb_test "with style enabled off -- show style filename" \
    [multi_line \
	 "style filename background:  The \"filename\" style background color is: red" \
	 "style filename foreground:  The \"filename\" style foreground color is: blue" \
	 "style filename intensity:  The \"filename\" style display intensity is: bold"]

gdb_test "python print(filename_style)" \
    "^<gdb.Style name='filename', fg=blue, bg=red, intensity=bold>" \
    "print string representation of filename_style"

# Check some attempts to set the gdb.Style attributes to invalid types.
foreach attr { foreground background } {
    gdb_test "python filename_style.$attr = None" \
	[multi_line \
	     "Python Exception <class 'TypeError'>: value must be gdb.Color, not NoneType" \
	     "Error occurred in Python: value must be gdb.Color, not NoneType"]

    gdb_test "python filename_style.$attr = list()" \
	[multi_line \
	     "Python Exception <class 'TypeError'>: value must be gdb.Color, not list" \
	     "Error occurred in Python: value must be gdb.Color, not list"]

    gdb_test "python filename_style.$attr = 'red'" \
	[multi_line \
	     "Python Exception <class 'TypeError'>: value must be gdb.Color, not str" \
	     "Error occurred in Python: value must be gdb.Color, not str"]
}

gdb_test "python filename_style.intensity = None" \
    [multi_line \
	 "Python Exception <class 'TypeError'>: value must be a Long \\(a gdb.INTENSITY constant\\), not NoneType" \
	 "Error occurred in Python: value must be a Long \\(a gdb.INTENSITY constant\\), not NoneType"]

gdb_test "python filename_style.intensity = 'dim'" \
    [multi_line \
	 "Python Exception <class 'TypeError'>: value must be a Long \\(a gdb.INTENSITY constant\\), not str" \
	 "Error occurred in Python: value must be a Long \\(a gdb.INTENSITY constant\\), not str"]

# Check attempts to set the intensity to an integer value work as
# expected.  This is mostly about testing invalid integer values, but
# we do also check that 0, 1, and 2 work as expected, though it is bad
# practice to use the raw integer value rather than the defined
# constants.
set intensity_str { NORMAL BOLD DIM }
for { set i -3 } { $i < 6 } { incr i } {
    if { $i < 0 || $i > 2 } {
	gdb_test "python filename_style.intensity = $i" \
	    [multi_line \
		 "Python Exception <class 'ValueError'>: invalid 'intensity' value $i\\." \
		 "Error occurred in Python: invalid 'intensity' value $i\\."]
    } else {
	gdb_test_no_output "python filename_style.intensity = $i"

	set str [lindex $intensity_str $i]
	gdb_test "python print(filename_style.intensity == gdb.INTENSITY_$str)" \
	    "^True" "check filename_style intensity is $str"
    }
}

# Check the filename style has changed as expected.
gdb_test "python print(filename_style)" \
    "^<gdb.Style name='filename', fg=blue, bg=red, intensity=dim>" \
    "check filename_style is now dim"

# Check Style.escape_sequence and Style.apply when styling is disabled.
gdb_test_no_output "with style enabled off -- python print(filename_style.escape_sequence(), end='')" \
    "print escape sequence when styling is off"
gdb_test "with style enabled off -- python print(filename_style.apply('xxx'))" "^xxx" \
    "apply style to a string when styling is off"

# Now check the escape sequences are emitted as expected.
gdb_test "python print(filename_style.escape_sequence())" \
    "\033\\\[34;41;2;23;24;27m" \
    "print escape sequence when styling is on"
gdb_test "python print(filename_style.apply('xxx'))" \
    "\033\\\[34;41;2;23;24;27mxxx\033\\\[m" \
    "apply a style when styling is on"

# Test creating a style from component parts.
gdb_test_no_output "python my_style_1 = gdb.Style(gdb.Color('red'), gdb.Color('blue'), gdb.INTENSITY_BOLD)" \
    "create my_style_1"
gdb_test "python print(my_style_1)" \
    "^<gdb.Style fg=red, bg=blue, intensity=bold>" \
    "check my_style_1"

gdb_test_no_output "python my_style_2 = gdb.Style(background = gdb.Color('blue'))" \
    "create my_style_2"
gdb_test "python print(my_style_2)" \
    "^<gdb.Style fg=none, bg=blue, intensity=normal>" \
    "check my_style_2"

gdb_test_no_output "python my_style_3 = gdb.Style(intensity = gdb.INTENSITY_DIM)" \
    "create my_style_3"
gdb_test "python print(my_style_3)" \
    "^<gdb.Style fg=none, bg=none, intensity=dim>" \
    "check my_style_3"

# The precise error message, about 'None' not being an integer, varies
# with Python version.  We just check that we get a TypeError and
# assume that this is related to the argument type.
gdb_test "python my_style_4 = gdb.Style(intensity = None)" \
    [multi_line \
	 "Python Exception <class 'TypeError'>: \[^\r\n\]+" \
	 "Error occurred in Python: \[^\r\n\]+"] \
    "attempt to create my_style_4"

gdb_test "python my_style_5 = gdb.Style(foreground = list())" \
    [multi_line \
	 "Python Exception <class 'TypeError'>: 'foreground' argument must be gdb.Color or None, not list\\." \
	 "Error occurred in Python: 'foreground' argument must be gdb.Color or None, not list\\."] \
    "attempt to create my_style_5"

gdb_test "python my_style_6 = gdb.Style(background = list())" \
    [multi_line \
	 "Python Exception <class 'TypeError'>: 'background' argument must be gdb.Color or None, not list\\." \
	 "Error occurred in Python: 'background' argument must be gdb.Color or None, not list\\."] \
    "attempt to create my_style_6"

# Adjust the attributes of an unnamed style.
gdb_test_no_output "python my_style_1.foreground = gdb.Color('green')" \
    "change my_style_1.foreground to green"
gdb_test_no_output "python my_style_1.background = gdb.Color('cyan')" \
    "change my_style_1.background to cyan"
gdb_test_no_output "python my_style_1.intensity = gdb.INTENSITY_DIM" \
    "change my_style_1.intensity to dim"
gdb_test "python print(my_style_1)" \
    "^<gdb.Style fg=green, bg=cyan, intensity=dim>" \
    "check my_style_1 after changes."

# Setup some prefix commands under 'set/show style ...'.  Each prefix
# command is called 'new-style-X' where X is an integer; 1, 2, 3, or 4.
for { set i 1 } { $i < 5 } { incr i } {
    gdb_test_no_output "python gdb.Command('set style new-style-$i', gdb.COMMAND_NONE, prefix = True)" \
	"create set style new-style-$i"
    gdb_test_no_output "python gdb.Command('show style new-style-$i', gdb.COMMAND_NONE, prefix = True)" \
	"create show style new-style-$i"
}

# A helper class for creating color settings under the 'new-style-X'
# prefix commands.  The NUM to the __init__ supplies the value of
# 'X', and NAME is either 'foreground' or 'background'.
gdb_test_multiline "Class to create color parameters" \
    "python" "" \
    "class color_param(gdb.Parameter):" "" \
    "  def __init__(self, num, name):" "" \
    "    super().__init__(f\"style new-style-{num} {name}\", gdb.COMMAND_NONE, gdb.PARAM_COLOR)" "" \
    "    self.value = gdb.Color()" "" \
    "end" ""

# A helper class for creating intensity settings under the new
# 'new-style-X' prefix commands.  The NUM in the __init__ supplies the
# value of 'X'.
gdb_test_multiline "Class to create intensity parameters" \
    "python" "" \
    "class intensity_param(gdb.Parameter):" "" \
    "  def __init__(self, num):" "" \
    "    super().__init__(f\"style new-style-{num} intensity\", gdb.COMMAND_NONE, gdb.PARAM_ENUM," "" \
    "                     \[\"normal\", \"bold\", \"dim\"\])" "" \
    "    self.value = \"normal\"" "" \
    "end" ""

# Within 'style new-style-1' we only have a 'foreground' setting.
# This will not be usable as a gdb.Style.
gdb_test_no_output "python color_param(1, 'foreground')" \
    "setup new-style-1 foreground"

# Within 'style new-style-2' we only have a 'background' setting.
# This will not be usable as a gdb.Style.
gdb_test_no_output "python color_param(2, 'background')" \
    "setup new-style-2 background"

# Within 'style new-style-3' we have both a 'foreground' and
# 'background' setting.  Even though 'intensity' is missing, this is
# still usable as a style.
gdb_test_no_output "python color_param(3, 'foreground')" \
    "setup new-style-3 foreground"
gdb_test_no_output "python color_param(3, 'background')" \
    "setup new-style-3 background"

# Within 'style new-style-4' we have a 'foreground', 'background', and
# 'intensity' setting.  This is a complete style setting group.
gdb_test_no_output "python color_param(4, 'foreground')" \
    "setup new-style-4 foreground"
gdb_test_no_output "python color_param(4, 'background')" \
    "setup new-style-4 background"
gdb_test_no_output "python intensity_param(4)" \
    "setup new-style-4 intensity"

# Trying to create a style for 'new-style-1' should fail.
gdb_test "python my_style_7 = gdb.Style('new-style-1')" \
    [multi_line \
	 "Python Exception <class 'RuntimeError'>: style 'new-style-1' missing 'background' component\\." \
	 "Error occurred in Python: style 'new-style-1' missing 'background' component\\."] \
    "try to create style for new-style-1"

# Trying to create a style for 'new-style-2' should fail.
gdb_test "python my_style_8 = gdb.Style('new-style-2')" \
    [multi_line \
	 "Python Exception <class 'RuntimeError'>: style 'new-style-2' missing 'foreground' component\\." \
	 "Error occurred in Python: style 'new-style-2' missing 'foreground' component\\."] \
    "try to create style for new-style-2"

# Trying to create a style for 'new-style-3' should succeed.
gdb_test_no_output "python my_style_9 = gdb.Style('new-style-3')" \
    "create a style for new-style-3"
gdb_test "python print(my_style_9)" \
    "^<gdb.Style name='new-style-3', fg=none, bg=none, intensity=normal>" \
    "print my_style_9"

# Trying to create a style for 'new-style-4' should succeed too.
gdb_test_no_output "python my_style_10 = gdb.Style('new-style-4')" \
    "create a style for new-style-4"
gdb_test "python print(my_style_10)" \
    "^<gdb.Style name='new-style-4', fg=none, bg=none, intensity=normal>" \
    "print my_style_10"

# Adjust the settings directly, and check the gdb.Style updates.
gdb_test_no_output "set style new-style-4 intensity bold"
gdb_test_no_output "set style new-style-4 foreground red"
gdb_test_no_output "set style new-style-4 background blue"
gdb_test "python print(my_style_10)" \
    "^<gdb.Style name='new-style-4', fg=red, bg=blue, intensity=bold>" \
    "print my_style_10, intensity updated"

# Check the reference counting on 'gdb.Style.apply' when global styling is disabled.
gdb_test_no_output "python input_text = \"this is a unique string that is unlikely to appear elsewhere 12345\"" \
    "setup an input string"
gdb_test_no_output "with style enabled off -- python output_text = filename_style.apply(input_text)" \
    "create an ouput string by applying filename_style"
gdb_test_no_output "python input_text = \"a totally different string that is also, hopefully, unique\"" \
    "replace the input string"
gdb_test "python print(output_text)" \
    "^this is a unique string that is unlikely to appear elsewhere 12345" \
    "check the output_text is still valid"

# Test gdb.write passing in a style.  Define a helper function to
# ensure all output is flushed before we return to the prompt.
gdb_test_multiline "create function to call gdb.write then flush" \
    "python" "" \
    "def write_and_flush(*args, **kwargs):" "" \
    "  gdb.write(*args, **kwargs)" "" \
    "  gdb.write(\"\\n\")" "" \
    "  gdb.flush(gdb.STDOUT)" "" \
    "end" ""

gdb_test "python write_and_flush(\"some text\")" \
    "^some text" "unstyled text, no style passed"

gdb_test "python write_and_flush(\"some text\", style=None)" \
    "^some text" "unstyled text, pass style as None"

gdb_test "python write_and_flush(\"some text\", style=filename_style)" \
    "^\033\\\[34;41;2;23;24;27msome text\033\\\[m" \
    "styled output, pass style by keyword"

gdb_test "python write_and_flush(\"some text\", gdb.STDOUT, filename_style)" \
    "^\033\\\[34;41;2;23;24;27msome text\033\\\[m" \
    "styled output, pass style by position"

gdb_test "python write_and_flush(\"some text\", style='filename')" \
    [multi_line \
	 "Python Exception <class 'TypeError'>: 'style' argument must be gdb\\.Style or None, not str\\." \
	 "Error occurred in Python: 'style' argument must be gdb\\.Style or None, not str\\."]
