# Copyright 2022-2026 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/>.

# The purpose of this test-case is to test the capture_command_output proc.

clean_restart

# Check output with no prefix.

with_test_prefix no-prefix {
    set output [capture_command_output "print 1" ""]
    gdb_assert { [string equal $output "\$1 = 1"] }
}

# Check output with matching prefix.

with_test_prefix matching-prefix {
    set output [capture_command_output "print 1" "\\\$2 = "]
    gdb_assert { [string equal $output "1"] }
}

# Check output with non-matching prefix.

with_test_prefix non-matching-prefix {
    set output [capture_command_output "print 1" "3 = "]
    gdb_assert { [string equal $output "\$3 = 1"] }
}
