# Copyright (C) 2010, 2011 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.parameter and gdb.Parameter.

if $tracelevel then {
    strace $tracelevel
}

load_lib gdb-python.exp

# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir

# Skip all tests if Python scripting is not enabled.
if { [skip_python_tests] } { continue }

# We use "." here instead of ":" so that this works on win32 too.
gdb_test "python print gdb.parameter ('directories')" "$srcdir/$subdir.\\\$cdir.\\\$cwd"

# Test a simple boolean parameter.
gdb_py_test_multiple "Simple gdb booleanparameter" \
   "python" "" \
   "class TestParam (gdb.Parameter):" "" \
   "   \"\"\"When enabled, test param does something useful. When disabled, does nothing.\"\"\"" "" \
   "   show_doc = \"Show the state of the boolean test-param\"" ""\
   "   set_doc = \"Set the state of the boolean test-param\"" "" \
   "   def get_show_string (self, pvalue):" ""\
   "      return \"The state of the Test Parameter is \" + pvalue" ""\
   "   def get_set_string (self):" ""\
   "      val = \"on\"" ""\
   "      if (self.value == False):" ""\
   "         val = \"off\"" ""\
   "      return \"Test Parameter has been set to \" + val" ""\
   "   def __init__ (self, name):" "" \
   "      super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
   "      self.value = True" "" \
   "test_param = TestParam ('print test-param')" ""\
   "end"

gdb_test "python print test_param.value" "True" "Test parameter value"
gdb_test "show print test-param" "The state of the Test Parameter is on.*" "Show parameter on"
gdb_test "set print test-param off" "Test Parameter has been set to off" "Turn off parameter"
gdb_test "show print test-param" "The state of the Test Parameter is off.*" "Show parameter off"
gdb_test "python print test_param.value" "False" "Test parameter value"
gdb_test "help show print test-param" "Show the state of the boolean test-param.*" "Test show help"
gdb_test "help set print test-param" "Set the state of the boolean test-param.*" "Test set help"
gdb_test "help set print" "set print test-param -- Set the state of the boolean test-param.*" "Test general help"


# Test an enum parameter.
gdb_py_test_multiple "enum gdb parameter" \
   "python" "" \
   "class TestEnumParam (gdb.Parameter):" "" \
   "   \"\"\"When set, test param does something useful. When disabled, does nothing.\"\"\"" "" \
   "   show_doc = \"Show the state of the enum\"" ""\
   "   set_doc = \"Set the state of the enum\"" "" \
   "   def get_show_string (self, pvalue):" ""\
   "      return \"The state of the enum is \" + pvalue" ""\
   "   def get_set_string (self):" ""\
   "      return \"The state of the enum has been set to \" + self.value" ""\
   "   def __init__ (self, name):" "" \
   "      super (TestEnumParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_ENUM, \[\"one\", \"two\"\])" "" \
   "      self.value = \"one\"" "" \
   "test_enum_param = TestEnumParam ('print test-enum-param')" ""\
   "end"

gdb_test "python print test_enum_param.value" "one" "Test enum parameter value"
gdb_test "show print test-enum-param" "The state of the enum is one.*" "Show parameter is initial value"
gdb_test "set print test-enum-param two" "The state of the enum has been set to two" "Set enum to two"
gdb_test "show print test-enum-param" "The state of the enum is two.*" "Show parameter is new value"
gdb_test "python print test_enum_param.value" "two" "Test enum parameter value"
gdb_test "set print test-enum-param three" "Undefined item: \"three\".*" "Set invalid enum parameter" 

# Test a file parameter.
gdb_py_test_multiple "file gdb parameter" \
   "python" "" \
   "class TestFileParam (gdb.Parameter):" "" \
   "   \"\"\"When set, test param does something useful. When disabled, does nothing.\"\"\"" "" \
   "   show_doc = \"Show the name of the file\"" ""\
   "   set_doc = \"Set the name of the file\"" "" \
   "   def get_show_string (self, pvalue):" ""\
   "      return \"The name of the file is \" + pvalue" ""\
   "   def get_set_string (self):" ""\
   "      return \"The name of the file has been changed to \" + self.value" ""\
   "   def __init__ (self, name):" "" \
   "      super (TestFileParam, self).__init__ (name, gdb.COMMAND_FILES, gdb.PARAM_FILENAME)" "" \
   "      self.value = \"foo.txt\"" "" \
   "test_file_param = TestFileParam ('test-file-param')" ""\
   "end"

