diff mbox

[PR,libffi/65567] libffi: Fix, and simply libffi_feature_test (was: [PATCH] libffi testsuite: Use split to ensure valid tcl list)

Message ID 87iny4u86m.fsf@hertz.schwinge.homeip.net
State New
Headers show

Commit Message

Thomas Schwinge May 23, 2016, 3:04 p.m. UTC
Hi!

On Thu, 25 Feb 2016 20:10:18 +0100, I wrote:
> On Sat, 28 Mar 2015 13:59:30 -0400, John David Anglin <dave.anglin@bell.net> wrote:
> > The attached change fixes tcl errors that occur running the complex.exp and go.exp test sets.
> > See: <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65567>.
> > 
> > Tested on hppa2.0w-hp-hpux11.11.  Okay for trunk?
> 
> (Got approved, and installed as r221765.)
> 
> > 2015-03-28  John David Anglin  <danglin@gcc.gnu.org>
> > 
> > 	PR libffi/65567
> > 	* testsuite/lib/libffi.exp (libffi_feature_test): Use split to ensure
> > 	lindex is applied to a list.
> > 
> > Index: testsuite/lib/libffi.exp
> > ===================================================================
> > --- testsuite/lib/libffi.exp	(revision 221591)
> > +++ testsuite/lib/libffi.exp	(working copy)
> > @@ -238,7 +239,7 @@
> >      set lines [libffi_target_compile $src "" "preprocess" ""]
> >      file delete $src
> >  
> > -    set last [lindex $lines end]
> > +    set last [lindex [split $lines] end]
> >      return [regexp -- "xyzzy" $last]
> >  }
> 
> On my several systems, this has the effect that any user of
> libffi_feature_test has their test results regress from PASS to
> UNSUPPORTED.  Apparently the regexp xyzzy matching doesn't work as
> intended.  If I revert your patch, it's OK for me -- but still not for
> you, I suppose.  ;-)
> 
> How about the followinginstead?  It's conceptually simpler (and similar
> to what other such tests are doing), works for me -- but can you also
> please test this?

Committed to trunk in r236594:

commit 84c1a54dea2e39c012a11b49a898ed3773d3587b
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon May 23 14:54:04 2016 +0000

    [PR libffi/65567] libffi: Fix, and simply libffi_feature_test
    
    	libffi/
    	PR libffi/65567
    	* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236594 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libffi/ChangeLog                |    5 +++++
 libffi/testsuite/lib/libffi.exp |   11 ++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)



Grüße
 Thomas
diff mbox

Patch

diff --git libffi/ChangeLog libffi/ChangeLog
index 5027680..8245f5b 100644
--- libffi/ChangeLog
+++ libffi/ChangeLog
@@ -1,3 +1,8 @@ 
+2016-05-23  Thomas Schwinge  <thomas@codesourcery.com>
+
+	PR libffi/65567
+	* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
+
 2016-03-17  Andreas Schwab  <schwab@suse.de>
 
 	* src/aarch64/ffitarget.h (FFI_SIZEOF_JAVA_RAW) [__ILP32__]:
