#   Copyright 1998, 1999, 2007, 2008 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/>.

# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu

# This file was written by Michael Snyder (msnyder@cygnus.com)

load_lib "trace-support.exp";

if $tracelevel then {
    strace $tracelevel
}

set prms_id 0
set bug_id 0

gdb_exit
gdb_start

if [istarget "m68k-*-elf"] then {
    set srcfile gdb_c_test.c
    set binfile [board_info target d490_binfile];
} else {
    set testfile "actions"
    set srcfile ${testfile}.c
    set binfile $objdir/$subdir/$testfile
    if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
	    executable {debug nowarnings}] != "" } {
	untested deltrace.exp
	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 + 4]

#
# test "delete tracepoints" command
#

# 3.1 delete tracepoints (all)
gdb_delete_tracepoints
gdb_test "trace gdb_c_test"   "Tracepoint \[0-9\]+ at .*" "set tracepoint 1"
gdb_test "trace gdb_asm_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 2"
gdb_test "trace $testline1"   "Tracepoint \[0-9\]+ at .*" "set tracepoint 3"

gdb_test "info tracepoints" \
    "Num Enb Address\[ \]+PassC StepC What.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*\[0-9\]+\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \
			"3.1a: set three tracepoints"

send_gdb "delete tracepoints\n"
gdb_expect 30 {
    -re "Delete all tracepoints.*y or n.*$" {
	send_gdb "y\n"
	gdb_expect 30 {
	    -re "$gdb_prompt $" {
		pass "3.1b: delete all tracepoints"
	    }
	    timeout { fail "3.1b: delete all tracepoints (timeout)" }
	}
    }
    -re "$gdb_prompt $" { # This should only happen if there are no tracepoints
	fail "3.1b: delete all tracepoints (no tracepoints?)"
    }
    timeout { fail "3.1b: delete all tracepoints (timeout)" }
}

# 3.2 delete tracepoint <n>
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;
}

gdb_test "info tracepoints" \
    "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in.*gdb_recursion_test.*" \
			"3.2a: set three tracepoints"

#gdb_test "delete tracepoint $trcpt1" "" ""
send_gdb "delete tracepoint $trcpt1\n"
gdb_expect {
    -re "No tracepoint number.*$gdb_prompt $" {
	fail "3.2b: delete first tracepoint"
    }
    -re ".*\[Ee\]rror.*$gdb_prompt $" {
	fail "3.2b: delete first tracepoint"
    }
    -re "$gdb_prompt $" {
	pass "3.2b: delete first tracepoint"
    }
    timeout {
	fail "3.2b: delete first tracepoint (timeout)"
    }
}

send_gdb "info tracepoints\n"
gdb_expect {
    -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" {
	fail "3.2c: verify delete first tracepoint (argh)"
    }
    -re "$trcpt2\[\t \]+y.*gdb_asm_test.*\[\r\n\t ]+$trcpt3\[\t \]+y.* in gdb_recursion_test at .*$gdb_prompt $" {
	pass "3.2c: verify delete first tracepoint"
    }
    -re ".*$gdb_prompt $" {
	fail "3.2c: verify delete first tracepoint (mumble)" 
    }
    timeout {
	fail "3.2c: verify delete first tracepoint (timeout)"
    }
}

#gdb_test "delete tracepoint $trcpt2" "" ""
send_gdb "delete tracepoint $trcpt2\n"
gdb_expect {
    -re "No tracepoint number.*$gdb_prompt $" {
	fail "3.2d: delete second tracepoint"
    }
    -re ".*\[Ee\]rror.*$gdb_prompt $" {
	fail "3.2d: delete second tracepoint"
    }
    -re "$gdb_prompt $" {
	pass "3.2d: delete second tracepoint"
    }
    timeout {
	fail "3.2d: delete second tracepoint (timeout)"
    }
}