gdb_test "python print test_file_param.value" "foo.txt" "Test file parameter value"
gdb_test "show test-file-param" "The name of the file is foo.txt.*" "Show initial file value"
gdb_test "set test-file-param bar.txt" "The name of the file has been changed to bar.txt" "Set new file parameter" 1
gdb_test "show test-file-param" "The name of the file is bar.txt.*" "Show new file value"
gdb_test "python print test_file_param.value" "bar.txt" "Test new file parameter value"
gdb_test "set test-file-param" "Argument required.*" 

# Test a parameter that is not documented.
gdb_py_test_multiple "Simple gdb booleanparameter" \
   "python" "" \
   "class TestUndocParam (gdb.Parameter):" "" \
   "   def get_show_string (self, pvalue):" ""\
   "      return \"The state of the Test Parameter is \" + pvalue" ""\
   "   def get_set_string (self):" ""\
   "      val = \"on\"" ""\
   "      if (self.value == False):" ""\
   "         val = \"off\"" ""\
   "      return \"Test Parameter has been set to \" + val" ""\
   "   def __init__ (self, name):" "" \
   "      super (TestUndocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
   "      self.value = True" "" \
   "test_undoc_param = TestUndocParam ('print test-undoc-param')" ""\
   "end"

gdb_test "show print test-undoc-param" "The state of the Test Parameter is on.*" "Show parameter on"
gdb_test "set print test-undoc-param off" "Test Parameter has been set to off" "Turn off parameter"
gdb_test "show print test-undoc-param" "The state of the Test Parameter is off.*" "Show parameter off"
gdb_test "python print test_undoc_param.value" "False" "Test parameter value"
gdb_test "help show print test-undoc-param" "This command is not documented.*" "Test show help"
gdb_test "help set print test-undoc-param" "This command is not documented.*" "Test set help"
gdb_test "help set print" "set print test-undoc-param -- This command is not documented.*" "Test general help"

# Test a parameter that is not documented in any way..
gdb_py_test_multiple "Simple gdb booleanparameter" \
   "python" "" \
   "class TestNodocParam (gdb.Parameter):" "" \
   "   def __init__ (self, name):" "" \
   "      super (TestNodocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
   "      self.value = True" "" \
   "test_nodoc_param = TestNodocParam ('print test-nodoc-param')" ""\
   "end"

gdb_test "show print test-nodoc-param" "This command is not documented.*" "Show parameter on"
gdb_test "set print test-nodoc-param off" "This command is not documented.*" "Turn off parameter"
gdb_test "show print test-nodoc-param" "This command is not documented.*.*" "Show parameter off"
gdb_test "python print test_nodoc_param.value" "False" "Test parameter value"
gdb_test "help show print test-nodoc-param" "This command is not documented.*" "Test show help"
gdb_test "help set print test-nodoc-param" "This command is not documented.*" "Test set help"
gdb_test "help set print" "set print test-nodoc-param -- This command is not documented.*" "Test general help"

# Test deprecated API. Do not use in your own implementations.
gdb_py_test_multiple "Simple gdb booleanparameter" \
   "python" "" \
   "class TestParam (gdb.Parameter):" "" \
   "   \"\"\"When enabled, test param does something useful. When disabled, does nothing.\"\"\"" "" \
   "   show_doc = \"State of the Test Parameter\"" ""\
   "   set_doc = \"Set the state of the Test Parameter\"" "" \
   "   def __init__ (self, name):" "" \
   "      super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
   "      self.value = True" "" \
   "test_param = TestParam ('print test-param')" ""\
   "end"

gdb_test "python print test_param.value" "True" "Test parameter value"
gdb_test "show print test-param" "State of the Test Parameter on.*" "Show parameter on"
gdb_test "set print test-param off" "Set the state of the Test Parameter.*" "Turn off parameter"
gdb_test "show print test-param" "State of the Test Parameter off.*" "Show parameter off"
gdb_test "python print test_param.value" "False" "Test parameter value"
gdb_test "help show print test-param" "State of the Test Parameter.*" "Test show help"
gdb_test "help set print test-param" "Set the state of the Test Parameter.*" "Test set help"
gdb_test "help set print" "set print test-param -- Set the state of the Test Parameter.*" "Test general help"
