From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 258133858412 for ; Tue, 26 Sep 2023 18:22:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 258133858412 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark.ca DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simark.ca; s=mail; t=1695752525; bh=PfQOqwHO01zQ/SwHKp9ZHH5GhELnjmHEosCOh9REjJg=; h=Date:Subject:To:References:From:In-Reply-To:From; b=wUpM1G6fMszRwIhB30fsvNd4eLXBP1lvFQ87uafqTD+chRKpoB5IduJoA7BwPyCYj Z2Ci8sXF1osFbxdsfXxS2InSUfFXnxSG/KTQCTU1N7I7DbAA8pZ19/M3XoNAPmwKYg 4q0V2z/+cM/uKwMYanSZAAdWkBGE+T8ilxDkFvro= Received: from [172.16.0.192] (192-222-143-198.qc.cable.ebox.net [192.222.143.198]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 2CC0C1E092; Tue, 26 Sep 2023 14:22:05 -0400 (EDT) Message-ID: <48bb7a7a-f234-4c49-97f5-7d2e97c18dbc@simark.ca> Date: Tue, 26 Sep 2023 14:22:04 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] gdb/testsuite: add xfail for gdb/29965 in gdb.threads/process-exit-status-is-leader-exit-status.exp To: Tom de Vries , Simon Marchi , gdb-patches@sourceware.org References: <20230908015356.406003-1-simon.marchi@efficios.com> <12955268-777f-4fc0-b86f-c0ccd8a75522@suse.de> Content-Language: fr From: Simon Marchi In-Reply-To: <12955268-777f-4fc0-b86f-c0ccd8a75522@suse.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 9/26/23 12:55, Tom de Vries via Gdb-patches wrote: > On 9/8/23 03:53, Simon Marchi via Gdb-patches wrote: >> Bug 29965 shows on a Linux kernel >= 6.1, that test fails consistently >> with: >> >> FAIL: gdb.threads/process-exit-status-is-leader-exit-status.exp: iteration=0: continue (the program exited) >> ... >> FAIL: gdb.threads/process-exit-status-is-leader-exit-status.exp: iteration=9: continue (the program exited) >> >> This is due to a change in Linux kernel behavior [1] that affects >> exactly what this test tests. That is, if multiple threads (including >> the leader) call SYS_exit, the exit status of the process should be the >> exit status of the leader. After that change in the kernel, it is no >> longer the case. >> >> Add an xfail in the test, based on the Linux kernel version. The goal >> is that if a regression is introduced in GDB regarding this feature, it >> should be caught if running on an older kernel where the behavior was >> consistent. >> > > Hi, > > thanks for doing this. > > I've rebooted into tumbleweed, applied the patch and confirmed that the xfail is triggered. Thanks! > >> [1] https://bugzilla.suse.com/show_bug.cgi?id=1206926 >> >> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29965 >> Change-Id: If6ab7171c92bfc1a3b961c7179e26611773969eb >> --- >> ...cess-exit-status-is-leader-exit-status.exp | 21 ++++++++++++++++++- >> 1 file changed, 20 insertions(+), 1 deletion(-) >> >> diff --git a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp >> index f64d6a73deaf..2bc73fdde07f 100644 >> --- a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp >> +++ b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp >> @@ -41,6 +41,25 @@ for {set iteration 0} {$iteration < 10} {incr iteration} { >> return >> } >> - gdb_test "continue" "\\\[Inferior 1 \\(.*\\) exited with code 01\\\]" >> + gdb_test_multiple "continue" "" { >> + -re -wrap "\\\[Inferior 1 \\(.*\\) exited with code 01\\\]" { >> + pass $gdb_test_name >> + } >> + >> + -re -wrap "\\\[Inferior 1 \\(.*\\) exited with code $::decimal\\\]" { >> + set lkv [linux_kernel_version] >> + >> + if { [llength $lkv] != 0 } { >> + lassign $lkv major minor patch >> + >> + if { ($major == 6 && $minor >= 1) || $major > 6 } { > > You could consider using version_compare here, but it's no requirement. > > LGTM. > > Approved-By: Tom de Vries I didn't know about version_compare, I changed the code to use it and pushed the patch, thanks! Simon