[spu] Fix various test cases
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Sun, 26 Nov 2017 16:19:57 +0000 (17:19 +0100)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Sun, 26 Nov 2017 16:19:57 +0000 (17:19 +0100)
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.

22 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/spu-info.c
gdb/testsuite/gdb.arch/spu-info.exp
gdb/testsuite/gdb.arch/spu-ls.exp
gdb/testsuite/gdb.cell/arch.exp
gdb/testsuite/gdb.cell/break.exp
gdb/testsuite/gdb.cell/bt.exp
gdb/testsuite/gdb.cell/core.exp
gdb/testsuite/gdb.cell/data.exp
gdb/testsuite/gdb.cell/dwarfaddr.exp
gdb/testsuite/gdb.cell/ea-cache.exp
gdb/testsuite/gdb.cell/ea-standalone.exp
gdb/testsuite/gdb.cell/ea-test.exp
gdb/testsuite/gdb.cell/f-regs.exp
gdb/testsuite/gdb.cell/fork.exp
gdb/testsuite/gdb.cell/gcore.exp
gdb/testsuite/gdb.cell/mem-access.exp
gdb/testsuite/gdb.cell/ptype.exp
gdb/testsuite/gdb.cell/registers.exp
gdb/testsuite/gdb.cell/sizeof.exp
gdb/testsuite/gdb.cell/solib-symbol.exp
gdb/testsuite/gdb.cell/solib.exp

index afc85c8442d37cae39849b1dea0117ac2bdd6f20..c1fe649a3c4486464f957671ba875e292521f014 100644 (file)
@@ -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.
index e96bc9c937a8ce880956682c9005083d6aa10097..e97a0f764963fa269d606c781eb592ee84821b94 100644 (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.  */
index 6521b46803a375e222cfdf4c2f10ccd1349c979d..86771344491c9361a6cedf5b466fc6748dfc3932 100644 (file)
@@ -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"
 
 
index e0fae2b8d881a78bd4af2eaf84ed2628014938dd..d9f30b65ddf5f1ce9b3e4078dcf12ff9a380ca55 100644 (file)
@@ -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
index 78881231980eb409922965dba64156ecb7537003..69119acd675056076b9f130bfb0792e53aae89dd 100644 (file)
@@ -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
index 259ee1b19a59e39c7c5818fb24056d43a1f7cbcb..b1a02e00edb9a1be344555a07dc477647fbc1068 100644 (file)
@@ -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
index 452bae5a3b2b915e33af6a18576276c817f93fc5..b48fe9b718c4b342e3273df803b89ac7e2b71214 100644 (file)
@@ -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
index ee39a531e5fe2297ed4132a4fac8eb324521dc02..b0903a3cccea5cd37f27844281ca19bfb44ecff6 100644 (file)
@@ -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
index 4091ffdbd8fd7a6e6e7e5e337828e817d2b4f091..8f0b93f4fa293448c5747a6e3bf5dedf1d0e0f6d 100644 (file)
@@ -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
index 3689a67361800328ad7073108d7673605559ce9f..50ad845323d62b467c4f033d192229f98f8dbbc2 100644 (file)
@@ -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
index a85685e93c718c3247eb1ae3cba0d1b6bd318357..803987d390ccfa2478ffc937a5cd5b0b72d803fd 100644 (file)
@@ -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
index 3ef2b9baccfc7efaa831eaec698ff84eabaa31c2..772871283dbac6064893562325ac905396bf02ba 100644 (file)
@@ -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
index 51ea28aa6ae9466ae29ef21856638bae82289f51..4c2da81eeb7b83c61cd15be5eea70254086fe9d8 100644 (file)
@@ -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
index 5ebb229975d41d9dc8e141ea7c0a84b1f2c9436c..ce6f0b9c22285d68dadebcd9e57261ab3eda5cf2 100644 (file)
@@ -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
index 58f600961dd19237294a81ae612abc0c00d14d81..6b6f515fee8ba02c8d5cd1e390d2210e6a02c24f 100644 (file)
@@ -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
index 996e34638a596f3d54a9d3ce1e791e92e9fe535f..efed4bbdaaaad0843632422e9dc93fc382657e02 100644 (file)
@@ -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
index c50e4987dbc3063e7cddc6e50fcd9aaff50c8f6c..f9f8f5dcced37b5fe37c3c41f9ec1681e542b82b 100644 (file)
@@ -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
index d75ebba242fb1d87e3c4441f2bb91ae2095b3e18..e3cb005f28cdb99e9abd3ad4639a6afba2b9b011 100644 (file)
@@ -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
index c36da53eaaae8ea4f38dd91ae21d1108579ddfe6..da0d6aefc18eeb460c4e67abdcfe7d6e5176d485 100644 (file)
@@ -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
index ea652ba6d806d54c79f33b6598bcb985a4d635e0..5b5da894d6601b1537af76278dc0a65e0e5ab592 100644 (file)
@@ -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
index e6ce8cddf6d2dfe16bfcee9ee1f3da434ad206df..a8a515f9e2adedc311815c1c44cb90fa308489d4 100644 (file)
@@ -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
index 1de6fb3a41a3b3d2844b3169c79f0ea8b25a3bf1..7bde1bfbb7747cb8e2c2172c797e513eb78dba33 100644 (file)
@@ -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