public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-1292] libstdc++: xfail experimental/net tests on rtems
@ 2022-06-27 13:34 Alexandre Oliva
  0 siblings, 0 replies; only message in thread
From: Alexandre Oliva @ 2022-06-27 13:34 UTC (permalink / raw)
  To: gcc-cvs, libstdc++-cvs

https://gcc.gnu.org/g:250b95a99487b5d19f54067c0b420fe252062aac

commit r13-1292-g250b95a99487b5d19f54067c0b420fe252062aac
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Mon Jun 27 10:34:14 2022 -0300

    libstdc++: xfail experimental/net tests on rtems
    
    Some net/timer/waitable tests fail on rtems because poll() is not
    available.
    
    The above, as well as net/internet/resolver/ops tests and
    net/timer/waitable/cons.cc, will fail early at runtime unless mkfifo
    is enabled in the RTEMS configuration, because the io_context ctor
    throws when pipe() fails.
    
    However, even enabling pipes and adjusting the net_ts link command to
    use --gc-sections for -lbsd as recommended, both
    net/internet/resolver/ops still fail at runtime.
    
    
    for  libstdc++-v3/ChangeLog
    
            * testsuite/lib/dg-options.exp (add_options_for_net_ts):
            Add -Wl,--gc-sections for RTEMS targets.
            * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
            xfail on RTEMS.
            * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
            * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
            Execution-time xfail on RTEMS.
            * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
            Likewise.

Diff:
---
 .../testsuite/experimental/net/internet/resolver/ops/lookup.cc      | 1 +
 .../testsuite/experimental/net/internet/resolver/ops/reverse.cc     | 1 +
 libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc      | 1 +
 libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc       | 1 +
 libstdc++-v3/testsuite/lib/dg-options.exp                           | 6 +-----
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
index eb411dea836..0ac9cb3513d 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
@@ -18,6 +18,7 @@
 // { dg-do run { target c++14 } }
 // { dg-require-effective-target net_ts_ip }
 // { dg-add-options net_ts }
+// { dg-xfail-run-if "io_context requires a working pipe" { *-*-rtems* } }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
index 361df2676ef..dfdf855c68c 100644
--- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
+++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc
@@ -18,6 +18,7 @@
 // { dg-do run { target c++14 } }
 // { dg-require-effective-target net_ts_ip }
 // { dg-add-options net_ts }
+// { dg-xfail-run-if "io_context requires a working pipe" { *-*-rtems* } }
 
 #include <experimental/internet>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
index f571f4a8d86..384f768c2b5 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
+// { dg-xfail-if "poll not available" { *-*-rtems* } }
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
index 97ab629b893..815ad715780 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
+// { dg-xfail-if "poll not available" { *-*-rtems* } }
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index b61c4c0cb8f..cc312edc172 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -281,11 +281,7 @@ proc add_options_for_net_ts { flags } {
     if { [istarget *-*-solaris2*] } {
 	return "$flags -lsocket -lnsl"
     } elseif { [istarget *-*-rtems*] } {
-	# Adding -Wl,--gc-sections would enable a few more tests to
-	# link, but all of them fail at runtime anyway, because the
-	# io_context ctor calls pipe(), which always fails, and thus
-	# the ctor throws a system error.
-	return "$flags -lbsd"
+	return "$flags -lbsd -Wl,--gc-sections"
     }
     return $flags
 }


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-27 13:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-27 13:34 [gcc r13-1292] libstdc++: xfail experimental/net tests on rtems Alexandre Oliva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).