#   Copyright 1998-2021 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 was written by Michael Snyder (msnyder@cygnus.com)

load_lib "trace-support.exp"


gdb_exit
gdb_start
standard_testfile actions.c
if ![gdb_trace_common_supports_arch] {
    unsupported "no trace-common.h support for arch"
    return -1
}
if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
	  executable {debug nowarnings}] != "" } {
    untested "failed to compile"
    return -1
}
gdb_reinitialize_dir $srcdir/$subdir

# If testing on a remote host, download the source file.
# remote_download host $srcdir/$subdir/$srcfile

gdb_file_cmd $binfile

# define relative source line numbers:
# all subsequent line numbers are relative to this first one (baseline)
set baseline  [gdb_find_recursion_test_baseline $srcfile]
if { $baseline == -1 } then {
    fail "could not find gdb_recursion_test function"
    return
}

set testline1  [expr $baseline + 3]

#
# test "passcount" command
#

gdb_delete_tracepoints
set trcpt1 [gdb_gettpnum gdb_c_test]
set trcpt2 [gdb_gettpnum gdb_asm_test]
set trcpt3 [gdb_gettpnum $testline1]
if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then {
    fail "setting tracepoints"
    return
}

# 4.1 passcount of specified tracepoint

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \
			"4.1a: set three tracepoints, passcounts all zero"

gdb_test "passcount 2 $trcpt1" \
	"Setting tracepoint $trcpt1.s passcount to 2" \
	"4.1b: set 1st tracepoint's passcount to two"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 2 .
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \
	"4.1c: verify 1st tracepoint's passcount set to two"

gdb_test "passcount 4 $trcpt2" \
	"Setting tracepoint $trcpt2.s passcount to 4" \
	"4.1d: set 2nd tracepoint's passcount to four"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 2 .
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \
	"4.1c: verify 2nd tracepoint's passcount set to four"

# 4.2 passcount of last (default) tracepoint

gdb_test "passcount 6" \
	"Setting tracepoint $trcpt3.s passcount to 6" \
	"4.2b: set last (default) tp's passcount to six"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 2 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 6 .*" \
	"4.2b: verify last (default) tp's passcount set to six"

# 4.3 run until stopped explicitly by user
#     [deferred to dynamic test section]

# 4.4 reset the previously set passcounts to new values

gdb_test "passcount 7" \
	"Setting tracepoint $trcpt3.s passcount to 7" \
	"4.4a: reset last (default) tp's passcount to seven"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 2 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 7 .*" \
	"4.4a: verify reset last (default) tp's passcount to seven"

gdb_test "passcount 5 $trcpt2" \
	"Setting tracepoint $trcpt2.s passcount to 5" \
	"4.4b: reset second tracepoint's passcount to five"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 2 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 5 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 7 .*" \
	"4.4c: verify reset second tracepoint's passcount to five"

# 4.20 <FIXME test number> passcount for "all"

gdb_test "passcount 3 all" \
	".*$trcpt1.s pass.* 3.*$trcpt2.s pass.* 3.*$trcpt3.s pass.* 3" \
	"4.20a: set all three passcounts to three"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 3 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 3 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 3 .*"  \
	"4.20a: verify all three passcounts to three"

gdb_test "passcount 4 all" \
	".*$trcpt1.s pass.* 4.*$trcpt2.s pass.* 4.*$trcpt3.s pass.* 4" \
	"4.20a: reset all three passcounts to four"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*"  \
	"4.20b: reset all three passcounts to four"

# 4.5 Verify trace stops on first "satisfied" passcount
#     [deferred to dynamic test section]

# 4.6 minimum passcount boundary condition

gdb_test "passcount 0 $trcpt1" \
	"Setting tracepoint $trcpt1.s passcount to 0" \
	"4.6: set passcount to zero"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .
\[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .
\[\t \]+not installed on target."  \
	"4.6: verify passcount to zero"

# 4.7 (test a very large passcount)

gdb_test "passcount 32767 $trcpt1" \
	"Setting tracepoint $trcpt1.s passcount to 32767" \
	"4.7: set passcount to large number (32767)"

gdb_test "info tracepoints" \
    "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 32767 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*
\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 .*"  \
	"4.7: verify passcount to large number (32767)"

# 4.8 set passcount for invalid tracepoint

gdb_test "passcount 1 [expr $trcpt2 + $trcpt3]" \
	"No tracepoint number [expr $trcpt2 + $trcpt3]." \
	"4.8: invalid tracepoint number in passcount"

# 4.9 help passcount
gdb_test "help passcount" "Set the passcount for a tracepoint.*" \
	"4.9: help passcount"
