aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2022-06-27 10:34:14 -0300
committerAlexandre Oliva <oliva@gnu.org>2022-06-27 10:34:14 -0300
commit250b95a99487b5d19f54067c0b420fe252062aac (patch)
tree5d09d2033861963c47213e3ee576229d71142bc1
parentb06a282921c71bbc5cab69bc515804bd80f55e92 (diff)
downloadgcc-250b95a99487b5d19f54067c0b420fe252062aac.zip
gcc-250b95a99487b5d19f54067c0b420fe252062aac.tar.gz
gcc-250b95a99487b5d19f54067c0b420fe252062aac.tar.bz2
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.
-rw-r--r--libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc1
-rw-r--r--libstdc++-v3/testsuite/lib/dg-options.exp6
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 eb411de..0ac9cb3 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 361df26..dfdf855 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 f571f4a..384f768 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 97ab629..815ad71 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 b61c4c0..cc312ed 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
}