From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 29FC03858C54 for ; Wed, 7 Jun 2023 15:53:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 29FC03858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686153197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cSolWUEikq1QtYGk8gKtppnArL0G75kZzrJSgG/MaFk=; b=Lk5pvKwl2Qur6ysPzzxRpbfFZwix+OXM9wEGdfWfcfaMMxDCGrbLq0cUwWZZZpa+goyEk/ ZrOchSqi8sgc39WiOhx1fkKiBia5Zwih6t+LxgSzlT/hpoyB+vKVKay9UglWLYqupCwMra kQ52lHMbTkI7loU3atxALT0W9xqFDDY= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-328-TcDN9YWJOd-xCpQria_ynw-1; Wed, 07 Jun 2023 11:53:16 -0400 X-MC-Unique: TcDN9YWJOd-xCpQria_ynw-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D038A8030D2; Wed, 7 Jun 2023 15:53:15 +0000 (UTC) Received: from localhost (unknown [10.42.28.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 748CF2026D49; Wed, 7 Jun 2023 15:53:15 +0000 (UTC) From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [committed] libstdc++: Fix some tests that fail with -fexcess-precision=standard Date: Wed, 7 Jun 2023 16:53:14 +0100 Message-Id: <20230607155314.1369707-1-jwakely@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Tested x86_64-linux (-m32/-m64) and powerpc64le-linux. Pushed to trunk. -- >8 -- libstdc++-v3/ChangeLog: * testsuite/20_util/duration/cons/2.cc: Use values that aren't affected by rounding. * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to double before comparing for equality. * testsuite/20_util/from_chars/6.cc: Likewise. * testsuite/20_util/variant/86874.cc: Use values that aren't affected by rounding. * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to original value instead of to floating-point-literal. * testsuite/26_numerics/random/discrete_distribution/cons/range.cc: Cast arithmetic result to double before comparing for equality. * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc: Likewise. * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc: Likewise. * testsuite/26_numerics/valarray/transcend.cc (eq): Check that the absolute difference is less than 0.01 instead of comparing to two decimal places. * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc: Cast arithmetic result to double before comparing for equality. * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc: Likewise. * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise. --- libstdc++-v3/testsuite/20_util/duration/cons/2.cc | 4 ++-- libstdc++-v3/testsuite/20_util/from_chars/5.cc | 8 ++++---- libstdc++-v3/testsuite/20_util/from_chars/6.cc | 2 +- libstdc++-v3/testsuite/20_util/variant/86874.cc | 4 ++-- .../testsuite/25_algorithms/lower_bound/partitioned.cc | 4 ++-- .../random/discrete_distribution/cons/range.cc | 4 ++-- .../random/piecewise_constant_distribution/cons/range.cc | 4 ++-- .../random/piecewise_linear_distribution/cons/range.cc | 2 +- libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc | 2 +- .../27_io/basic_istream/extractors_arithmetic/char/01.cc | 2 +- .../27_io/basic_istream/extractors_arithmetic/char/09.cc | 2 +- .../27_io/basic_istream/extractors_arithmetic/char/10.cc | 2 +- .../basic_istream/extractors_arithmetic/wchar_t/01.cc | 2 +- .../basic_istream/extractors_arithmetic/wchar_t/09.cc | 2 +- .../basic_istream/extractors_arithmetic/wchar_t/10.cc | 2 +- .../testsuite/ext/random/hoyt_distribution/cons/parms.cc | 2 +- 16 files changed, 24 insertions(+), 24 deletions(-) diff --git a/libstdc++-v3/testsuite/20_util/duration/cons/2.cc b/libstdc++-v3/testsuite/20_util/duration/cons/2.cc index 95ec17be76e..4ee07a9a954 100644 --- a/libstdc++-v3/testsuite/20_util/duration/cons/2.cc +++ b/libstdc++-v3/testsuite/20_util/duration/cons/2.cc @@ -97,7 +97,7 @@ test01() duration d1_copy(d1); VERIFY(d1.count() * 1000 == d1_copy.count()); - duration d2(8.0); + duration d2(85000); duration d2_copy(d2); VERIFY(d2.count() == d2_copy.count() * 1000.0); @@ -105,7 +105,7 @@ test01() duration d3_copy(d3); VERIFY(d3.count() * 1000 == d3_copy.count()); - duration d4(5.0); + duration d4(50000); duration d4_copy(d4); VERIFY(d4.count() == d4_copy.count() * dbl_emulator(1000.0)); } diff --git a/libstdc++-v3/testsuite/20_util/from_chars/5.cc b/libstdc++-v3/testsuite/20_util/from_chars/5.cc index db0976c33d3..291ebf90fa0 100644 --- a/libstdc++-v3/testsuite/20_util/from_chars/5.cc +++ b/libstdc++-v3/testsuite/20_util/from_chars/5.cc @@ -44,7 +44,7 @@ test01() r = std::from_chars(s.data(), s.data() + s.length(), d, fmt); VERIFY( r.ec == std::errc::invalid_argument ); VERIFY( r.ptr == s.data() ); - VERIFY( d == 3.2 ); + VERIFY( d == (double) 3.2 ); } } @@ -57,7 +57,7 @@ test01() r = std::from_chars(s.data(), s.data() + s.length(), d, fmt); VERIFY( r.ec == std::errc::invalid_argument ); VERIFY( r.ptr == s.data() ); - VERIFY( d == 3.2 ); + VERIFY( d == (double) 3.2 ); } } @@ -69,7 +69,7 @@ test01() std::chars_format::scientific); VERIFY( r.ec == std::errc::invalid_argument ); VERIFY( r.ptr == s.data() ); - VERIFY( d == 3.2 ); + VERIFY( d == (double) 3.2 ); } // patterns that are invalid without the final character @@ -83,7 +83,7 @@ test01() r = std::from_chars(s.data(), s.data() + s.length() - 1, d, fmt); VERIFY( r.ec == std::errc::invalid_argument ); VERIFY( r.ptr == s.data() ); - VERIFY( d == 3.2 ); + VERIFY( d == (double) 3.2 ); } } } diff --git a/libstdc++-v3/testsuite/20_util/from_chars/6.cc b/libstdc++-v3/testsuite/20_util/from_chars/6.cc index 5a97bf6119a..1e3aa75becc 100644 --- a/libstdc++-v3/testsuite/20_util/from_chars/6.cc +++ b/libstdc++-v3/testsuite/20_util/from_chars/6.cc @@ -39,7 +39,7 @@ test01() VERIFY( res.ptr == s.data() + s.length() ); // std::from_chars should ignore the current rounding mode // and always round to nearest. - VERIFY( d == 0.1 ); + VERIFY( d == (double) 0.1 ); #endif #endif } diff --git a/libstdc++-v3/testsuite/20_util/variant/86874.cc b/libstdc++-v3/testsuite/20_util/variant/86874.cc index 101056bc112..3e396b53311 100644 --- a/libstdc++-v3/testsuite/20_util/variant/86874.cc +++ b/libstdc++-v3/testsuite/20_util/variant/86874.cc @@ -39,9 +39,9 @@ test02() void test03() { - std::variant v1{1}, v2{2.3}; + std::variant v1{1}, v2{0.5}; std::swap(v1, v2); - VERIFY( std::get(v1) == 2.3 ); + VERIFY( std::get(v1) == 0.5 ); VERIFY( std::get(v2) == 1 ); } diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc index 9e61337e2ad..557c1fada38 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc @@ -84,10 +84,10 @@ test02() auto part3 = std::lower_bound(c.begin(), c.end(), Y{1.0}); VERIFY( part3 != c.end() ); - VERIFY( part3->val == 1.2 ); + VERIFY( part3->val == seq[1].val ); auto part4 = std::lower_bound(c.begin(), c.end(), Y{1.0}, std::less{}); VERIFY( part4 != c.end() ); - VERIFY( part4->val == 1.2 ); + VERIFY( part4->val == seq[1].val ); } int diff --git a/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc b/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc index 75db9670845..440fdc45686 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc @@ -33,8 +33,8 @@ test01() std::discrete_distribution<> u(wt.begin(), wt.end()); std::vector probablility = u.probabilities(); VERIFY( probablility.size() == 5 ); - VERIFY( probablility[0] == 0.5 / 6.0 ); - VERIFY( probablility[2] == 2.5 / 6.0 ); + VERIFY( probablility[0] == double(0.5 / 6.0) ); + VERIFY( probablility[2] == double(2.5 / 6.0) ); } int main() diff --git a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc index 114a5eea827..b9f4f733fa1 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc @@ -38,8 +38,8 @@ test01() VERIFY( interval[0] == 0.0 ); VERIFY( interval[5] == 5.0 ); VERIFY( density.size() == 5 ); - VERIFY( density[0] == 0.5 / 6.0 ); - VERIFY( density[2] == 2.5 / 6.0 ); + VERIFY( density[0] == double(0.5 / 6.0) ); + VERIFY( density[2] == double(2.5 / 6.0) ); } int main() diff --git a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc index 01e291cd20e..95650b19d5e 100644 --- a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc +++ b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc @@ -39,7 +39,7 @@ test01() VERIFY( interval[5] == 5.0 ); VERIFY( density.size() == 6 ); VERIFY( density[0] == 0.0 ); - VERIFY( density[4] == 3.5 / 8.5 ); + VERIFY( density[4] == double(3.5 / 8.5) ); } int main() diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc b/libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc index 82884673110..19a17f3d8ab 100644 --- a/libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc +++ b/libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc @@ -22,7 +22,7 @@ bool eq(double d, double e) { - return (int)(d * 100) == (int)(e * 100); + return std::abs(d - e) < 0.01; } void diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc index 78b6aaaf67f..cdb437c4c91 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc @@ -92,7 +92,7 @@ void test01() { is_03 >> ld1; VERIFY( ld1 == 66300.25 ); is_03 >> d1; - VERIFY( d1 == .315 ); + VERIFY( d1 == (double) .315 ); // N.B. cast removes excess precision is_03 >> f1; VERIFY( f1 == 1.5 ); diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc index dd6d2dffc9d..4ed4169a3f7 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc @@ -37,7 +37,7 @@ void test09() (is>>std::ws) >> c; (is>>std::ws) >> f2; VERIFY( f1 == 2456 ); - VERIFY( f2 == 0.00567 ); + VERIFY( f2 == (double) 0.00567 ); // N.B. cast removes excess precision VERIFY( c == '-' ); } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc index 3c73734cd23..9cf76ff37b2 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc @@ -95,7 +95,7 @@ void test10() VERIFY( f == 450.0 ); is_04.ignore(); is_04 >> f; - VERIFY( f == 0.005 ); + VERIFY( f == (double) 0.005 ); // N.B. cast removes excess precision is_04 >> f; VERIFY( f == 6 ); VERIFY( is_03.rdstate() == std::ios_base::eofbit ); diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc index 843dfbaccfa..6cfa476fc46 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc @@ -90,7 +90,7 @@ void test01() { is_03 >> ld1; VERIFY( ld1 == 66300.25 ); is_03 >> d1; - VERIFY( d1 == .315 ); + VERIFY( d1 == (double) .315 ); // N.B. cast removes excess precision is_03 >> f1; VERIFY( f1 == 1.5 ); diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc index 8c614197faf..511a33cb21a 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc @@ -35,7 +35,7 @@ void test09() (is >> std::ws) >> c; (is >> std::ws) >> f2; VERIFY( f1 == 2456 ); - VERIFY( f2 == 0.00567 ); + VERIFY( f2 == (double) 0.00567 ); // N.B. cast removes excess precision VERIFY( c == L'-' ); } diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc index 3be2b023b5f..f2da3edea48 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc @@ -93,7 +93,7 @@ void test10() VERIFY( f == 450.0 ); is_04.ignore(); is_04 >> f; - VERIFY( f == 0.005 ); + VERIFY( f == (double) 0.005 ); // N.B. cast removes excess precision is_04 >> f; VERIFY( f == 6 ); VERIFY( is_03.rdstate() == std::ios_base::eofbit ); diff --git a/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc b/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc index 58d880a12d9..12af5f42450 100644 --- a/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc +++ b/libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc @@ -27,7 +27,7 @@ void test01() { __gnu_cxx::hoyt_distribution<> u(0.05, 3.0); - VERIFY( u.q() == 0.05 ); + VERIFY( u.q() == (double) 0.05 ); VERIFY( u.omega() == 3.0 ); VERIFY( u.min() == 0.0 ); typedef __gnu_cxx::hoyt_distribution<>::result_type result_type; -- 2.40.1