From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66970 invoked by alias); 15 Nov 2016 19:42:39 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 66957 invoked by uid 89); 15 Nov 2016 19:42:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=baked, UD:gdb, gdb.gdb, UD:gdb.gdb X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 15 Nov 2016 19:42:37 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E3F89C04D2B8; Tue, 15 Nov 2016 19:42:35 +0000 (UTC) Received: from [127.0.0.1] (ovpn03.gateway.prod.ext.phx2.redhat.com [10.5.9.3]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAFJgY7E030776; Tue, 15 Nov 2016 14:42:35 -0500 Subject: Re: [PATCH 2/3] Fix copy_bitwise() To: Andreas Arnez , gdb-patches@sourceware.org References: <1479135786-31150-1-git-send-email-arnez@linux.vnet.ibm.com> <1479135786-31150-3-git-send-email-arnez@linux.vnet.ibm.com> From: Pedro Alves Message-ID: <6032efa2-828d-7423-4720-6925a9b4ea4b@redhat.com> Date: Tue, 15 Nov 2016 19:42:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1479135786-31150-3-git-send-email-arnez@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-11/txt/msg00390.txt.bz2 On 11/14/2016 03:02 PM, Andreas Arnez wrote: > Written in binary, the wrong result above looks like this: > > 01111111011111111111111 > > Which means that two zero bits have sneaked into the copy of the > original all-one bit pattern. The test uses this simple all-one value > in order to avoid another GDB bug that causes the DWARF piece of a > DW_OP_stack_value to be taken from the wrong end on big-endian > architectures. Looks like the sort of function that should be possible to cover all sorts of inputs/outputs with unit tests. Aligned, misaligned, big/little endian, etc., that sort of thing. That'd help a lot with ensuring rewrites behave as intended. Would you feel like including some? The unit testing framework is trivial to use, since it's baked inside gdb. All you need to do is write a function that throws some corner case inputs at copy_bitwise, checking expected outputs and calling SELF_CHECK. You register that function in the selftests frameworks with "register_self_test". Then to trigger the tests, just do: gdb -ex "maintenance selftest". testsuite/gdb.gdb/unittest.exp does that too. Thanks, Pedro Alves