send_gdb "info tracepoints\n"
gdb_expect {
    -re "$trcpt1\[\t \]+y\[\t \]+0x.*in.*gdb_c_test.*$gdb_prompt $" {
	fail "3.2e: verify delete second tracepoint"
    }
    -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" {
	fail "3.2e: verify delete second tracepoint"
    }
    -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" {
	pass "3.2e: verify delete second tracepoint"
    }
    -re "$gdb_prompt $" {
	fail "3.2e: verify delete second tracepoint" 
    }
    timeout {
	fail "3.2e: verify delete second tracepoint (timeout)"
    }
}

#gdb_test "delete tracepoint $trcpt3" "" ""
send_gdb "delete tracepoint $trcpt3\n"
gdb_expect {
    -re "No tracepoint number.*$gdb_prompt $" {
	fail "3.2f: delete third tracepoint"
    }
    -re ".*\[Ee\]rror.*$gdb_prompt $" {
	fail "3.2f: delete third tracepoint"
    }
    -re "$gdb_prompt $" {
	pass "3.2f: delete third tracepoint"
    }
    timeout {
	fail "3.2f: delete third tracepoint (timeout)"
    }
}

# send_gdb "ARF! \\n\n"
send_gdb "info tracepoints\n"
gdb_expect {
    -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" {
	fail "3.2g: verify delete third tracepoint"
    }
    -re "$gdb_prompt $" {
	pass "3.2g: verify delete third tracepoint"
    }
    timeout {
	fail "3.2g: verify delete third tracepoint (timeout)" 
    }
}

# 3.3 delete three tracepoints at once
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;
}

gdb_test "info tracepoints" \
    "Num Enb Address\[ \]+PassC StepC What.*$trcpt1\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_c_test.*$trcpt2\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*gdb_asm_test.*$trcpt3\[\t \]+y\[\t \]+0x\[0-9a-fA-F\]+.*in gdb_recursion_test.*" \
			"3.3a: set three tracepoints"

#gdb_test "delete tracepoint $trcpt1 $trcpt2 $trcpt3" "" ""
send_gdb "delete tracepoint $trcpt1 $trcpt2 $trcpt3\n"
gdb_expect {
    -re "No tracepoint number.*$gdb_prompt $" {
	fail "3.3b: delete three tracepoints"
    }
    -re ".*\[Ee\]rror.*$gdb_prompt $" {
	fail "3.3b: delete three tracepoints"
    }
    -re "$gdb_prompt $" {
	pass "3.3b: delete three tracepoints"
    }
    timeout {
	fail "3.3b: delete three tracepoint (timeout)"
    }
}

send_gdb "info tracepoints\n"
gdb_expect {
    -re "$trcpt1\[\t \]+y\[\t \]+0x.*in gdb_c_test.*$gdb_prompt $" {
	fail "3.3c: verify delete three tracepoints (first one persists)"
    }
    -re "$trcpt2\[\t \]+y\[\t \]+0x.*in gdb_asm_test.*$gdb_prompt $" {
	fail "3.3c: verify delete three tracepoints (second one persists)"
    }
    -re "$trcpt3\[\t \]+y\[\t \]+0x.*in gdb_recursion_test.*$gdb_prompt $" {
	fail "3.3c: verify delete three tracepoints (third one persists)"
    }
    -re "$gdb_prompt $" {
	pass "3.3c: verify delete three tracepoints" 
    }
    timeout { 
	fail "3.3c: verify delete three tracepoints (timeout)"
    }
}

# 3.4 delete invalid tracepoint number
gdb_test "delete tracepoint [expr $trcpt2 + $trcpt3]" \
    "No tracepoint number [expr $trcpt2 + $trcpt3]." \
			"3.4: delete invalid tracepoint number"

# 3.5 delete tracepoint number zero
gdb_test "delete tracepoint 0" "bad tracepoint number at or near '0'" \
			"3.5: delete tracepoint number zero"

# 3.6 help delete tracepoints
gdb_test "help delete tracepoints" \
    "Delete specified tracepoints.*" \
			"3.6: help delete tracepoints"
