mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 14:39:09 +08:00
[spu] Fix various test cases
The SPU-specific test cases were not modified to use standard_output_file and therefore all were no longer being executed. Fixing this exposed a few other bugs in spu-info noticed by using a more recent compiler, which are also fixed here. gdb/testsuite/ChangeLog: 2017-11-26 Ulrich Weigand <uweigand@de.ibm.com> * gdb.arch/spu-info.c: Include <unistd.h>. (do_signal_test): Fix broken calls to write. * gdb.arch/spu-info.exp: Use prepare_for_testing. Fix checks for empty mailboxes. Update signal tests for corrected do_signal_test routine. Allow nonzero event status.
This commit is contained in:
@ -1,3 +1,11 @@
|
||||
2017-11-26 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* gdb.arch/spu-info.c: Include <unistd.h>.
|
||||
(do_signal_test): Fix broken calls to write.
|
||||
* gdb.arch/spu-info.exp: Use prepare_for_testing.
|
||||
Fix checks for empty mailboxes. Update signal tests for corrected
|
||||
do_signal_test routine. Allow nonzero event status.
|
||||
|
||||
2017-11-25 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* gdb.base/complete-empty.exp: New file.
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <spu_mfcio.h>
|
||||
|
||||
|
||||
@ -190,14 +191,14 @@ do_signal_test ()
|
||||
fd = open_context_file (context_fd, "signal1", O_RDWR);
|
||||
if (fstat (fd, &fdstat) != 0)
|
||||
return -1;
|
||||
ret = write (fd, buf, sizeof (int));
|
||||
ret = write (fd, &buf, sizeof (int));
|
||||
close (fd); /* Marker Signal1 */
|
||||
|
||||
/* Write to signal2. */
|
||||
fd = open_context_file (context_fd, "signal2", O_RDWR);
|
||||
if (fstat (fd, &fdstat) != 0)
|
||||
return -1;
|
||||
ret = write (fd, buf, sizeof (int));
|
||||
ret = write (fd, &buf, sizeof (int));
|
||||
close (fd); /* Marker Signal2 */
|
||||
|
||||
/* Read signal1. */
|
||||
|
@ -24,19 +24,13 @@ if { ![istarget "spu-*-elf"] } then {
|
||||
return
|
||||
}
|
||||
|
||||
set testfile "spu-info"
|
||||
set srcfile ${testfile}.c
|
||||
set binfile ${objdir}/${subdir}/${testfile}
|
||||
set sources ${srcdir}/${subdir}/${srcfile}
|
||||
standard_testfile
|
||||
|
||||
if { [gdb_compile $sources ${binfile} executable { debug }] != "" } {
|
||||
if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
|
||||
fail "cannot compile test program"
|
||||
return -1
|
||||
}
|
||||
|
||||
gdb_exit
|
||||
gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
# Continue to MARKER
|
||||
proc c_to { marker } {
|
||||
@ -99,7 +93,7 @@ gdb_test "info spu signal" \
|
||||
|
||||
# 'info spu mailbox'.
|
||||
gdb_test "info spu mailbox" \
|
||||
"SPU Outbound Mailbox.*SPU Outbound Interrupt Mailbox.*" \
|
||||
"" \
|
||||
"info spu mailbox"
|
||||
|
||||
# 'info spu dma'.
|
||||
@ -121,62 +115,62 @@ gdb_test "info spu event" \
|
||||
# MFC_MULTI_SRC_SYNC_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00001000.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00001000.*" \
|
||||
"event mask 0x1000"
|
||||
# MFC_PRIV_ATTN_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000800.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000800.*" \
|
||||
"event mask 0x0800"
|
||||
# MFC_LLR_LOST_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000400.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000400.*" \
|
||||
"event mask 0x0400"
|
||||
# MFC_SIGNAL_NOTIFY_1_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000200.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000200.*" \
|
||||
"event mask 0x0200"
|
||||
# MFC_SIGNAL_NOTIFY_2_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000100.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000100.*" \
|
||||
"event mask 0x0100"
|
||||
# MFC_OUT_MBOX_AVAILABLE_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000080.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000080.*" \
|
||||
"event mask 0x0080"
|
||||
# MFC_OUT_INTR_MBOX_AVAILABLE_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000040.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000040.*" \
|
||||
"event mask 0x0040"
|
||||
# MFC_DECREMENTER_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000020.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000020.*" \
|
||||
"event mask 0x0020"
|
||||
# MFC_IN_MBOX_AVAILABLE_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000010.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000010.*" \
|
||||
"event mask 0x0010"
|
||||
# MFC_COMMAND_QUEUE_AVAILABLE_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000008.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000008.*" \
|
||||
"event mask 0x0008"
|
||||
# MFC_LIST_STALL_NOTIFY_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000002.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000002.*" \
|
||||
"event mask 0x0002"
|
||||
# MFC_TAG_STATUS_UPDATE_EVENT.
|
||||
gdb_test "next" "" "next"
|
||||
gdb_test "info spu event" \
|
||||
"Event Status 0x00000000.*Event Mask 0x00000001.*" \
|
||||
"Event Status 0x0000.*Event Mask 0x00000001.*" \
|
||||
"event mask 0x0001"
|
||||
|
||||
|
||||
@ -200,7 +194,7 @@ gdb_test "finish" "" "finish"
|
||||
c_to "Marker Mbox"
|
||||
set msg "info spu mailbox"
|
||||
gdb_test_multiple "info spu mailbox" $msg {
|
||||
-re "SPU Outbound Mailbox.*0x00000000.*SPU Outbound Interrupt Mailbox.*0x00000000.*$gdb_prompt $" {
|
||||
-re "$gdb_prompt $" {
|
||||
pass $msg
|
||||
}
|
||||
-re "SPU Outbound Mailbox.*0x.*SPU Outbound Interrupt Mailbox.*0x.*$gdb_prompt $" {
|
||||
@ -226,19 +220,19 @@ gdb_test "info spu signal" \
|
||||
# 'info spu signal' with signal1 pending.
|
||||
c_to "Marker Signal1"
|
||||
gdb_test "info spu signal" \
|
||||
"Signal 1 control word 0x801c0800.*Signal 2 not pending.*\(Type.*\).*" \
|
||||
"Signal 1 control word 0x00000017.*Signal 2 not pending.*\(Type.*\).*" \
|
||||
"info spu signal"
|
||||
|
||||
# 'info spu signal' with signal1 and signal2 pending.
|
||||
c_to "Marker Signal2"
|
||||
gdb_test "info spu signal" \
|
||||
"Signal 1 control word 0x801c0800.*Signal 2 control word 0x801c0800.*" \
|
||||
"Signal 1 control word 0x00000017.*Signal 2 control word 0x00000017.*" \
|
||||
"info spu signal"
|
||||
|
||||
# Read signal1. Only signal2 is pending.
|
||||
c_to "Marker SignalRead"
|
||||
gdb_test "info spu signal" \
|
||||
"Signal 1 not pending.*Signal 2 control word 0x801c0800.*" \
|
||||
"Signal 1 not pending.*Signal 2 control word 0x00000017.*" \
|
||||
"info spu signal"
|
||||
|
||||
|
||||
|
@ -23,20 +23,13 @@ if { ![istarget "spu-*-elf"] } then {
|
||||
return
|
||||
}
|
||||
|
||||
set testfile "spu-ls"
|
||||
set srcfile ${testfile}.c
|
||||
set binfile ${objdir}/${subdir}/${testfile}
|
||||
set sources ${srcdir}/${subdir}/${srcfile}
|
||||
standard_testfile
|
||||
|
||||
if { [gdb_compile $sources ${binfile} executable { debug }] != "" } {
|
||||
if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
|
||||
fail "cannot compile test program"
|
||||
return -1
|
||||
}
|
||||
|
||||
gdb_exit
|
||||
gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
if ![runto_main] then {
|
||||
fail "can't run to main"
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -23,10 +23,10 @@ load_lib cell.exp
|
||||
set testfile "break"
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -23,13 +23,13 @@ load_lib cell.exp
|
||||
set testfile "bt"
|
||||
set ppu_file "bt"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "bt-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
set spu2_file "bt2-spu"
|
||||
set spu2_src ${srcdir}/${subdir}/${spu2_file}.c
|
||||
set spu2_bin ${objdir}/${subdir}/${spu2_file}
|
||||
set spu2_bin [standard_output_file ${spu2_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -23,10 +23,10 @@ load_lib cell.exp
|
||||
set testfile "coremaker"
|
||||
set ppu_file "coremaker"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "coremaker-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {![isnative]} then {
|
||||
return 0
|
||||
|
@ -23,10 +23,10 @@ load_lib cell.exp
|
||||
set testfile "data"
|
||||
set ppu_file "data"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "data-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,7 +22,7 @@ load_lib cell.exp
|
||||
|
||||
set testfile "dwarfaddr"
|
||||
set srcfile ${srcdir}/${subdir}/${testfile}.S
|
||||
set binary ${objdir}/${subdir}/${testfile}
|
||||
set binary [standard_output_file ${testfile}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "ea-cache"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "ea-cache-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,7 +22,7 @@ load_lib cell.exp
|
||||
|
||||
set testfile "ea-standalone"
|
||||
set srcfile ${srcdir}/${subdir}/${testfile}.c
|
||||
set binary ${objdir}/${subdir}/${testfile}
|
||||
set binary [standard_output_file ${testfile}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,7 +22,7 @@ load_lib cell.exp
|
||||
|
||||
set testfile "ea-test"
|
||||
set source ${srcdir}/${subdir}/${testfile}.c
|
||||
set binary ${objdir}/${subdir}/${testfile}
|
||||
set binary [standard_output_file ${testfile}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -23,10 +23,10 @@ load_lib cell.exp
|
||||
set testfile "fork"
|
||||
set ppu_file "fork"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "fork-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -23,10 +23,10 @@ load_lib cell.exp
|
||||
set testfile "coremaker"
|
||||
set ppu_file "coremaker"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "coremaker-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${ppu_file}]
|
||||
|
||||
if {![isnative]} then {
|
||||
return 0
|
||||
|
@ -23,10 +23,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "mem-access"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "mem-access-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "size"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "size-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
@ -22,10 +22,10 @@ load_lib cell.exp
|
||||
|
||||
set ppu_file "break"
|
||||
set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
|
||||
set ppu_bin ${objdir}/${subdir}/${ppu_file}
|
||||
set ppu_bin [standard_output_file ${ppu_file}]
|
||||
set spu_file "break-spu"
|
||||
set spu_src ${srcdir}/${subdir}/${spu_file}.c
|
||||
set spu_bin ${objdir}/${subdir}/${spu_file}
|
||||
set spu_bin [standard_output_file ${spu_file}]
|
||||
|
||||
if {[skip_cell_tests]} {
|
||||
return 0
|
||||
|
Reference in New Issue
Block a user