Message ID | 201905231314.x4NDE0o9024346@ignucius.se.axis.com |
---|---|
State | New |
Headers | show |
Series | Fix simulator timeout for testsuite/26_numerics/random/poisson_distribution/operators/values.cc | expand |
On 23/05/19 15:14 +0200, Hans-Peter Nilsson wrote: >This test regressed for cris-elf (testing in a simulator) with >the fixing of libstdc++/83237, as the part suggested to be >wrapped in #ifndef was *added* to the existing test and causes a >timeout. Tsk tsk. Please don't pile-on existing tests, instead >add a *separate* test-file. > >From what I understand of the libstdc++/83237 thread at ><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). > >Ok to commit? OK, thanks. OK to backport too if you want. >(I didn't open a ticket for this problem.) >libstdc++-v3: > * testsuite/26_numerics/random/poisson_distribution/operators/values.cc: > Don't run the libstdc++/83237 part on simulator targets. > >diff --git libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc >index 0b03d94..2a45081 100644 >--- libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc >+++ libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc >@@ -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() > >brgds, H-P
diff --git libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc index 0b03d94..2a45081 100644 --- libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc +++ libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc @@ -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()