| # Copyright 2023-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/>. |
| |
| # Check with_override proc. |
| |
| proc foo {} { |
| return 0 |
| } |
| |
| proc foo1 {} { |
| return 1 |
| } |
| |
| proc foo2 {} { |
| return 2 |
| } |
| |
| with_test_prefix no-args { |
| |
| with_test_prefix before { |
| gdb_assert { [foo] == 0 } |
| } |
| |
| with_override foo foo1 { |
| with_test_prefix foo1 { |
| gdb_assert { [foo] == 1 } |
| } |
| |
| with_override foo foo2 { |
| with_test_prefix foo2 { |
| gdb_assert { [foo] == 2 } |
| } |
| } |
| } |
| |
| with_test_prefix after { |
| gdb_assert { [foo] == 0 } |
| } |
| } |
| |
| proc foo { {a 0} } { |
| return [expr $a + 1] |
| } |
| |
| proc foo_plus_1 { {a 0} } { |
| return [expr $a + 2] |
| } |
| |
| with_test_prefix default-arg { |
| |
| with_test_prefix before { |
| gdb_assert { [foo] == 1 } |
| gdb_assert { [foo 0] == 1 } |
| gdb_assert { [foo 1] == 2 } |
| } |
| |
| with_override foo foo_plus_1 { |
| with_test_prefix foo_plus_1 { |
| gdb_assert { [foo] == 2 } |
| gdb_assert { [foo 0] == 2 } |
| gdb_assert { [foo 1] == 3 } |
| } |
| } |
| |
| with_test_prefix after { |
| gdb_assert { [foo] == 1 } |
| gdb_assert { [foo 0] == 1 } |
| gdb_assert { [foo 1] == 2 } |
| } |
| } |