diff --git libffi/testsuite/lib/libffi.exp libffi/testsuite/lib/libffi.exp
index 169fe74..a0f6ab3 100644
--- libffi/testsuite/lib/libffi.exp
+++ libffi/testsuite/lib/libffi.exp
@@ -227,20 +227,21 @@  proc libffi_target_compile { source dest type options } {
 
 # TEST should be a preprocessor condition.  Returns true if it holds.
 proc libffi_feature_test { test } {
-    set src "ffitest.c"
+    set src "ffitest[pid].c"
 
     set f [open $src "w"]
     puts $f "#include <ffi.h>"
     puts $f $test
-    puts $f "xyzzy"
+    puts $f "/* OK */"
+    puts $f "#else"
+    puts $f "# error Failed $test"
     puts $f "#endif"
     close $f
 
-    set lines [libffi_target_compile $src "" "preprocess" ""]
+    set lines [libffi_target_compile $src /dev/null assembly ""]
     file delete $src
 
-    set last [lindex [split $lines] end]
-    return [regexp -- "xyzzy" $last]
+    return [string match "" $lines]
 }
 
 # Utility routines.


Backported to gcc-6-branch in r236595:

commit eb4cfb9897caae0af36c9bc496a104c9f8aa11c6
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon May 23 15:00:41 2016 +0000

    [PR libffi/65567] libffi: Fix, and simply libffi_feature_test
    
    Backport trunk r236594:
    
    	libffi/
    	PR libffi/65567
    	* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@236595 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libffi/ChangeLog                |    7 +++++++
 libffi/testsuite/lib/libffi.exp |   11 ++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git libffi/ChangeLog libffi/ChangeLog
index e00113c..c851366 100644
--- libffi/ChangeLog
+++ libffi/ChangeLog
@@ -1,3 +1,10 @@ 
+2016-05-23  Thomas Schwinge  <thomas@codesourcery.com>
+
+	Backport trunk r236594:
+
+	PR libffi/65567
+	* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
+
 2016-04-27  Release Manager
 
 	* GCC 6.1.0 released.
diff --git libffi/testsuite/lib/libffi.exp libffi/testsuite/lib/libffi.exp
index 169fe74..a0f6ab3 100644
--- libffi/testsuite/lib/libffi.exp
+++ libffi/testsuite/lib/libffi.exp
@@ -227,20 +227,21 @@  proc libffi_target_compile { source dest type options } {
 
 # TEST should be a preprocessor condition.  Returns true if it holds.
 proc libffi_feature_test { test } {
-    set src "ffitest.c"
+    set src "ffitest[pid].c"
 
     set f [open $src "w"]
     puts $f "#include <ffi.h>"
     puts $f $test
-    puts $f "xyzzy"
+    puts $f "/* OK */"
+    puts $f "#else"
+    puts $f "# error Failed $test"
     puts $f "#endif"
     close $f
 
-    set lines [libffi_target_compile $src "" "preprocess" ""]
+    set lines [libffi_target_compile $src /dev/null assembly ""]
     file delete $src
 
-    set last [lindex [split $lines] end]
-    return [regexp -- "xyzzy" $last]
+    return [string match "" $lines]
 }
 
 # Utility routines.


And, as obvious, backported to gcc-5-branch in r236596:

commit e2b5ae708e24c5e37b30d7ca3690e6f123a5cdf0
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon May 23 15:03:08 2016 +0000

    [PR libffi/65567] libffi: Fix, and simply libffi_feature_test
    
    Backport trunk r236594:
    
    	libffi/
    	PR libffi/65567
    	* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@236596 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libffi/ChangeLog                |    7 +++++++
 libffi/testsuite/lib/libffi.exp |   11 ++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git libffi/ChangeLog libffi/ChangeLog
index 7bcce81..3307bfb 100644
--- libffi/ChangeLog
+++ libffi/ChangeLog
@@ -1,3 +1,10 @@ 
+2016-05-23  Thomas Schwinge  <thomas@codesourcery.com>
+
+	Backport trunk r236594:
+
+	PR libffi/65567
+	* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
+
 2015-12-04  Release Manager
 
 	* GCC 5.3.0 released.
diff --git libffi/testsuite/lib/libffi.exp libffi/testsuite/lib/libffi.exp
index 169fe74..a0f6ab3 100644
--- libffi/testsuite/lib/libffi.exp
+++ libffi/testsuite/lib/libffi.exp
@@ -227,20 +227,21 @@  proc libffi_target_compile { source dest type options } {
 
 # TEST should be a preprocessor condition.  Returns true if it holds.
 proc libffi_feature_test { test } {
-    set src "ffitest.c"
+    set src "ffitest[pid].c"
 
     set f [open $src "w"]
     puts $f "#include <ffi.h>"
     puts $f $test
-    puts $f "xyzzy"
+    puts $f "/* OK */"
+    puts $f "#else"
+    puts $f "# error Failed $test"
     puts $f "#endif"
     close $f
 
-    set lines [libffi_target_compile $src "" "preprocess" ""]
+    set lines [libffi_target_compile $src /dev/null assembly ""]
     file delete $src
 
-    set last [lindex [split $lines] end]
-    return [regexp -- "xyzzy" $last]
+    return [string match "" $lines]
 }
 
 # Utility routines.