| # Copyright 2021-2024 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/>. |
| |
| # Testsuite self-tests for parse_options and parse_args. |
| |
| with_test_prefix parse_options { |
| proc test1 { options a b } { |
| set v2 "defval2" |
| parse_options { |
| { opt1 defval1 } |
| { opt2 $v2 } |
| { opt3 } |
| { opt4 } |
| } |
| |
| gdb_assert { [string equal $a "vala"] } |
| gdb_assert { [string equal $b "valb"] } |
| gdb_assert { [string equal $opt1 "val1"] } |
| gdb_assert { [string equal $opt2 "defval2"] } |
| gdb_assert { $opt3 == 1 } |
| gdb_assert { $opt4 == 0 } |
| } |
| |
| set v1 "val1" |
| test1 { opt1 $v1 opt3 } "vala" "valb" |
| } |
| |
| with_test_prefix parse_args { |
| proc test2 { args } { |
| parse_args { |
| { opt1 defval1 } |
| { opt2 defval2 } |
| { opt3 } |
| { opt4 } |
| } |
| gdb_assert { [llength $args] == 2 } |
| lassign $args a b |
| gdb_assert { [string equal $a "vala"] } |
| gdb_assert { [string equal $b "valb"] } |
| gdb_assert { [string equal $opt1 "val1"] } |
| gdb_assert { [string equal $opt2 "defval2"] } |
| gdb_assert { $opt3 == 1 } |
| gdb_assert { $opt4 == 0 } |
| } |
| |
| set v1 "val1" |
| test2 -opt1 $v1 -opt3 "vala" "valb" |
| } |