From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23045 invoked by alias); 12 Jan 2017 13:06:34 -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 23016 invoked by uid 89); 12 Jan 2017 13:06:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-5.1 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=learn X-Spam-User: qpsmtpd, 2 recipients 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; Thu, 12 Jan 2017 13:06:29 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (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 547C480F6D; Thu, 12 Jan 2017 13:06:29 +0000 (UTC) Received: from [127.0.0.1] (ovpn04.gateway.prod.ext.phx2.redhat.com [10.5.9.4]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v0CD6Rl0008132; Thu, 12 Jan 2017 08:06:28 -0500 Subject: Re: [PATCH 3/8] Disassembly unit test: disassemble one instruction To: Yao Qi , binutils@sourceware.org, gdb-patches@sourceware.org References: <1484051178-16013-1-git-send-email-yao.qi@linaro.org> <1484051178-16013-4-git-send-email-yao.qi@linaro.org> From: Pedro Alves Message-ID: <7d906c42-2c58-bc64-376d-0e43d5176ec3@redhat.com> Date: Thu, 12 Jan 2017 13:06: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: <1484051178-16013-4-git-send-email-yao.qi@linaro.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2017-01/txt/msg00223.txt.bz2 I'd much prefer if the core of the unit testing framework doesn't learn about different random subsystems. Consider what we'd do if we wanted to reuse selftest.c in gdbserver. I think we will at some point. How about we move all this gdbarch stuff elsewhere, like gdb/arch-utils.c or a new gdb/arch-selftests.c? You'd then have, - call the new function typedef "arch_self_test_function" - in arch-selftests.c: static std::vector gdbarch_tests; void register_arch_self_test (arch_self_test_function *function) { gdbarch_tests.push_back (function); } namespace selftests { arch_tests () { for (const auto &f : gdbarch_tests) { const char **arches = gdbarch_printable_names (); int i; [...] } } /* namespace selftests */ void _initialize_arch_selftests (void) { #if GDB_SELF_TEST register_self_test (selftests::arch_tests); #endif } Thanks, Pedro Alves