# This testcase is part of GDB, the GNU debugger. # # Copyright 2018 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 . gdb_start proc test_good { arg } { gdb_test_no_output "set record btrace cpu $arg" "set cpu $arg" gdb_test "show record btrace cpu" "btrace cpu is '$arg'\." \ "show cpu $arg" } proc test_bad { arg current } { gdb_test "set record btrace cpu $arg" \ "Bad format\. See \"help set record btrace cpu\"\." \ "set cpu $arg" gdb_test "show record btrace cpu" "btrace cpu is '$current'\." \ "show cpu $arg" } proc test_junk { arg junk current } { gdb_test "set record btrace cpu $arg" \ "Trailing junk: '$junk'\." \ "set cpu $arg" gdb_test "show record btrace cpu" "btrace cpu is '$current'\." \ "show cpu $arg" } gdb_test "show record btrace cpu" "btrace cpu is 'auto'\." "default cpu" gdb_test "set record" \ "\"set record\" must be followed by an appropriate subcommand.*" \ "set record" gdb_test "set record btrace" \ "\"set record btrace\" must be followed by an appropriate subcommand.*" \ "set record btrace" test_bad "" "auto" test_good "intel: 0/0" test_good "intel: 0/0/1" # We omit a zero stepping in the output. gdb_test_no_output "set record btrace cpu intel: 0/0/0" \ "set cpu intel: 0/0/0" gdb_test "show record btrace cpu" "btrace cpu is 'intel: 0/0'\." \ "show cpu intel: 0/0/0" test_good "auto" test_good "none" test_bad "intel: foo" "none" test_bad "intel: 0" "none" test_bad "intel: 0/" "none" test_bad "intel: 0/foo" "none" test_bad "intel: foo/bar" "none" test_bad "intel: foo/0" "none" test_bad "intel: 0x0/0" "none" test_junk "intel: 0/0 foo" " foo" "none" test_junk "intel: 0/0x0" "x0" "none" test_junk "intel: 0/0/foo" "/foo" "none" test_junk "intel: 0/0/0 foo" " foo" "none" test_junk "intel: 0/0/0x0" "x0" "none"