public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
From: Alexandre Oliva <aoliva@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org
Subject: [gcc r13-1292] libstdc++: xfail experimental/net tests on rtems
Date: Mon, 27 Jun 2022 13:34:59 +0000 (GMT)	[thread overview]
Message-ID: <20220627133459.E5B3638418A0@sourceware.org> (raw)

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
 }


                 reply	other threads:[~2022-06-27 13:34 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220627133459.E5B3638418A0@sourceware.org \
    --to=aoliva@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    --cc=libstdc++-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).