# Copyright (C) 2010-2016 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.

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.
if { [is_remote host] } {
    # Don't match $srcdir/$subdir because proc gdb_reinitialize_dir
    # doesn't set search directories on remote host.
    set directories ".*\\\$cdir.\\\$cwd"
} else {
    set escaped_directory [string_to_regexp "$srcdir/$subdir"]
    set directories "$escaped_directory.\\\$cdir.\\\$cwd"
}
gdb_test "python print (gdb.parameter ('directories'))" $directories

# 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"
