From patchwork Wed Feb 19 22:03:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 38248 Received: (qmail 71111 invoked by alias); 19 Feb 2020 22:03:19 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 71103 invoked by uid 89); 19 Feb 2020 22:03:19 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:3456, sk:opensou X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 19 Feb 2020 22:03:18 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id DCD29AE87; Wed, 19 Feb 2020 22:03:15 +0000 (UTC) Subject: Re: [PATCH][gdb/testsuite] Fix xpass in gdb.python/lib-types.exp To: Tom Tromey Cc: gdb-patches@sourceware.org References: <20200219115728.GA20410@delia> <87k14iqnas.fsf@tromey.com> From: Tom de Vries Message-ID: Date: Wed, 19 Feb 2020 23:03:15 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <87k14iqnas.fsf@tromey.com> X-IsSubscribed: yes On 19-02-2020 22:28, Tom Tromey wrote: >>>>>> "Tom" == Tom de Vries writes: > > Tom> It's incorrect to xfail a gdb test-case for gcc bug. > > I think we've used "kfail" for this in the past, though TBH I never > truly understood the kfail/xfail distinction and I probably have it > backward or something. > I went to double check again at my xfail/kfail reference point ( https://opensource.apple.com/source/gdb/gdb-325/src/dejagnu/doc/dejagnu.texi.auto.html ), and found: ... @item XFAIL A test failed, but it was expected to fail. This result indicates no change in a known environment bug. If a test fails because the operating system where the test runs lacks some facility required by the test (i.e. failure is due to the lack of a feature, not the existence of a bug), the outcome is @code{UNSUPPORTED} instead. ... So, I got the xfail and kfail mixed up, and in fact the xfail for a gcc bug is valid use in the gdb testsuite. Oops. I've now fixed the xpass by testing more precisely for the xfail. Committed as attached. Thanks, - Tom [gdb/testsuite] Fix xpass in gdb.python/lib-types.exp When running gdb.python/lib-types.exp, we have an xpass: ... (gdb) python print (str (typedef_const_typedef_class1_ref_obj.type))^M typedef_const_typedef_class1_ref^M (gdb) XPASS: gdb.python/lib-types.exp: \ python print (str (typedef_const_typedef_class1_ref_obj.type)) \ (PRMS gcc/55641) ... When running the same with gcc 4.8, we have an xfail instead: ... (gdb) python print (str (typedef_const_typedef_class1_ref_obj.type))^M const typedef_const_typedef_class1_ref^M (gdb) XFAIL: gdb.python/lib-types.exp: \ python print (str (typedef_const_typedef_class1_ref_obj.type)) \ (PRMS gcc/55641) ... Fix the xpass by xfailing only for the gcc 4.8 pattern. Tested on x86_64-linux, with: - gcc 7.5.0 - gcc 4.8.5 - clang 5.0.2 gdb/testsuite/ChangeLog: 2020-02-19 Tom de Vries * gdb.python/lib-types.exp: Make xfail more strict. --- gdb/testsuite/gdb.python/lib-types.exp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.python/lib-types.exp b/gdb/testsuite/gdb.python/lib-types.exp index ab1d9d8dad..d2d5f9b2b9 100644 --- a/gdb/testsuite/gdb.python/lib-types.exp +++ b/gdb/testsuite/gdb.python/lib-types.exp @@ -103,8 +103,15 @@ gdb_test_multiple "python print (str (basic_type_typedef_const_typedef_class1_ob # test nested typedef/reference stripping gdb_test_no_output "python typedef_const_typedef_class1_ref_obj = gdb.parse_and_eval ('typedef_const_typedef_class1_ref_obj')" gdb_test_no_output "python basic_type_typedef_const_typedef_class1_ref_obj = gdb.types.get_basic_type (typedef_const_typedef_class1_ref_obj.type)" -if {[test_compiler_info {gcc-*-*}]} { setup_xfail gcc/55641 *-*-* } -gdb_test "python print (str (typedef_const_typedef_class1_ref_obj.type))" "\[\r\n\]+typedef_const_typedef_class1_ref" +gdb_test_multiple "python print (str (typedef_const_typedef_class1_ref_obj.type))" "" { + -re -wrap "\[\r\n\]+const typedef_const_typedef_class1_ref" { + # Compiler with PR gcc/55641. + xfail $gdb_test_name + } + -re -wrap "\[\r\n\]+typedef_const_typedef_class1_ref" { + pass $gdb_test_name + } +} set test "nested typedef/ref stripping" gdb_test_multiple "python print (str (basic_type_typedef_const_typedef_class1_ref_obj))" $test { -re "\[\r\n\]+class1\[\r\n\]+$gdb_prompt $" {