From what I understand of the libstdc++/83237 thread at
authorHans-Peter Nilsson <hp@axis.com>
Thu, 23 May 2019 18:02:05 +0000 (18:02 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Thu, 23 May 2019 18:02:05 +0000 (18:02 +0000)
<https://gcc.gnu.org/ml/gcc-patches/2017-12/msg00573.html>, the
high numbers are not arbitrary, so it seems wrong to try
lowering them, or we'd just waste cycles testing nothing, or
worse, ending up with a bogus error indication.  Better to just
plain disable this part of the test for simulator targets; I
assume the results should be the same on any IEEE-float target,
i.e. no target-specific things going on here that'd raise a need
to cover it everywhere.

With this part of the test disabled, I saw the test finishing in
(time) "124.74s user" where it was before "1120.26s user"
running the cris-elf-run simulator on a "i7-4770K CPU @ 3.50GHz"
host.  Most certainly that indidates that the remainder of the
test is still too much for *some* host+simulator combos, but I'm
happy with the runtime lowered to 1/5 of the timeout (10
minutes) on this particular combination, and I'd think this
fixes timeouts for many other simulator combos too.

This construct (disabling or lowering limits for simulators) is
used elsewhere in the libstdc++ test-suite and in particular the
SIMULATOR_TEST macro is used in the testsuite machinery (though
AFAICT not in testDiscreteDist).

        * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
        Don't run the libstdc++/83237 part on simulator targets.

From-SVN: r271574

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc

index 1e88703d406d6464dfc52e5deab8deeb1d0f49a8..17a0463c2c345e42ca49d7078dfef36be3d96f33 100644 (file)
@@ -1,3 +1,8 @@
+2019-05-23  Hans-Peter Nilsson  <hp@axis.com>
+
+       * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
+       Don't run the libstdc++/83237 part on simulator targets.
+
 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
 
        * doc/xml/manual/status_cxx2017.xml: Add feature test macro for
index 0b03d948b6acf0f239c4ea46e4873f454ed8ae9e..2a45081ff67811461c3b9bfeb91627417beadc20 100644 (file)
@@ -1,3 +1,4 @@
+// { dg-options "-DSIMULATOR_TEST" { target simulator } }
 // { dg-do run { target c++11 } }
 // { dg-require-cstdint "" }
 // { dg-require-cmath "" }
@@ -43,11 +44,14 @@ void test01()
   auto bpd3 = std::bind(pd3, eng);
   testDiscreteDist(bpd3, [](int n) { return poisson_pdf(n, 30.0); } );
 
+  // This can take extremely long on simulators, timing out the test.
+#ifndef SIMULATOR_TEST
   // libstdc++/83237
   std::poisson_distribution<> pd4(37.17);
   auto bpd4 = std::bind(pd4, eng);
   testDiscreteDist<100, 2000000>(bpd4, [](int n)
                                 { return poisson_pdf(n, 37.17); } );
+#endif
 }
 
 int main()