From patchwork Thu Feb 19 15:31:10 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans-Peter Nilsson X-Patchwork-Id: 441672 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id A39B11400F1 for ; Fri, 20 Feb 2015 02:31:35 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :message-id:from:to:subject:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=dWFEkaUfd2BdDbxm w4ORQBrQaZkDhCkYIQArrMJmxzZvPnX+Sz3ppAchc05T9e9sQ1WqyCSNP+lcJ5+5 EYhPJfO0sp+8P6NtNJrYz3YXeiSK8oDsLAohpX75wAKUQioNKOaGuio074inguRJ LJTd4BcQrMXL7hbtVYwO7xhnZ+E= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :message-id:from:to:subject:mime-version:content-type :content-transfer-encoding; s=default; bh=zPmHQgJc/oe42NBXhDt6kD L6ZpE=; b=en/kfQ5aRLRwHGp5TF/dOrw/4zXi7zUC+NY+XOFFKUcBP2hapTG0yy mLC3iXTQRiY3uZvhnxIEpj8sSd8DqzrZ0jNuAHi9ZBV2eHg3Yq/lu/5xAdTMpZuw AofMQcyoPrbmzEoC/69Lm2acySoPjN5RaxXu4XQLsW0eI5hT3RN3o= Received: (qmail 18351 invoked by alias); 19 Feb 2015 15:31:27 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 18331 invoked by uid 89); 19 Feb 2015 15:31:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: bes.se.axis.com Received: from bes.se.axis.com (HELO bes.se.axis.com) (195.60.68.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Feb 2015 15:31:16 +0000 Received: from localhost (localhost [127.0.0.1]) by bes.se.axis.com (Postfix) with ESMTP id EC42F2E45A; Thu, 19 Feb 2015 16:31:12 +0100 (CET) Received: from bes.se.axis.com ([IPv6:::ffff:127.0.0.1]) by localhost (bes.se.axis.com [::ffff:127.0.0.1]) (amavisd-new, port 10024) with LMTP id jOsQDbsc75Ok; Thu, 19 Feb 2015 16:31:11 +0100 (CET) Received: from boulder.se.axis.com (boulder.se.axis.com [10.0.2.104]) by bes.se.axis.com (Postfix) with ESMTP id 7BCF72E458; Thu, 19 Feb 2015 16:31:11 +0100 (CET) Received: from boulder.se.axis.com (localhost [127.0.0.1]) by postfix.imss71 (Postfix) with ESMTP id 628CCFF6; Thu, 19 Feb 2015 16:31:11 +0100 (CET) Received: from seth.se.axis.com (seth.se.axis.com [10.0.2.172]) by boulder.se.axis.com (Postfix) with ESMTP id 5727F943; Thu, 19 Feb 2015 16:31:11 +0100 (CET) Received: from ignucius.se.axis.com (ignucius.se.axis.com [10.88.21.50]) by seth.se.axis.com (Postfix) with ESMTP id 54BCE3E2CE; Thu, 19 Feb 2015 16:31:11 +0100 (CET) Received: from ignucius.se.axis.com (localhost [127.0.0.1]) by ignucius.se.axis.com (8.12.8p1/8.12.8/Debian-2woody1) with ESMTP id t1JFVBBc013942; Thu, 19 Feb 2015 16:31:11 +0100 Received: (from hp@localhost) by ignucius.se.axis.com (8.12.8p1/8.12.8/Debian-2woody1) id t1JFVAZX013938; Thu, 19 Feb 2015 16:31:10 +0100 Date: Thu, 19 Feb 2015 16:31:10 +0100 Message-Id: <201502191531.t1JFVAZX013938@ignucius.se.axis.com> From: Hans-Peter Nilsson To: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org Subject: Fix PR65093, timeouts with 26_numerics/random/binomial_distribution/operators/values.cc MIME-Version: 1.0 Lately, 26_numerics/random/binomial_distribution/operators/values.cc has started to FAIL on trunk with a timeout for my autotester for cris-elf, a soft-float simulator target running a cgen-generated simulator on a six-year-old x86_64-linux-gnu host. The reason it's started to fail in the last few days are not clear, except that they're probably local: I've eliminated code quality issues and the test-case itself hasn't changed in about 1.5 years (a few more details in the PR). Anyway, the test-case is by appearance a few test-cases bundled together, which seem to be just as well tested individually considering the apparent intent of the test and considering that the last non-comment change was to add the last two sub-tests. (A split-up is also what's done in the past, in preference to cutting down the test with ifdefs for simulator targets.) So, I split out all-but-the-first subtest from values.cc. For those interested, the individual runtimes (total M:S) for the plain simulator runs on that machine, together with the cycle counts (when using --cris-cycles=all) after the split-up are: values: 0:51.131 4011197245 values2: 3:16.39 15456247210 values3: 1:11.76 5633161989 values4: 0:20.944 1626754775 values5: 3:24.28 16163068067 (I just wanted to make sure the longest run wasn't over half the default time out, i.e. not over five minutes.) Ok to commit? PR testsuite/65093 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc (test01): Add explanatory comment. Keep only the bd1 sub-test and split out bd2, bd3, bd4, and bd5 sub-tests into... * testsuite/26_numerics/random/binomial_distribution/operators/values2.cc, testsuite/26_numerics/random/binomial_distribution/operators/values3.cc, testsuite/26_numerics/random/binomial_distribution/operators/values4.cc, testsuite/26_numerics/random/binomial_distribution/operators/values5.cc: New separate files with the old parts. brgds, H-P Index: testsuite/26_numerics/random/binomial_distribution/operators/values.cc =================================================================== --- testsuite/26_numerics/random/binomial_distribution/operators/values.cc (revision 220801) +++ testsuite/26_numerics/random/binomial_distribution/operators/values.cc (working copy) @@ -35,25 +35,8 @@ void test01() auto bbd1 = std::bind(bd1, eng); testDiscreteDist(bbd1, [](int n) { return binomial_pdf(n, 5, 0.3); } ); - std::binomial_distribution<> bd2(55, 0.3); - auto bbd2 = std::bind(bd2, eng); - testDiscreteDist(bbd2, [](int n) { return binomial_pdf(n, 55, 0.3); } ); - - // libstdc++/48114 - std::binomial_distribution<> bd3(10, 0.75); - auto bbd3 = std::bind(bd3, eng); - testDiscreteDist(bbd3, [](int n) { return binomial_pdf(n, 10, 0.75); } ); - - // libstdc++/57674 - std::binomial_distribution<> bd4(1, 0.8); - const std::binomial_distribution<>::param_type pm4(1, 0.3); - auto bbd4 = std::bind(bd4, eng, pm4); - testDiscreteDist(bbd4, [](int n) { return binomial_pdf(n, 1, 0.3); } ); - - std::binomial_distribution<> bd5(100, 0.3); - const std::binomial_distribution<>::param_type pm5(100, 0.8); - auto bbd5 = std::bind(bd5, eng, pm5); - testDiscreteDist(bbd5, [](int n) { return binomial_pdf(n, 100, 0.8); } ); + // These tests take a relatively long time on soft-float simulated + // targets, so please don't add new tests here, instead add a new file. } int main() --- /dev/null 2014-05-03 23:56:36.661002562 +0200 +++ testsuite/26_numerics/random/binomial_distribution/operators/values2.cc 2015-02-19 02:39:09.000000000 +0100 @@ -0,0 +1,43 @@ +// { dg-options "-std=gnu++11" } +// { dg-require-cstdint "" } +// { dg-require-cmath "" } +// +// Copyright (C) 2011-2015 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 26.5.8.2.2 Class template binomial_distribution [rand.dist.bern.bin] + +#include +#include +#include + +void test01() +{ + using namespace __gnu_test; + + std::mt19937 eng; + + std::binomial_distribution<> bd2(55, 0.3); + auto bbd2 = std::bind(bd2, eng); + testDiscreteDist(bbd2, [](int n) { return binomial_pdf(n, 55, 0.3); } ); +} + +int main() +{ + test01(); + return 0; +} --- /dev/null 2014-05-03 23:56:36.661002562 +0200 +++ testsuite/26_numerics/random/binomial_distribution/operators/values3.cc 2015-02-19 02:39:24.000000000 +0100 @@ -0,0 +1,44 @@ +// { dg-options "-std=gnu++11" } +// { dg-require-cstdint "" } +// { dg-require-cmath "" } +// +// Copyright (C) 2011-2015 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 26.5.8.2.2 Class template binomial_distribution [rand.dist.bern.bin] + +#include +#include +#include + +void test01() +{ + using namespace __gnu_test; + + std::mt19937 eng; + + // libstdc++/48114 + std::binomial_distribution<> bd3(10, 0.75); + auto bbd3 = std::bind(bd3, eng); + testDiscreteDist(bbd3, [](int n) { return binomial_pdf(n, 10, 0.75); } ); +} + +int main() +{ + test01(); + return 0; +} --- /dev/null 2014-05-03 23:56:36.661002562 +0200 +++ testsuite/26_numerics/random/binomial_distribution/operators/values4.cc 2015-02-19 02:39:38.000000000 +0100 @@ -0,0 +1,45 @@ +// { dg-options "-std=gnu++11" } +// { dg-require-cstdint "" } +// { dg-require-cmath "" } +// +// Copyright (C) 2011-2015 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 26.5.8.2.2 Class template binomial_distribution [rand.dist.bern.bin] + +#include +#include +#include + +void test01() +{ + using namespace __gnu_test; + + std::mt19937 eng; + + // libstdc++/57674 + std::binomial_distribution<> bd4(1, 0.8); + const std::binomial_distribution<>::param_type pm4(1, 0.3); + auto bbd4 = std::bind(bd4, eng, pm4); + testDiscreteDist(bbd4, [](int n) { return binomial_pdf(n, 1, 0.3); } ); +} + +int main() +{ + test01(); + return 0; +} --- /dev/null 2014-05-03 23:56:36.661002562 +0200 +++ testsuite/26_numerics/random/binomial_distribution/operators/values5.cc 2015-02-19 02:39:47.000000000 +0100 @@ -0,0 +1,44 @@ +// { dg-options "-std=gnu++11" } +// { dg-require-cstdint "" } +// { dg-require-cmath "" } +// +// Copyright (C) 2011-2015 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 26.5.8.2.2 Class template binomial_distribution [rand.dist.bern.bin] + +#include +#include +#include + +void test01() +{ + using namespace __gnu_test; + + std::mt19937 eng; + + std::binomial_distribution<> bd5(100, 0.3); + const std::binomial_distribution<>::param_type pm5(100, 0.8); + auto bbd5 = std::bind(bd5, eng, pm5); + testDiscreteDist(bbd5, [](int n) { return binomial_pdf(n, 100, 0.8); } ); +} + +int main() +{ + test01(); + return 0; +}