From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6F275CAC599 for ; Tue, 16 Sep 2025 09:23:12 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uyRtg-0001Sb-Qk; Tue, 16 Sep 2025 05:22:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uyRte-0001S9-6S for qemu-devel@nongnu.org; Tue, 16 Sep 2025 05:22:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uyRtY-0002lJ-C4 for qemu-devel@nongnu.org; Tue, 16 Sep 2025 05:22:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1758014557; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=LrqMz3YlEqTlmfQYRPLPTU0+WTm7aBmYTEV9RVrk2J4=; b=TPPL46/3dYoURrhz1INA1me6oEHoIc53y7ljMbkQ2ntWFDC9AoH5YyPgdC9ISnXh5Sfq1X hVdq8D+0uz3MdHmIhMOjLR/ztgnbT6FZzTaxoHdEv/4BqSGEHXa87SBUksFeDFQv86l97G ogAgSR93s1B2Uob7exKlAI9+51KoaYQ= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-520-Mu0DXFnSMOqxKBIMbkyWEw-1; Tue, 16 Sep 2025 05:22:33 -0400 X-MC-Unique: Mu0DXFnSMOqxKBIMbkyWEw-1 X-Mimecast-MFC-AGG-ID: Mu0DXFnSMOqxKBIMbkyWEw_1758014552 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BD0BD1800576; Tue, 16 Sep 2025 09:22:32 +0000 (UTC) Received: from redhat.com (unknown [10.42.28.153]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EC52E1800452; Tue, 16 Sep 2025 09:22:30 +0000 (UTC) Date: Tue, 16 Sep 2025 10:22:27 +0100 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: Thomas Huth Cc: Gustavo Romero , qemu-devel@nongnu.org, qemu-arm@nongnu.org, Alex =?utf-8?Q?Benn=C3=A9e?= Subject: Re: [RFC PATCH 2/2] tests/functional: Adapt reverse_debugging to run w/o Avocado Message-ID: References: <20250915124207.42053-1-thuth@redhat.com> <20250915124207.42053-3-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20250915124207.42053-3-thuth@redhat.com> User-Agent: Mutt/2.2.14 (2025-02-20) X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.035, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org On Mon, Sep 15, 2025 at 02:42:07PM +0200, Thomas Huth wrote: > From: Gustavo Romero > > This commit removes Avocado as a dependency for running the > reverse_debugging test. > > The main benefit, beyond eliminating an extra dependency, is that there > is no longer any need to handle GDB packets manually. This removes the > need for ad-hoc functions dealing with endianness and arch-specific > register numbers, making the test easier to read. The timeout variable > is also removed, since Meson now manages timeouts automatically. > > The reverse_debugging test is now executed through running GDB via a > python script. The test itself is only responsible for invoking > GDB with the appropriate arguments and for passing the test script to > GDB. > > reverse_debugging is kept "skipped" for aarch64, ppc64, and x86_64, so > won't run unless QEMU_TEST_FLAKY_TESTS=1 is set in the test environment, > before running 'make check-functional' or 'meson test [...]'. > > Signed-off-by: Gustavo Romero > [thuth: Rework the test to run without tests/guest-debug/run-test.py] > Signed-off-by: Thomas Huth > --- > .../functional/aarch64/test_reverse_debug.py | 16 +- > tests/functional/ppc64/test_reverse_debug.py | 18 +- > tests/functional/reverse_debugging.py | 235 +++++++++++------- > tests/functional/x86_64/test_reverse_debug.py | 20 +- > 4 files changed, 171 insertions(+), 118 deletions(-) > snip > > - # assume that none of the first instructions is executed again > - # breaking the order of the breakpoints > - self.check_pc(g, steps[-1]) > - logger.info('successfully reached %x' % steps[-1]) > + # Assume that none of the first instructions is executed again > + # breaking the order of the breakpoints. > + # steps[-1] is the first saved $pc in reverse order. > + self.check_pc(steps[-1]) > + logger.info('Successfully reached %x' % steps[-1]) > > - logger.info('exiting gdb and qemu') > + logger.info('Exiting GDB and QEMU...') > + # Disconnect from the VM. > + gdb.execute("disconnect") > + # Guarantee VM is shutdown. > vm.shutdown() > + # Gently exit from GDB. > + gdb.execute('print "test succeeded"') > + gdb.execute("exit 0") This causes immediate terminatino of the python program which prevents any of the tearDown cleanup logic from running. > + > + @staticmethod > + def main(): > + try: > + LinuxKernelTest.main() > + except SystemExit: > + # If the test is marked with @skipFlakyTest, then it will be exited > + # via sys.exit() before we have the chance to exit from GDB gently. > + # Because recent versions of GDB will return a failure value if this > + # happens, we catch the SystemExit and exit from GDB gently with 77, > + # which meson interprets correctly as a skipped test. > + gdb.execute("exit 77") > + > +if __name__ == '__main__': > + if not _has_gdb: > + sys.exit("This script must be launched via tests/guest-debug/run-test.py!") This is incorrect. > + ReverseDebugging.main() With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|